2017-12-16 13 views
0

私はpygameのタイプのエラーが

File "main.py", line 48, in update 
    self.rect = self.rect.move((self.dirx, self.diry)) 
TypeError: argument must contain two numbers 

自己RECT属性を持つスプライトオブジェクトであるこのエラーを取得しています。私のゲームでは、私が使用して周りにこれらのスプライトを移動しようとしています:

self.rect = self.rect.move((self.dirx, self.diry)) 

DIRXとDIRY単に(速度を示す)1〜3のINTされています。 私は複数の同僚に尋ねましたが、誰も私に返済を与えることはできませんでした。

EDIT だから何が起こっていたことはDIRXとDIRYは別の方法で考慮されるには大きすぎるint型になっていたことを

+0

私はPygameを知りませんが、 'rect.move'への引数はタプルではなく2つの別々の数字であるべきではありませんか? –

+2

self.dirxとself.diryの両方が数字であることを確認してください(デバッガまたはプリントを試してみてください) –

答えて

0

は、公式ドキュメントに示すように、代わりにタプルの二つの引数として2つの数値を渡してみた:

move(self.dirx, self.diry) 

https://www.pygame.org/docs/ref/rect.html#pygame.Rect.move

+0

どこが間違っていたかわかりますが、そのように試してみましたが、同じエラーが発生しています。 .py "、行48、更新中 self.rect = self.rect.move(self.dirx、self.diry) TypeError:引数には2つの数値が含まれている必要があります –

+0

@MehulGhosalしたがって、数値ではありません。 'self.dirx'と' self.diry'のオブジェクトのタイプを確認してください。私は彼らが弦だと思う。 –

0

あなたは数字だけを返す必要がタプルとしてそれを返しています。試してみてください:self.rect = self.rect.move(self.dirx, self.diry)

0

問題は、私がdirxとdiryを他の場所であまりに多くインクリメントしていて、大きすぎると思って自動的に長いものに変換したことです。

関連する問題