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