主程序:
player = Player("player.png",[10,650])
players = pygame.sprite.Group()
players.add(player)
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_RIGHT:
player.goright()
if event.key == K_LEFT:
player.goleft()
if event.type == KEYUP:
if event.key == K_RIGHT:
player.cangoright = False
if event.key == K_LEFT:
player.cangoleft = False
players.update()
players.draw(SCREEN)
pygame.display.update()
clock.tick(FPS)
相关精灵的功能:
^{pr2}$问题是“cangoright”和“cangoleft”标志似乎不能正常工作。当精灵超过屏幕边缘时(左边是0,右边是1024),标志应该设置为false,因此update函数中的ifs应该返回false,但是这不会发生。在
国际单项体育联合会的立场有点偏离。在
同样适用于:
^{pr2}$看起来你走得太远了,所以把你的精灵放在屏幕边缘。在
希望这有帮助。在
我相信问题的一部分是你只更新了},看看这是否会改变事情。在
left
中的self.rect
。尝试同时更新left
和{更重要的是,这段代码有点难读,而且你要做的事情也太复杂了。在
update
函数中而不是在键事件处理程序中检查屏幕边界,可能会更好地为您服务。实际上,这是游戏物理的一部分,所以它应该挂在那里。在换句话说,使用事件循环来设置表示播放器意图的标志到
update
函数。使用update
函数根据事件循环设置的标志将游戏规则(物理等)应用于游戏状态。在也许像这样?在
This answer有一些示例
move
方法。也许看看他们是怎么写的会有帮助吗?在划桨。移动()
球。移动()
^{pr2}$相关问题 更多 >
编程相关推荐