我們如何知道box2d汽車是否正在飛行? 這就是我如何與傳感器做,這是不行的完美:Andengine Box2D如何知道一輛車正在飛行?
public void endContact(Contact contact) {
// TODO Auto-generated method stub
final Fixture x1 = contact.getFixtureA();
final Fixture x2 = contact.getFixtureB();
if (x1.getBody().getUserData() != null
&& x2.getBody().getUserData() != null) {
if ((x1.getBody().getUserData().equals("ground") && x2
.getBody().getUserData().equals("wheelSensor1"))
|| (x1.getBody().getUserData().equals("wheelSensor1") && x2
.getBody().getUserData().equals("ground"))) {
r1 = true;
}
if ((x1.getBody().getUserData().equals("ground") && x2
.getBody().getUserData().equals("wheelSensor2"))
|| (x1.getBody().getUserData().equals("wheelSensor2") && x2
.getBody().getUserData().equals("ground"))) {
r2 = true;
}
if (r1 && r2){
car.isFlying = true;
}
}
}
@Override
public void beginContact(Contact contact) {
// TODO Auto-generated method stub
final Fixture x1 = contact.getFixtureA();
final Fixture x2 = contact.getFixtureB();
if (x1.getBody().getUserData() != null
&& x2.getBody().getUserData() != null) {
if (x1.getBody().getUserData().equals("ground")
&& x2.getBody().getUserData().equals("wheelSensor1")) {
car.isFlying = false;
r1 = false;
} else if (x1.getBody().getUserData().equals("wheelSensor1")
&& x2.getBody().getUserData().equals("ground")) {
car.isFlying=false;
r1 = false;
} else if (x1.getBody().getUserData().equals("ground")
&& x2.getBody().getUserData().equals("wheelSensor2")) {
car.isFlying=false;
r2 = false;
} else if (x1.getBody().getUserData().equals("wheelSensor2")
&& x2.getBody().getUserData().equals("ground")) {
car.isFlying = false;
r2 = false;
}
}
}
我的傳感器機構比車輪收到較好的效果更大。 wheelSensorPicture 但是,即使傳感器像圖中一樣埋在地下,接觸監聽器也會給我多次傳感器和接地之間的聯繫。我已經嘗試過與輪體相同的過程,結果是一樣的。那麼我的錯誤是什麼,或者更好的方法是什麼?謝謝你的幫助。
什麼是由...組成的......是多個燈具還是隻有一個? – iforce2d