python - 如何让敌人跟随pygame中的玩家?

标签 python pygame

我正在制作一个自上而下的射击游戏,并希望我的僵尸跟随我的角色,而我的程序使用了一个主循环。我的角色的位置是 x 和 y,他由方向键控制。我有一个僵尸,现在被射击时会随机生成在屏幕的左边缘。我怎样才能让僵尸从它产生的地方跟随我的位置?

这是僵尸函数:

def makezombie():
    global zom
    zom = Rect (0,randint(0, height-40), 49, 38)
    return zom

我设置 zombie=makezombie()

在我的主循环中,我有以下内容:

for shot in shots:
    if zombie.collidepoint(shot[X],shot[Y]):
        zombie=makezombie()
        points+=1000
        impact.play()
        blood.play()

最佳答案

我不确定我是否完全理解这个问题,但基本上您可以做的是获取玩家 (x, y) 坐标和僵尸 (x, y) 坐标。假设(xp, yp) 是玩家坐标,(xz, yz) 是僵尸,你可以使用下面的算法找到从僵尸到玩家的方向:

import math
(dx, dy) = ((xp - xz)/math.sqrt((xp - xz) ** 2 + (yp - yz) ** 2), 
            (yp - yz)/math.sqrt((xp - xz) ** 2 + (yp - yz) ** 2))

然后在主循环中,你想通过执行 newCoord = (xp + dx * spped, yp + dy * speed) 来更新僵尸的 x 和 y 位置坐标,其中速度是你希望僵尸移动的一些像素数每个循环。然后在这个新位置重新绘制僵尸。

希望对您有所帮助!如果不是,请澄清问题。

关于python - 如何让敌人跟随pygame中的玩家?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971671/

相关文章:

python - 如何找到两个 datetimes.datetime 之间的平均时间?

python - 从 python 内部调用 python 脚本

python - pygame 的字体渲染代码中的抗锯齿是什么意思?

python - 使用可移动的字符/图像在 Pygame 中添加边界

python - 在用Python制作的RTF文件中打印新行

python - 无法弄清楚为什么此代码对于 3 的输入运行完美,但在 5 时中断。{作业}

xml - 我应该如何在 pygame 游戏中存储有关房间的信息?

Python:如何从屏幕的一侧反弹

python - 我的游戏结束代码中的碰撞在 pygame 中无法正常工作

python - 点击: how do I apply an action to all commands and subcommands but allow a command to opt-out?