【发布时间】:2015-08-26 19:59:04
【问题描述】:
所以现在我正在尝试制作一个游戏,让你保持正确的跑步状态并且必须跳过障碍物。我已经做到了,地面由两个大街区组成,当你在第二个街区的四分之一处时,第一个街区会移动到第二个街区的前面。这是我的代码。
public void updateGround(){
if(player.getPosition().x >= blocks[1].getGeneratePoint()){
//swap the blocks in the array
Block tempblock = blocks[0];
blocks[0] = blocks[1];
blocks[1] = tempblock;
Body body1 = blocks[0].getBody();
blocks[1].getBody().setTransform(body1.getPosition().x+(gBlockSize*2)/B2DVars.PPM,
0,0);
}
}
我想对此进行压力测试,所以我将块大小设置得有点小,然后让它继续运行,但我注意到一段时间后我的人停止了运行。通过使用 b2drenderer 和其他测试,我意识到玩家以某种方式与第二个块接触,并且它在第二个块开始的地方停止。
这是某种错误还是我做错了什么?我确定地块不会改变它们的 y 值或它们的角度会导致它们的设置为 0,我什至尝试过让地面块相互进入,但玩家仍然会在第二块开始的地方停下来。
【问题讨论】: