我创建了一个名为 Player 的类。我设法在屏幕上显示它(作为一个桨),但是当我试图移动它时(按下键盘上的向下箭头),游戏崩溃并且我留下了这个错误:
回溯(最近一次调用最后一次):文件
" C:/Users/Optimus/Desktop/PongGame.py" ;,第37行,
player.controlkeys()File" C:/Users/Optimus/Desktop/PongGame.py" ;,第23行,在控制键中
self.rect.move_ip(-50,0)AttributeError:' Player'对象没有属性' 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 :(得分:0)
您的播放器对象只有一个您定义的属性: playerpaddle 。没有元素 rect 。但请注意, playerpaddle 的类型为 Rect 。我怀疑你想要的是
self.playerpaddle.move_ip(-50, 0)
您不是要移动特定的矩形 - 对象将具有类 Rect 的属性。
这能为你解决问题吗?