0
我一直在尝试使用box2D在LibGDX中设置环绕时出现问题,例如,我希望我的播放器在退出右侧后出现在屏幕的左侧,但不是在这里工作是我的代码:使用Box2D在libGDX中设置环绕效果
public void setWraparound(){
//if player goes out of bounds vertically
if(body.getPosition().x < 0){
body.setTransform(new Vector2(4.8f, body.getPosition().y),body.getAngle());
}else if(body.getPosition().x > 4.8f){
body.setTransform(new Vector2(0, body.getPosition().y), body.getAngle());
}
//if player goes out of bounds Horizontally
if(body.getPosition().y < 0){
body.setTransform(new Vector2(body.getPosition().x,8f), body.getAngle());
}else if(body.getPosition().y > 8f){
body.setTransform(new Vector2(body.getPosition().x,0), body.getAngle());
}
}
然后调用该方法在我GameStage类是这样的:
public GameStage() {
setUpWorld();
setupCamera();
setupTouchControls();
player.setWraparound();
renderer = new Box2DDebugRenderer();
}
任何人都可以帮我吗?
感谢您的建议,但我已修复它,问题是我没有在libgdx的render方法中调用setWraparound方法,需要不断检查。 – Harry
是的,这是我的意思是“检查每一帧”。然而,既然你使用box2D,我建议你看看碰撞检测;-) – donfuxx
非常感谢你,我将使用与EdgeShape碰撞,如你所说。顺便说一句对游戏开发来说是一种新鲜的东西。 – Harry