我在一个 2D 射击游戏上工作,屏幕上有很多移动的物体(子弹等)。
我使用 BitmapData.copyPixels(...) 将整个屏幕渲染到缓冲区:BitmapData。然后我从“缓冲区”“复制像素”到屏幕:BitmapData。帧率为60。
private var bitmap:Bitmap = new Bitmap();
private var buffer:Bitmap = new Bitmap();
private function start():void {
addChild(bitmap);
}
private function onEnterFrame():void {
// render into "buffer"
// copy "buffer" -> "bitmap"
}
问题是精灵正在撕裂:精灵的某些部分水平移动。
看起来像是关闭了 VSYNC 的 PC 游戏。
有没有人解决这个问题?
更新:问题不在于性能,而在于摆脱屏幕撕裂。
[!] 更新:我创建了另一个问题,在这里您可以尝试两种实现方式:使用 Flash 方式或 BitmapData+copyPixels()