Pygame中Zombie(绿色方块)位置不更新,无法跟随Player(红色方块)问题求助
问题分析与解决办法
嘿,我一眼就发现你代码里的问题啦!僵尸(绿色方块)没法跟随玩家移动,核心原因是你在更新僵尸位置时用错了赋值运算符。
错误点说明
你写的僵尸移动逻辑里,用了=-和=+这样的写法:
if zombie.x > player.x: zombie.x =- zombieVel # 这里是把zombie.x直接赋值为 -zombieVel,不是在原有位置上减速 if zombie.x < player.x: zombie.x =+ zombieVel # 同理,这里是赋值为 +zombieVel,不是在原有位置上加速 if zombie.y > player.y: zombie.y =- zombieVel if zombie.y < player.y: zombie.y =+ zombieVel
=-和=+是单纯的赋值操作,会直接覆盖僵尸当前的坐标值,而不是在原有位置基础上做增减。正确的做法是使用复合赋值运算符 -= 和 +=,这样才能实现“向玩家方向移动”的逻辑。
修正后的代码
把僵尸移动的代码改成下面这样:
if zombie.x > player.x: zombie.x -= zombieVel if zombie.x < player.x: zombie.x += zombieVel if zombie.y > player.y: zombie.y -= zombieVel if zombie.y < player.y: zombie.y += zombieVel
额外小建议
另外,你现在的僵尸初始位置是(0,0),可以给它设置一个更直观的初始位置,比如窗口右下角,这样一开始就能看到它的跟随效果:
zombie = pygame.Rect(0, 0, 20, 20) zombie.topleft = (window.get_width() - 20, window.get_height() - 20) # 放在右下角 zombieVel = 2
这样修改后,绿色僵尸就能正常跟着红色玩家移动啦,快去试试吧!
内容的提问来源于stack exchange,提问作者DeMauro
相关产品推荐
相关产品推荐

