我的png精灵在Andengine中闪烁

时间:2011-10-21 20:33:08

标签: android opengl-es andengine

我正在使用Andengine在Android上编写塔防游戏。 我有个问题。 我正在使用30-40个精灵。这些精灵是“敌人”。他们的坐标正在改变每个循环。(我正在使用TimerHandler) Enemys精灵的纹理是透明的png图像。 我正在使用galaxy s。当我尝试我的应用程序时,我没有任何问题。但是我将我的应用程序发送给了我的朋友,并且他说敌人随机闪烁闪烁。一个精灵是看不见的,经过一小段时间后,它是可见的。然后另一个精灵是不可见的,经过一段时间后,就可见了。

png文件:http://nafiz.in/yerSipasi.png

纹理加载:

yaratiklar = new BitmapTextureAtlas(256, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);

kaplama = BitmapTextureAtlasTextureRegionFactory.createFromAsset(yaratiklar, this, "yerSipasi.png" , 0, 0);

精灵:

Sprite Yaratik = new Sprite(-50,-50, kaplama);

移动时

  scene.registerUpdateHandler(new TimerHandler(1/50f,true,new ITimerCallback()
    {                      
        @Override
        public void onTimePassed(final TimerHandler pTimerHandler)
        {
           ....
           .. for...
    Yaratik[i].setPosition(xNew, yNew);
  ...
 }
 });

我无法理解为什么。

感谢您阅读。

2 个答案:

答案 0 :(得分:3)

尝试两件事

首先,你的精灵是否能够正确融合 - 这样的事情?

myspite.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

其次,尝试禁用EVBO,因为有些手机有问题

public Engine onLoadEngine() {
     camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
     EngineOptions eo = new EngineOptions(true, ScreenOrientation.PORTRAIT, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
     eo.getRenderOptions().disableExtensionVertexBufferObjects();
     return new Engine(eo);

}

后者解决了我的游戏中精灵的“比特”消失的问题 - 我不知道这是否可以延伸到整个精灵......

答案 1 :(得分:0)

确保您没有为多个精灵使用相同的区域。我曾经遇到过这个问题,我的问题是我在多个精灵上使用相同的区域。