我正在制作一个自上而下的射手,并希望我的僵尸跟随我的角色,我的程序使用一个主循环.我的角色的位置是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位置坐标,其中速度是你希望僵尸每个循环移动的一些像素数.然后在这个新位置重绘僵尸.
希望有所帮助!如果没有,请澄清问题.