我正在使用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创建了一个两个精灵。但是两个精灵图像被覆盖了水平和生命图像。如何为两个纹理区域共享一个纹理
答案 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