随机精灵运动,逻辑问题

时间:2014-03-10 19:15:48

标签: python pygame

我想让一个精灵(敌人)在屏幕周围随机移动。敌人将移动x,y移动500帧然后移动到另一个随机方向。

我的问题是试图使对象保持每个帧的方向,直到计数器达到500.相反,对象每帧都改变方向。

        if e_move_count <= 500:
            e_xMove = random.randint(-1,1)
            e_yMove = random.randint(-1,1)
            self.enemy.move(e_xMove, e_yMove)
            e_move_count += 1

        if e_move_count >= 500:
            e_xMove = random.randint(-1,1)
            e_yMove = random.randint(-1,1)
            self.enemy.move(e_xMove, e_yMove)
            e_move_count = 0

我确切地知道我的问题是什么,但我想不出一个解决方法。如何在不重新定义每个帧的x,y的情况下保持一个方向?如果可以在Python中使用计时器,我愿意使用计时器吗?

1 个答案:

答案 0 :(得分:2)

尝试将其更改为:

    if e_move_count <= 500:
        self.enemy.move(e_xMove, e_yMove)
        e_move_count += 1

    if e_move_count >= 500:
        e_xMove = random.randint(-1,1)
        e_yMove = random.randint(-1,1)
        self.enemy.move(e_xMove, e_yMove)
        e_move_count = 0

这样,方向只会在e_move_count为&gt; = 500

时发生变化