【发布时间】:2021-03-18 23:00:00
【问题描述】:
所以我试着让一个敌人在撞墙时转身,结果卡住了。
这是只针对敌人的代码:(屏幕大小为 1000 x 1000 btw)
xEnemy = random.randint(0,1000)
yEnemy = random.randint(0,1000)
#enemy
def enemy():
global xEnemy, yEnemy
pygame.draw.rect(screen,(255,0,0),(xEnemy,yEnemy,15,15))
if xEnemy > 0 and xEnemy < 1000:
xEnemy -=velEnemy
if xEnemy < 0 and xEnemy > 10:
xEnemy += velEnemy
【问题讨论】:
-
xEnemy < 0 and xEnemy > 10永远不会是真的。此外,即使您将其调整为您可能的意思,请注意 (a) 将此if嵌套在前一个下方的效果,以及 (b) 触发两个条件的可能性,因此您减去velEnemy然后添加再次,没有结果。 -
xEnemy < 0 and xEnemy > 10应替换为xEnemy < 0 or xEnemy > 1000。另外,如果这个条件成立,你想在之后反转敌人的速度,velEnemy = -velEnemy -
如果 xEnemy > 0: xEnemy -=velEnemy 如果 xEnemy
-
这段代码使敌人站起来,因为这两个条件同时为真
-
那么我如何让他到达终点时改变方向