我试图使一个物体(一艘船)以自己的速度和随机方向自行移动,但是在看完互联网之后,我只能找到手动移动的物体。我尝试使用randrange使其随机移动
def on_mouse_press(self, x, y, button, modifiers):
if button == arcade.MOUSE_BUTTON_LEFT:
self.player_sprite.center_x = random.randrange(800)
self.player_sprite.center_y = random.randrange(800)
但是它需要多次点击,我的飞船才跳来跳去。有人可以教我如何正确地做吗?谢谢。
尝试从下面实施建议后,我想到了这一点:
def on_mouse_press(self, x, y, button, modifiers):
while self.score != 1:
while button == arcade.MOUSE_BUTTON_LEFT:
self.player_sprite.center_x += random.choice([-1, 1])
self.player_sprite.center_y += random.choice([-1, 1])
if self.score == 1:
break
print("box has been found!")
但是现在程序根本无法运行,并且给出退出代码-805306369。
答案 0 :(得分:1)
要平稳地移动船舶,您需要一次移动一步。
random.randrange(800)
将为您提供0到800之间的随机值,这就是您的飞船跳跃的原因。
您需要的是这样的东西。
if button == arcade.MOUSE_BUTTON_LEFT:
self.player_sprite.center_x += random.randrange(-1,2)
self.player_sprite.center_y += random.randrange(-1,2)
random.randrange(-1,2)将为您提供-1、0或1值。
如果您一直想移动。您可以将random.randrange(-1,2)
更改为random.choice([-1, 1])