Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在安德林改造tmx瓷砖_Android_Performance_Tmx - Fatal编程技术网

Android 在安德林改造tmx瓷砖

Android 在安德林改造tmx瓷砖,android,performance,tmx,Android,Performance,Tmx,在我们的游戏中,我一直在使用改变瓷砖,但我注意到,当许多瓷砖同时被改变时,性能会有相当大的损失。我正在使用该技术在TMX地图上设置瓷砖动画。我想知道是否有其他人注意到使用这种方法来更改tmx磁贴的性能问题?有没有更有效的方法来更改TMX磁贴 为了避免性能损失,我能想到的唯一其他选择是将动画精灵附加到TMX层,但这似乎不是一个理想的解决方案 如有任何建议,将不胜感激 以下是我所指的方法: mTestTile.setGlobalTileID(mTMXTiledMap, mGloabalIndex)

在我们的游戏中,我一直在使用改变瓷砖,但我注意到,当许多瓷砖同时被改变时,性能会有相当大的损失。我正在使用该技术在TMX地图上设置瓷砖动画。我想知道是否有其他人注意到使用这种方法来更改tmx磁贴的性能问题?有没有更有效的方法来更改TMX磁贴

为了避免性能损失,我能想到的唯一其他选择是将动画精灵附加到TMX层,但这似乎不是一个理想的解决方案

如有任何建议,将不胜感激

以下是我所指的方法:

 mTestTile.setGlobalTileID(mTMXTiledMap, mGloabalIndex);

 //After changing the global ID do this       
 final int TileHeight = mTMXTiledMap.getTileHeight();
 final int TileWidth = mTMXTiledMap.getTileWidth();           
 //See TMXLayer Class line 308 (getSpriteBatchIndex)
 lTMXLayer.setIndex(mTestTile.getTileRow() * mTMXTiledMap.getTileColumns() + mTestTile.getTileColumn());
lTMXLayer.drawWithoutChecks(mTestTile.getTextureRegion(), mTestTile.getTileX(),  mTestTile.getTileY(), lTileWidth, lTileHeight, Color.WHITE_ABGR_PACKED_FLOAT);     
mTMXTiledMap.mTestTMXLayer.submit();[/syntax]

注意:我正在使用GLES2 Anchor_Center Branch

我不确定您是否可以使用此功能,但我需要类似的功能。在TMX贴图中,我几乎没有想要两帧(开/关)的对象。我没有使用贴图层,而是使用对象层。我已将此代码添加到
TMXTileset
类:

public ITiledTextureRegion getTiledTextureRegionFromGlobalTileID(final int pGlobalTileID, final int pTiles) {
    ITextureRegion[] regions = new ITextureRegion[pTiles];
    for (int i = 0; i < pTiles; i++) {
        regions[i] = getTextureRegionFromGlobalTileID(pGlobalTileID + i);
    }

    return new TiledTextureRegion(this.mTexture, regions);
}
public ITiledTextureRegion GetTiledTextureRegion fromGlobalTileId(final int pGlobalTileID,final int pTiles){
ITextureRegion[]regions=新的ITextureRegion[pTiles];
对于(int i=0;i
我将所有开/关对象放置到特殊对象层(使用平铺编辑器)。当然,必须组织瓷砖集,以便打开和关闭帧顺序一致


然后,当我创建贴图时,我迭代这些对象并创建平铺精灵。我把它保存到一个特殊的列表中,以便以后检索。当然,从一个切换到另一个就像使用
setCurrentTileIndex()

一样简单。我最后做了类似的事情。谢谢!