【发布时间】:2015-08-11 13:55:49
【问题描述】:
我正在使用 Box2D 独立于我的精灵来模拟物理世界,并且我根据 b2body 的位置更新我的精灵的位置。
我有一个由两个固定装置组成的播放器。一个固定装置不是传感器,可以与地面接触。另一个固定装置是一个传感器,用于检查与通电、可食用等物品的接触。
。我有一些主体(可食用的、权力的),其中的固定装置由一个可以与玩家传感器接触的传感器组成。
在 iOS 中一切正常 - 当玩家与电源/可食用物品发生碰撞时,他会继续奔跑,就好像没有任何问题一样。但在 Android 中,他会在上电后反弹。
可能是什么问题?物理编辑器生成的 plist 文件对两者都是相同的。为什么模拟应该不同? Box2d 是 cocos2d 的一部分,所以库是一样的,应该是一样的。
我使用的是 cocos2d-x 3.7。
编辑:我使用以下内容:
ContactListener.h 类:
class ContactListener : public b2ContactListener {
public:
void BeginContact(b2Contact* contact) {
void* bodyUserDataA = contact->GetFixtureA()->GetBody()->GetUserData();
if (bodyUserDataA) {
}
}
void EndContact(b2Contact* contact) {
}
};
我的 ContactListener.cpp 是空的。
Xcode 会自动处理正确构建所有内容并且“正常工作”的事情。在 Android 上,我必须在 Application.mk 中指定我的 cpp 文件,所以我想知道这是否会导致一些不同的行为,因为我没有在任何地方指定 .h 文件。
【问题讨论】:
标签: android ios cocos2d-x box2d