自己在python中移动对象

时间:2018-12-08 03:01:40

标签: python oop

我试图使一个物体(一艘船)以自己的速度和随机方向自行移动,但是在看完互联网之后,我只能找到手动移动的物体。我尝试使用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。

1 个答案:

答案 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值。

  • 将其添加到 x轴或将移动向左向右或完全不移动。
  • 对于 y轴,它将要么向上向下移动,要么不移动。

如果您一直想移动。您可以将random.randrange(-1,2)更改为random.choice([-1, 1])