【发布时间】:2013-07-07 01:01:16
【问题描述】:
我想做一个像这样的涂鸦跳跃,我创建了两个身体,一个为玩家,一个为平台,但不是在平台身体上弹跳,玩家可以在身体 Y 坐标的所有线上跳跃.不知道为什么。
private void creerPlateformes(int n)
{
int pX[] = new int[n];
int pY[] = new int[n];
pX[0] = CAMERA_WIDTH/ 2-60;
pY[0] = 780;
for (int i=0;i<n;i++)
{
if (i!=0)
{
final Random r = new Random();
pX[i] = r.nextInt(464-16)+16;
pY[i] = pY[i-1]-r.nextInt(200-100)+100;
}
plateforme[i] = new Sprite(pX[i], pY[i], mPlateformeTextureRegion, getVertexBufferObjectManager());
plateforme[i].setScale(1);
plateforme[i].setUserData("plateforme");
final FixtureDef PLATEFORME_FIX = PhysicsFactory.createFixtureDef(0.0f, 0.0f, 0.0f);
plateformeBody[i] = PhysicsFactory.createBoxBody(physicsWorld, plateforme[i], BodyType.StaticBody, PLATEFORME_FIX);
plateformeBody[i].setUserData("plateforme");
scene.attachChild(plateforme[i]);
}
}
如果您需要更多代码,请告诉我,但我认为问题可能就在那里。
【问题讨论】:
-
我无法理解发生了什么。是不是这样:玩家在没有平台的区域反弹? Y 位置似乎正确,但 X 位置不正确。是这个问题吗?
-
是的,没错,我真的不知道为什么..
-
这只是一个猜测,但是 Sprite "plateforme[i]" 是否包含透明像素? box 2D 使用的形状的边界框将与精灵边界框相同。
-
是的,这个精灵包含透明像素,我尝试使用没有透明像素的精灵,但似乎不起作用..我的播放器仍然在右侧 Y 位置的所有 X 轴上弹跳
-
@SebastienServouze 你在屏幕的左/右侧有边框吗(防止玩家无限向左/右奔跑?我必须承认,我从来没有玩过涂鸦跳跃,只是得到了被电视广告无聊了 1k 次。澄清我的问题:在 x 方向上,您距离场景边界有 16px 的空间,您的播放器是否小到足以从这些孔中掉下来?
标签: box2d andengine physics platform