这是我的代码Python与Pygame模块的一部分。
gravity = 0.06
play = 1
while play:
touch = 0
while touch == 0:
for event in pygame.event.get():
if event.type == QUIT:
continuer = 0
if (event.type == MOUSEBUTTONDOWN) and (event.button == 1):
y_flappy = y_flappy - 50
if (event.type == KEYDOWN) and (event.key == K_UP):
y_flappy = y_flappy - 50
y_flappy = y_flappy+gravity
fenetre.blit(background,(0,0))
fenetre.blit(ground,(0,400))
fenetre.blit(flappy,(x_flappy,y_flappy))
pygame.display.flip()
if y_flappy > 400:
touch = touch + 1
但是当y_flappy> 400,触摸不会增加。
答案 0 :(得分:1)
您是否尝试过在最后添加print("y_flappy: %f touch: %f" % (y_flappy, touch))
(与if y_flappy > 400:
相同的缩进级别)以查看会发生什么?
touch
变量不会大于1,因为那样你就离开了while循环并重新初始化touch = 0
。
<强>更新强>
如果仍然无效,请从这样的最小脚本开始:
y_flappy = 0
gravity = 0.06
play = 1
while play:
print("Next iteration, reset touch.")
touch = 0
print("y_flappy: %f touch: %f" % (y_flappy, touch))
while touch == 0:
y_flappy = y_flappy+gravity
if y_flappy > 400:
touch = touch + 1
print("y_flappy: %f touch: %f" % (y_flappy, touch))
仔细检查每个缩进。您应该得到以下输出:
Next iteration, reset touch.
y_flappy: 0.000000 touch: 0.000000
y_flappy: 0.060000 touch: 0.000000
y_flappy: 0.120000 touch: 0.000000
y_flappy: 0.180000 touch: 0.000000
...
y_flappy: 399.960000 touch: 0.000000
y_flappy: 400.020000 touch: 1.000000
Next iteration, reset touch.
y_flappy: 400.020000 touch: 0.000000
y_flappy: 400.080000 touch: 1.000000
Next iteration, reset touch.
y_flappy: 400.080000 touch: 0.000000
...
如果这样做,请逐行扩展您的脚本以查看它何时失败。
答案 1 :(得分:0)
我试过这个。例如,当y_flappy为425.3时,触摸为0(其中应为1或更多)。
是的我知道触摸不会超过1,我可以插入休息动作但对我来说更简单。