2017-01-19 18 views
0

という名前のクラスをPlayerとしました。私は(パドルなど)、画面上に表示するために管理し、私はそれを移動しようとしているとき(キーボードの矢印を押し)、ゲームがクラッシュし、私は、このエラーが残っています:AttributeError: 'Player'オブジェクトに属性 'rect'がありません(PyGame)

Traceback (most recent call last): File

"C:/Users/Optimus/Desktop/PongGame.py", line 37, in

player.controlkeys() File "C:/Users/Optimus/Desktop/PongGame.py", line 23, in controlkeys

self.rect.move_ip(-50, 0) AttributeError: 'Player' object has no attribute 'rect'

コード(クラスの):

class Player(object): 
    def __init__(self): 
     self.playerpaddle = pygame.rect.Rect((40,350,35,100)) 

    def controlkeys(self): 
     key = pygame.key.get_pressed() 
     if key[pygame.K_DOWN]: 
      self.rect.move_ip(-50, 0) 

    def draw(self, screen): 
     self.draw = pygame.draw.rect(screen, white, self.playerpaddle) 

pygame.display.update() 

while True: 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      sys.exit() 

    player = Player() 
    player.draw(screen) 
    player.controlkeys() 
    pygame.display.update() 

フルコード:http://pastebin.com/inwVgcsk。 私は間違っていますか?

答えて

0

プレーヤーオブジェクトには、定義した属性が1つだけあります。playerpaddle。要素はありません。です。ただし、playerpaddleは、のRectであることに注意してください。オブジェクトがクラスのRectの属性を持つことになりますこと - 私は何をしたいことはあなたが特定の矩形を移動しようとしていない

self.playerpaddle.move_ip(-50, 0) 

のようなものがあると思われます。

これは明確なことですか?

+0

ええ、今それはクラッシュしなかった:)まだ、長方形は移動しません。それと一緒に遊ぶつもりです - 助けてくれてありがとう。 –

+0

移動コマンドを取得していることを証明するために、いくつかの素晴らしいトレース**プリント**ステートメントを入れてください。 – Prune

+0

私は 'print'をいくつか入れました。 'print'が動作し、矢印キーを押している間毎回テキストがコンソールに表示されますが、四角形はまだ動きません。 –

関連する問題