我目前正在使用Phaser,使用街机物理进行连续滚动游戏。我在中心有一个静止的玩家物体,它上下移动,为了创造它正在移动的错觉,我使用补间在屏幕上带来障碍物:
game.add.tween(block).to({ x: 0-(height/blocksize) }, 5000-speed, Phaser.Easing.Linear.None).start();
要让补间执行此操作并允许玩家被障碍物拦截,我将身体设置为不可移动:
block.body.allowGravity = false;
block.body.moves = false;
block.body.immovable = true;
这似乎运作良好,然而,我注意到玩家在碰撞时稍稍沉入侧面:
然后我尝试在更新循环中使用此代码手动偏移正文:
b[i].body.x = b[i].world.x-10;
虽然这确实让身体接近完全对齐,但玩家不会与身体侧面碰撞:
所以主要的问题是,当玩家(一个精灵。)击中其中一个移动的块(另一个精灵。)时,它似乎会略微沉入其中。这是因为移动块的物理体稍微滞后于视觉精灵。值得注意的是,我正在使用移相器街机物理引擎。