纹理图像使用andengine覆盖

时间:2011-12-15 09:55:16

标签: android andengine

我正在使用andengine开发游戏。我为一个纹理区域使用了一个纹理

 public Texture xImg;

 public TextureRegion xRegion,yRegion;

this.xImg=new Texture(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA);  

this.xRegion= TextureRegionFactory.createFromAsset(this.xImg, this, "level.png", 0, 0);

this.yRegion= TextureRegionFactory.createFromAsset(this.xImg, this, "life.png", 0, 0);

我为xRegion和yRegion创建了一个两个精灵。但是两个精灵图像被覆盖了水平和生命图像。如何为两个纹理区域共享一个纹理

2 个答案:

答案 0 :(得分:1)

你应该使用

this.myBitmapTextureAtlas = new BitmapTextureAtlas(512, 256, TextureOptions.BILINEAR_PREMULTIPLYALPHA);

BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");

this.xRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "level.png", 0, 0);
this.yRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "life.png", 50, 0);

textureRegion构造函数中的最后2个值指定TextureAtlas中您所在区域的位置。所以你必须使用不同的x,y值

查看此更多示例andengine examples

答案 1 :(得分:0)

为了澄清这种情况,AndEngine中使用的纹理只是一张巨大的图片,您可以使用createFromAsset方法放置较小的图片。我认为它的工作原理是因为一些低级OpenGL ES技巧可以提高性能。

如果您的坐标设置错误,图片将在纹理中重叠,稍后再显示时,您会看到之前添加到纹理中的图片中添加的图像的一部分。

此外,在较新版本的AndEngine中,有一个新类BuildableTexture,它使用一些聪明的算法自动为您放置图片。 http://www.andengine.org/forums/tutorials/buildabletextures-t415.html