我正在开发一个有20个关卡的迷宫和球类游戏。在我的游戏中,除了一个问题之外,所有的问题都被修复了。我被困在让球变得更平滑的时候。除动画级别外,所有级别的球瞬间都很好。我找不到哪里出了错。
在所有级别中,球都是精灵,关卡图像是精灵和动画精灵。我已经为水平图像与球在6个级别的动画精灵。在剩下的关卡中,图像和球都只是精灵。
所有动画精灵都具有1024x1024大小的纹理。我使用以下代码来创建动画精灵。
this.multipleImagesTexture = new Texture(1024,1024,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
this.multipleImagesTextureRegion = TextureRegionFactory.createTiledFromResource(this.multipleImagesTexture, this, getResources().getIdentifier(m_level.m_levelImages.get(j), "drawable", "com.andmaze.mobile"),0, 0, col,row);
this.mEngine.getTextureManager().loadTexture(this.multipleImagesTexture);
multipleimagesdragon = new AnimatedSprite(5, 83, this.multipleImagesTextureRegion);
multipleimagesdragon.animate(1000);
scene.getFirstChild().attachChild(multipleimagesdragon);下面是为球创建精灵的代码
for(GoliMeta g : metalist) {
balls_Array[index] = new Sprite(g.X , g.Y, ballTextureRegion);
Body body = PhysicsFactory.createCircleBody(mPhysicsWorld, balls_Array[index], BodyType.DynamicBody, FIXTURE_DEF);
scene.getFirstChild().attachChild(balls_Array[index]);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(balls_Array[index], body, true, false));
index++;
}在迷宫中有正常精灵的所有级别中,球的时刻都是好的。在其他级别,也就是我有动画精灵的地方,球的时刻是不寻常的。我已将physicsworld对象代码更改为
mPhysicsWorld = new FixedStepPhysicsWorld(30, new Vector2(0,SensorManager.GRAVITY_EARTH), false);而不是
mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);在球的时刻有一个轻微的变化,但在其他级别(非动画级别)不是很平滑。它仍在轻微反弹。因为这个问题不能玩这个游戏。
如果知道这一点,有人能帮我吗?如有任何回应,我们将不胜感激。
谢谢。
发布于 2011-08-12 11:22:49
在编码和其他方面没有任何错误。我已经解决了这个问题,将动画图像的帧分辨率从3x2 (即3行2列)更改为3x3 (即3行3列)。现在,在所有动画级别中,每个图像都有9帧,而以前每个图像都有6帧。
通过这个改变,球瞬间变得更平滑了,就像在非动画级别一样。
谢谢
https://stackoverflow.com/questions/6951323
复制相似问题