我使用的是3800x3000位图作为游戏的背景。
现在,我首先显示整个位图 - 横向 - 然后放大字符。 我正在使用GreenSock的TweenMax,但即使使用这个高级补间类,我的位图也不会移动并且可以平滑地缩放。
任何想法如何解决这个问题?我也想使用较小的位图并缩放它们,但是我会失去质量,我不能模糊位图来隐藏质量损失,因为位图中也有地形,我不喜欢我想模糊它。
答案 0 :(得分:1)
为什么位图如此之大?您的目标设备/屏幕是否扩展到3800x3000?
建议:
避开问题。使用较小的位图,或将其分成几个小位图,或使用矢量形状再现更多背景。显然不是每一件艺术品都可以重新创建为矢量,但是如果可以的话,你可以节省大量文件并提高性能。
确保启用了cacheAsBitmap。这告诉Flash优化位图的渲染。当位图没有滤镜,变换很少,并且不经常移动或旋转时,它最有效。它是不受欢迎的背景的理想选择。
硬模式:如果您想获得极其喜欢并且目标受众支持最新的Flash Player,请尝试将背景创建为2D阶段后面的3D空间中的矩形的纹理。请参阅Thibault Imbert的这篇文章,了解我的意思:http://www.bytearray.org/?p=2555
答案 1 :(得分:1)
这确实不是Flash特有的问题,因为它本质上是一般的游戏开发问题。无论如何,在内存中操作一个巨大的基本位图(使用任何语言)都会很慢。在每次绘制调用时,您实际上将数百兆内存移动到当前帧缓冲区中。如果你看一下像侧卷轴这样的大型背景游戏,背景就会被许多复制了数百次的小对象组成。然后将该技术与仅将当前屏幕缓冲器中可见的小精灵放在舞台上相结合。在地图上移动时,您将删除不再被看到的碎片以及移动到屏幕的更多切片。这部分技术通常称为瓦片缓冲。希望这有帮助!