1
我在LibGdx中使用Box2D創建一個平臺遊戲。我有一個算法,可以將拼圖轉換爲燈具。而且我使用聯繫偵聽器來確定玩家是否在空中,但是問題是,因爲我使用的燈具是彼此相鄰,LibGdx Box2d遊戲平臺遊戲跳轉執行
(P)-->
|瓷磚| |瓷磚| |瓷磚|
聯繫人偵聽程序在調用聯繫人之後調用聯繫人終止,當我傳遞相鄰的磁貼並將MOB_AIR值設置爲true時,即使我在地面上,也不能跳轉。
代碼的其他部分(暴徒和box2d世界)工作正常,因爲我可以跳,當我新登陸或瓷磚之間。
如果您之前遇到同樣的問題,是否有一個很好的方法來實現這個跳躍?
http://i.imgur.com/v8ny3sO.png
http://i.imgur.com/yWcDsZb.png
對不起我的英語不好,任何有助於將不勝感激。
聚苯乙烯:也問題不是因爲box2d多邊形 - 多邊形collison故障,我使用chainhape播放器和多邊形瓷磚。 `
public void beginContact(Contact contact) {
Fixture x1 = contact.getFixtureA();
Fixture x2 = contact.getFixtureB();
if(x1.getUserData()!=null && x2.getUserData()!=null){
if(x1.getUserData().equals("sensor") && x2.getUserData().equals("x")){
mob.setState(Mob.ON_AIR, false);
}
else if(x2.getUserData().equals("sensor") && x1.getUserData().equals("x")){
mob.setState(Mob.ON_AIR, false);
}
}
}
@Override
public void endContact(Contact contact) {
Fixture x1 = contact.getFixtureA();
Fixture x2 = contact.getFixtureB();
if(x1.getUserData()!=null && x2.getUserData()!=null){
if(x1.getUserData().equals("sensor") && x2.getUserData().equals("x")){
mob.setState(Mob.ON_AIR, true);
}
else if(x2.getUserData().equals("sensor") && x1.getUserData().equals("x")){
mob.setState(Mob.ON_AIR, true);
}
}
}`