Объект проходит через коллизию при большой скорости

214
11 января 2019, 00:50

Делаю игру с видом сверху. Делаю так чтобы мышка не выходила за камеру.

reticle = this.physics.add.sprite(player.x,player.y, 'reticle');
        reticle.setOrigin(0.5, 0.5).setCollideWorldBounds(true)
        reticle.body.allowGravity=false;  
 invisible_h = this.physics.add.group();
        createwall(invisible_h,false,0,0,"white-h",2,1)
        createwall(invisible_h,false,0,900,"white-h",2,1)
        createwall(invisible_h,false,player.x-900,0,"white",1,2)
        createwall(invisible_h,false,900,0,"white",1,2)
this.physics.add.collider(reticle,invisible_h)
this.input.on('pointermove', function (pointer) {
                if (this.input.mouse.locked)
                {
                    reticle.setVelocityX(pointer.movementX*60) 
                    reticle.setVelocityY(pointer.movementY*60) 
                }
            }, this)   
function update(){

reticle.setVelocityX(0);
reticle.setVelocityY(0);
// делает так чтобы мышка не отставала от игрока
reticle.body.velocity.x = player.body.velocity.x;
reticle.body.velocity.y = player.body.velocity.y;
}
function createwall(group,gravity,x,y,sprite,sx,sy){
    let wall= group.create(x,y,sprite);
    wall.body.allowGravity=false;
    wall.setScale(sx,sy)
    wall.body.immovable = true;
}

Сначала мышка не проходит через стенку, но если двигаю reticle быстро, то она проходит через неё. Как решить эту проблему?

P.S коллизия перестает работать при velocity >= 1440. Может это связано с частотой обновления?

READ ALSO
Как получить координаты курсора секунду назад?

Как получить координаты курсора секунду назад?

Это нужно для того, чтобы при смещении курсора влево запускалась одна анимация, при смещении курсора вправо - другая, если координаты остались...

208
Node.js socket.io emit не работает с кириллицей

Node.js socket.io emit не работает с кириллицей

имеется два варианта кода на сервере:

256
Как переписать функции fadeIn, fadeOut в нативном javascripte?

Как переписать функции fadeIn, fadeOut в нативном javascripte?

Есть блоки, которые замещают один одного при клике на кнопку без перезагрузки страницыКод я написал используя jquery, но теперь думаю, как его...

203
Как добавить новый тег после другого тега внутри тега?

Как добавить новый тег после другого тега внутри тега?

Надо внутри тега article добавить новый тег hr после каждого p( c помощью js)Попробовал такой способ:

220