我创造了一款游戏,其中包含96个静态影片剪辑和7个基本上水平移动的影片剪辑。如果我添加越来越多的移动动画片段,滞后开始上升。游戏循环基本上是,增加动画片段的x坐标,所以我不认为我在游戏循环中有问题。
一旦超过一定数量的动画片段,闪光灯会滞后吗? 如果这是正常的,你有什么建议来增加游戏的表现?
无论如何,这是游戏循环中的更新方法:
public function update():void
{
//cek kondisi untuk melakukan spawn char
spawnChar();
//cek kondisi untuk melakukan spawn stand(stand diisi oleh pedangang di zona)
spawnStand();
//cek tiap char untuk tiap kondisi sekaligus assign depth yg sesuai;
for (var i:int=0; i<mArrForeObjects.length; i++)
{
mArrForeObjects[i].update();
if (mArrForeObjects[i] is Char && mArrForeObjects[i].x > mWorld.MAP_WIDTH * Tile.TILE_WIDTH || mArrForeObjects[i].x < - mArrForeObjects[i].width || mArrForeObjects[i].y > mWorld.MAP_HEIGHT * Tile.TILE_HEIGHT + mArrForeObjects[i].height || mArrForeObjects[i].y < 0)
{
//jika di luar peta, hapus char ini
delChar(i);
}
}
}
THX
答案 0 :(得分:1)
如果您只是在x轴上移动显示对象,可以尝试将cacheAsBitmap设置为true以提高性能。或者,您可以尝试从共享的bitmapData对象重绘每个对象的位图。 Here is an interesting article with a performance test
答案 1 :(得分:0)
我通过将图片作为BitmapData和copypixel加载到屏幕来解决了延迟问题 参考:http://www.8bitrocket.com/2008/7/2/Tutorial-AS3-The-basics-of-tile-sheet-animation-or-blitting/