Делаю игру с видом сверху. Делаю так чтобы мышка не выходила за камеру.
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. Может это связано с частотой обновления?