これは私のキャラクタークラスのコードです:
right = [2, 0]
class Character(pygame.sprite.Sprite):
def __init__(self):
super(Character, self).__init__()
self.image = pygame.image.load("character_n.png").convert()
self.image.set_colorkey((25, 25, 25))
self.rect = self.image.get_rect()
char = Character()
char.rect[0] = 375
char.rect[1] = 400
そして、ジョイスティックが右に動かされた場合にキャラクターを右に動かす私のゲームループのコード:
h_axis_pos = my_joystick.get_axis(0)
v_axis_pos = my_joystick.get_axis(1)
if h_axis_pos >= 0.50:
if char.rect.right < 800:
char.rect = char.rect.move(right)
このコードは、キャラクターが単純な画像のときは正常に機能しましたが、現在は機能しません。
self.rect が初期化され、選択した座標に文字が設定されるため、混乱しています。if で char.rect[0] を使用してインクリメントしようとしましたが、それでも同じエラーが表示されます。
if char.rect.right < 800:
AttributeError: 'pygame.Surface' object has no attribute 'rect'
誰かがこれに光を当てることができますか? ありがとう。