【发布时间】:2019-10-06 07:14:17
【问题描述】:
我正在 Pygame 中构建一个游戏,其中涉及使用箭头键移动一个红色矩形(玩家)。我已经让玩家使用箭头键移动(箭头键控制速度,回车键确认移动),但我需要能够限制玩家每回合能够移动的量。我需要使新的速度/位置最多只能向上/向下 20 px 和向左/向右 20 px(20 px 表示按两次箭头键)。
目前,玩家按照方向键设置的速度移动,但速度随着方向键无限增加/减少。一旦在任一方向(上/下,左/右)按下箭头键最多 2 次,我需要它停止更改。
这是控制速度的代码:
if event.type == pygame.KEYDOWN:
if p1_turn:
if event.key == pygame.K_RIGHT:
p1_velocity_x += 10
if event.key == pygame.K_LEFT:
p1_velocity_x -= 10
这是确认更改的代码(实际上是移动玩家):
if event.key == pygame.K_RETURN:
if p1_turn:
p1.y += p1_velocity_y
p1.x += p1_velocity_x
p1_turn = False
p2_turn = True
如前所述,应该有一些机制来阻止速度从原始 x 速度和原始 y 速度超过 20px 增加/减少。
【问题讨论】:
-
而不是像大多数答案所暗示的那样使用 if 语句。您可以将位置限制在最小值和最大值之间
-
检查
p1_velocity_x和p1_velocity_y的当前值,不要增加它,否则它们会超出范围。
标签: python oop pygame game-development