我正在制作游戏的一个元素,其中一个人向目标发射火箭,然后目标爆炸。我用 Canvas 和线程来做这个,总是重绘整个屏幕。 可以用其他方式完成吗?因为如果有很多 Action ,游戏会吃掉很多内存。所以我正在寻找优化以及如何在不重绘整个屏幕的情况下为对象设置动画。
最佳答案
如果您使用的是 surfaceview 或 textureview,您可以锁定屏幕的一部分并重绘它。 (我推荐 textureview 而不是 surfaceview)。
Canvas android.view.TextureView.lockCanvas(Rect dirty)。 public Canvas lockCanvas(矩形脏)。 在 API 级别 14 中添加。 就像 lockCanvas() 但允许指定脏矩形。必须写入该矩形内的每个像素;然而,下一次调用 lockCanvas() 时将保留脏矩形之外的像素。如果底层表面纹理不可用(请参阅 isAvailable() 或如果表面纹理已经连接到图像生成器(例如:相机、OpenGL、媒体播放器等),则此方法可以返回 null
关于安卓游戏 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24493798/