После обнаружения столкновения, как я могу предотвратить перемещение игрока в объект? (или даже заставить его толкать их?) Я использую круговое обнаружение столкновений:
self.getDistance = function(pt){
return Math.sqrt(Math.pow(self.x-pt.x,2) + Math.pow(self.y-pt.y,2));
}
, которое идеально подходит для обнаружения столкновений, например, для обнаружения попадания пули в игрока:
for(var i in Player.list){
var p = Player.list[i];
if(self.getDistance(p) < 64 && self.parent !== p.id){
p.hp -=self.damage;
но я просто не могу найти способ заставить игрока перестать двигаться в одном направлении, когда он врезается в стену / другого игрока. Кто-нибудь знает, как это сделать?
вот код движения игрока:
self.updatepos = function(){
if(self.pressingRight)
self.spdX = self.maxSpd;
else if(self.pressingLeft)
self.spdX = -self.maxSpd;
else
self.spdX = 0;
if(self.pressingUp)
self.spdY = -self.maxSpd;
else if(self.pressingDown)
self.spdY = self.maxSpd;
else
self.spdY = 0;
}