【发布时间】:2014-06-12 19:20:27
【问题描述】:
我正在使用 box2d 创建游戏。我有球,当球通过传感器时,我需要增加分数...... 现在,当我在 beginContact 中解决联系人时,一切正常
public ContactListener createContactListener() {
return new ContactListener() {
@Override
public void beginContact(Contact contact) {
if(contact.getFixtureA().getUserData() == "ball" && contact.getFixtureB().getUserData() == "cup_sensor"){
//contact.getFixtureA().setUserData("ball_inactive");
Constants.LC.score++;
//contact.getFixtureA().getFilterData().maskBits = 0xffff & 0x0002;
//contact.setEnabled(false);
}
if(contact.getFixtureB().getUserData() == "ball" && contact.getFixtureA().getUserData() == "cup_sensor"){
//contact.getFixtureB().setUserData("ball_inactive");
Constants.LC.score++;
//contact.getFixtureB().getFilterData().maskBits = 0xffff & 0x0002;
//contact.setEnabled(false);
}
}
@Override
public void endContact(Contact contact) {
}
@Override
public void preSolve(Contact contact, Manifold oldManifold) {
}
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
}
};
}
每件事都像一个魅力
但出于某种原因,我想在 presolve 中这样做
return new ContactListener() {
@Override
public void beginContact(Contact contact) {
}
@Override
public void endContact(Contact contact) {
}
@Override
public void preSolve(Contact contact, Manifold oldManifold) {
if(contact.getFixtureA().getUserData() == "ball" && contact.getFixtureB().getUserData() == "cup_sensor"){
//contact.getFixtureA().setUserData("ball_inactive");
Constants.LC.score++;
//contact.getFixtureA().getFilterData().maskBits = 0xffff & 0x0002;
//contact.setEnabled(false);
}
if(contact.getFixtureB().getUserData() == "ball" && contact.getFixtureA().getUserData() == "cup_sensor"){
//contact.getFixtureB().setUserData("ball_inactive");
Constants.LC.score++;
//contact.getFixtureB().getFilterData().maskBits = 0xffff & 0x0002;
//contact.setEnabled(false);
}
}
@Override
public void postSolve(Contact contact, ContactImpulse impulse) {
}
};
}
现在它不起作用...它没有通过 if 条件...所以分数不会增加...
请支持我解决这个问题
编辑:我做了一些调试。似乎在 presolve contact.getFixtureA().getUserData() 上传感器返回 null。我不知道为什么
【问题讨论】:
标签: android box2d collision-detection