我正在开发一个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);
球的力矩略有变化,但在其他等级(非动画等级)中没有那么平滑。它仍然轻轻地反弹。而且由于那个问题无法玩游戏。
如果知道这一点,任何人都可以帮助我。任何回应都会受到赞赏。
感谢。
答案 0 :(得分:2)
编码和所有问题都没有错。我已经通过将动画图像的帧分辨率从3x2(即3行和2列)更改为3x3(即3行和3列)来解决了这个问题。现在,在所有动画级别中,每个图像都有9帧,其中每帧有6帧。
通过改变球的瞬间变得比非动画水平更加平滑。
由于