如何让敌人来回移动

  • 本文关键字:移动 敌人 python
  • 更新时间 :
  • 英文 :


以下是游戏中2个关卡中敌人的2个功能。第一个很好,但def moveEnemy2()不行。当敌人应该水平移动时,它似乎被困在原地。它还会轻微震动,所以我不确定这是边界错误还是…

敌人移动的代码部分如下:

def moveEnemy():
global diry
for enemy in enemies:
if enemy.top<200 or enemy.top>450:
diry =- diry
enemy.top -= diry
def moveEnemy2():
global dirr
for enemy2 in enemies2:
if enemy2.left<500 or enemy2.left>100:
dirr =- dirr
enemy2.left -= dirr

第1级和第2级的敌人在一个列表中:

enemies=[Rect(200,350,60,34),Rect(640,300,60,34)]
enemies2=[Rect(200,470,60,34)]

dirr和diry也被定义:

dirr=1
diry=1
dirr2=1
diry2=1

moveEnemy2中的条件总是求true的值。正确的条件是if enemy2.left < 100 or enemy2.left > 500:。为了避免以后出现这样的错误,我建议使用链式比较:

if not (100 < enemy2.left < 500):
dirr = -dirr

最新更新