我正在制作一个游戏元素,一个人射向目标的火箭,然后目标爆炸。我用画布和线程做这个,总是重绘整个屏幕。 可以通过其他方式完成吗?因为如果会有很多动作,游戏会占用大量内存。所以我正在寻找优化以及如何在不重绘整个屏幕的情况下为对象设置动画。
答案 0 :(得分:1)
只是一个建议。
为什么不使用libgdx等游戏框架? 它会让你从纯粹的Android代码中脱颖而出,但它会让你专注于你的游戏而不是内存管理。(你的游戏也可以在其他平台上播放)
如果您喜欢这个想法,还有其他工具(团结,游戏等)
答案 1 :(得分:1)
如果您使用的是surfaceview或textureview,则可以锁定部分屏幕并重新绘制。 (我建议在surfaceview上使用textureview。)
Canvas android.view.TextureView.lockCanvas(Rect dirty)。 public Canvas lockCanvas(Rect dirty)。 在API级别14中添加。 就像lockCanvas()一样,但允许指定脏矩形。必须写入该矩形内的每个像素;但是,下一次调用lockCanvas()时,脏矩形外的像素将被保留。如果底层曲面纹理不可用,则此方法可返回null(请参阅isAvailable()或表面纹理已连接到图像生成器(例如:相机,OpenGL,媒体播放器等)