下面是我应该发送的代码太多了,如果您愿意,我可以编辑这篇文章并删除不必要的代码以进行复制!
loader.py
嗨,这不是全部的代码,还有更多的上下文,所以有些代码没有意义,但正如你所看到的,我已经定义了两个变量 let FollowInterval;
let FollowTimeout;
for (let index2 = 0; index2 < Worlds[index].Players.length; index2++) { // For every Player in that room
if (Worlds[index].Players[index2].iscolliding(Worlds[index].Enemys[index1])) { // if player is colliding with a enemy to therefore take damage.
if (! Worlds[index].Enemys[index1].hasattacked) { // Checking if enemy has already attacked and waiting on attack timeout
Worlds[index].Players[index2].health -= Worlds[index].Enemys[index1].damage;
if (Worlds[index].Players[index2].health <= 0) {
//console.log('Died');
clearInterval(FollowInterval)
clearTimeout(FollowTimeout)
}
io.to(Worlds[index].Players[index2].id).emit("Update Character", {health: Worlds[index].Players[index2].health}); // Update the characters health
Worlds[index].Enemys[index1].hasattacked = true;
}
}
if (Worlds[index].Enemys[index1].RectCircleColliding(Worlds[index].Players[index2]) && !Worlds[index].Enemys[index1].followingonce) {
Worlds[index].Enemys[index1].followingonce = true;
Worlds[index].Enemys[index1].following = Worlds[index].Players[index2].id;
FollowInterval = setInterval(() => {
Worlds[index].Enemys[index1].GoTowardsPlayer(Worlds[index].Players[index2].x,Worlds[index].Players[index2].y,Worlds[index].Players[index2].id)
console.log(Worlds[index].Players[index2].x,Worlds[index].Players[index2].y,Worlds[index].Players[index2].id);
}, 100);
FollowTimeout = setTimeout(() => {
Worlds[index].Enemys[index1].followingonce = false;
Worlds[index].Enemys[index1].isfollowing = false;
Worlds[index].Enemys[index1].stop();
clearInterval(FollowInterval)
}, 5000);
}
}
和 FollowInterval
,在查看是否如果角色与检测圈相撞,我会受到攻击,如果是这样,则启动 FollowTimeout
和 Timeout
超时在一段时间后停止跟随,并且间隔是跟随字符直到超时完成。
回到角色被损坏的地方我有一个:
Interval
这里我清除一个 if (Worlds[index].Players[index2].health <= 0) {
//console.log('Died');
clearInterval(FollowInterval);
clearTimeout(FollowTimeout)
}
和一个 clearInterval
来清除过去定义的变量。当 This 运行时,Intervals 和 Timeouts 工作得很好,但是当玩家死亡时,它会继续跟随玩家!
如果您需要更多信息,请随时在下面发表评论并尽快回复。