我Enemy班上有一个叫做的方法huntPlayer.它需要一个玩家对象p.这里是:
def huntPlayer(self, p):
if self.dist2p < 200:
self.hunting = True
if p.x > self.rect.x:
self.rect.x += self.speed #this is a constant at value 1
elif p.x < self.rect.x:
self.rect.x -= self.speed
else:
self.rect.x += 0
if p.y > self.rect.y:
self.rect.y += self.speed
elif p.y < self.rect.y:
self.rect.y -= self.speed
else:
self.rect.y += 0
else:
self.rect.x += 0
self.rect.y += 0
Run Code Online (Sandbox Code Playgroud)
敌人随机放置在一个2d俯卧平原周围,他们随机漫游这个平原.我已经计算出这是最短的距离到播放器=斜边Enemy.dist2p-当dist2p值<200的敌人将朝向玩家移动,p.x并p.y分别.
我上面的解决方案很粗糙,因此我的问题是敌人在x或y轴上同样移动1个位置,导致每个轴的对角线移动,然后沿着轴滑动直到它到达玩家.(播放器位于中心屏幕附近的固定位置.)
你能帮助我修复huntPlayer方法/算法,让敌人跟随玩家的斜边路径,而不是x/y轴的最快路径吗? …