以下是游戏中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