【发布时间】:2021-05-10 23:23:23
【问题描述】:
我有 2 个矩形,当老鼠到达矩形的任一侧时,它会左右移动,它会等待 100 秒,然后开始移动到另一侧。 我的问题是我有 2 个碰撞箱播放器,但正如您在下面的视频中看到的那样,如果我没有与老鼠碰撞箱发生碰撞,它就会停止移动。我希望它继续左右移动并等待 100 秒。
这就是老鼠的移动方式
if move:
if move_timer < 200:
move_timer += 1
else:
rat1.direction = "move2"
rat1.x += 1
if move2:
if move_timer2 < 200:
move_timer2 += 1
else:
rat1.direction = "move"
rat1.x -= 1
if rat1.rect.colliderect(rat11.rect):
rat1.direction = "idle"
move = True
move2 = False
move_timer2 = 0
elif rat1.rect.colliderect(rat22.rect):
rat1.direction = "id"
move = False
move2 = True
move_timer = 0
如果玩家与右侧或左侧碰撞箱发生碰撞,它应该将老鼠敌人移动到玩家所在的方向,有时当敌人向玩家移动时,我们击中了左右移动老鼠的矩形,这将导致方向出现故障,它不会移动。
elif playerman.rect.colliderect(rat1.hitbox):
rat1.x += 3
rat1.direction = "move2"
elif playerman.rect.colliderect(rat1.hitbox2):
rat1.x -= 3
rat1.direction = "move"
我在这里做了,所以如果老鼠与玩家碰撞箱碰撞,那么它应该播放攻击动画 move 和 move2 应该是假的,因为我们不希望敌人现在左右移动它应该粘住攻击玩家。
if rat1.direction == "move2":
if playerman.rect.colliderect(rat1.rect):
move = False
move2 = False
rat1.direction = "at"
if rat1.direction == "move":
if playerman.rect.colliderect(rat1.rect):
move = False
move2 = False
rat1.direction = "att"
我不确定我是否很好地解释了我的问题,但我想说的是,如果玩家没有与会移动老鼠的碰撞箱发生碰撞,如何让我的老鼠继续移动它一直移动的方向更接近玩家敌人,当敌人的老鼠攻击玩家时,我怎样才能阻止左右移动我的老鼠的矩形。
【问题讨论】:
-
请不要将您的问题编辑为一个全新的问题。
-
另外,您目前已经提出了 127 个问题,这需要很多人花费大量时间来帮助您。为了方便帮助您的人,请通读How to Ask 和minimal reproducible example。制作minimal reproducible example 特别有用,因为它可以更容易地给出好的和准确的答案。
-
我正在尽力提问,如果我搞砸了,请见谅