如何防止玩家进入物体

时间:2019-10-07 19:16:56

标签: javascript html5-canvas collision

检测到碰撞后,如何防止玩家进入物体? (或者甚至让他推动它们?)我正在使用圆形碰撞检测:

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

0 个答案:

没有答案