2017-05-04 10 views
0

私は、豚のゲームを作るためにpygameを使用しています。定義しようとしている2つの変数xyがあります。"intオブジェクトは添え字が付いていません"として置かれた非intオブジェクトのエラー

def drawSnake(snakeCoords): 
    for coord in snakeCoords: 
     x = coord["x"] * CellSize 
     y = coord['x'] * CellSize 
     snake_segmentRect = pygame.draw.rect(x, y, CellSize, CellSize) 
    pygame.draw.rect(displaysurf, green, snake_segmentRect) 
    snake_segmentInnerRect = pygame.Rect(x + 4, y + 4, CellSize - 8, CellSize - 8) 
    pygame.draw.rect(displaysurf, green, snake_segmentInnerRect) 

...とエラーが出る::私は次のようにそれを持っている

line 175, in drawSnake 
x = coord['x'] * CellSize 
TypeError: 'int' object is not subscriptable 

を助けてください、他の同様の質問がすべてでは有用ではありません。

+5

'snakeCoords'とは何ですか?知っていれば、それを反復するときに 'ints'を返しています。そして' coord ['x'] * CellSize'というものをインデックス化しようとします。エラーを再現するコードや希望する出力を含め、問題の*再現可能な例*を提供する必要があります。 –

答えて

1

この関数に入るsnakeCoordsの値は、intのリストのようです。

を確認するためにprint文を入れて:

def drawSnake(snakeCoords): 
    for coord in snakeCoords: 
     print(type(coord)) 
     x = coord["x"] * CellSize 
     y = coord['x'] * CellSize 

あなたは以下の出力python2表示されますのpython3で

<class 'int'>

またはこの:

<object 'int'>

をそれがyを引き起こしている私たちのエラー。

+2

これはコメントとして役立ちます。これは実際の質問に必要な情報です。 – brianpck

+0

はい、それは私が得たものでしたが、それを整数にすることは可能でしょうか?それは私のコードの目的に合っています。 – Icedart

+0

@Icedart xキーとyキーを持つディクショナリオブジェクトのリストを渡す必要があるようです(yキーはコードに記述されていません)。すべてのxとy座標が欲しかった場合は、タプルを使う方が良いかもしれません。それを処理するために関数を書き直さなければならないでしょう。 –

関連する問題