【发布时间】:2022-06-11 00:07:30
【问题描述】:
在“Python Crash Course”的第 266 页上,当你应该让舰队下降一个然后改变方向时,我的外星舰队斜着下降。使用 print 语句后,我可以看到变量 fleetDirection 从 1 变为 -1 到 1,依此类推。问题是它不断地改变方向,所以它会掉下来。我应该怎么做才能解决这个问题?
def check_edges(self):
screenRect = self.screen.get_rect()
if self.rect.right >= screenRect.right or self.rect.left <= 0:
return True
def update(self):
self.x += (self.settings.alienSpeed * self.settings.fleetDirection)
self.rect.x = self.x
def check_fleet_edges(self):
for alien in self.aliens.sprites():
if alien.check_edges():
self.change_fleet_direction()
break
def change_fleet_direction(self):
for alien in self.aliens.sprites():
alien.rect.y += self.settings.fleetDropSpeed
self.settings.fleetDirection *= -1
【问题讨论】:
-
您的
self.settings.fleetDirection *= -1只是让fleetDirection 从-1 切换到1 每次改变方向。你想让它往哪个方向发展? -
它将 -1 转换为 1 使
self.x +=行以正数而不是负数改变方向。从而改变方向。 -
阅读this article 了解调试代码的技巧。
-
我已经调试了我的程序并发现了问题。问题是我不知道如何解决问题
-
很抱歉,我不太明白您所说的
to make the fleet fall one then change direction, my alien fleet falls diagonally.是什么意思,能否请您提供一些调试信息,例如预期的 x,y 值和实际的 x,y 值?
标签: python