You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:02:38