1
我正在研究iPhone游戏,地面是一个长而重复的矩形子画面对象,它延伸到屏幕底部以上约30个像素处。我试图将我的地面边缘形状调整为30像素,这样当玩家精灵从跳跃落到地面时,他会落在地面图像的顶部。当我试图加入以下代码,它不工作:Box 2D - 是否有办法让地面移动b2EdgeShape up
b2BodyDef groundBodyDef;
groundBodyDef.position.Set(0, 30/PTM_RATIO);
b2Body *groundBody=world->CreateBody(&groundBodyDef);
b2EdgeShape groundLine;
groundLine.Set(b2Vec2(0, 30/PTM_RATIO), b2Vec2(screenSize.width/PTM_RATIO, 30/PTM_RATIO));
groundBody->CreateFixture(&groundLine, 0);
我知道我大概可以使用矩形形状的地面,但因为我的球员精灵仅与图像的顶部碰撞,我宁愿摆脱边缘形状。
这看起来很好。代码中必须存在其他问题。发生了什么问题?你的玩家穿过地面还是什么?你的球员的体型(动态?)是什么?你如何移动你的球员? – Tayyab 2011-04-04 08:26:11
我正在用重力使我的球员(动态身体)下降。它忽略了30 y点,而是与0 y点碰撞 – Scott 2011-04-04 15:36:24