Как предотвратить перемещение игроков в предметы - PullRequest
0 голосов
/ 07 октября 2019

После обнаружения столкновения, как я могу предотвратить перемещение игрока в объект? (или даже заставить его толкать их?) Я использую круговое обнаружение столкновений:

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; 
        }       

...