我不知道为什么,但是python正在执行if语句然后在同一次迭代中执行else语句
我正在删除不重要的代码:
from livewires import games
...
...
def update(self):
if games.keyboard.is_pressed(games.K_s):
if self.y == games.screen.height/3:
self.y = games.screen.height/2
else:
self.y = games.screen.height
在我看来它应该去: 如果's'被按下: 那么,如果高度等于什么做什么 否则,做任何事情2
但计算机正在进行: 如果's'被按下了 然后,使高度等于任何高度,因为高度不再等于任何高度,使其等于whatever2
我通过使用带有'和'运算符的单个if语句以及各种时髦的方法来尝试这个,但是我所做的一切,代码似乎只是移动到下一行而不管if / elif / else < / p>
我甚至试过实现一种有效的计时器,但是不可靠。
答案 0 :(得分:0)
这是一个非常简单的修复方法。我在 init 中添加了一个计时器并添加了这个:
def update(self):
self.timer -= 1
if self.timer == 0:
self.timer = 8
if games.keyboard.is_pressed(games.K_s):
if self.y == games.screen.height/3:
self.y = games.screen.height/2
else:
self.y = games.screen.height
pdb.set_trace()用它来确定它实际上是单独执行(只是非常快)。它移动得如此之快,看起来它同时做到了。