gpt4 book ai didi

java - 在Android主游戏循环中旋转位图而不重载GC

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:32 25 4
gpt4 key购买 nike

在主游戏循环中每帧旋转位图的正确方法是什么?我尝试过的:

我每帧都创建了旋转位图:

Bitmap image, tmp;
Matrix m;
...
public void mainGameLoop(Canvas c){
m.reset();
m.postRotate(angle);
tmp = Bitmap.createBitmap(image, 0, 0, width, height, m, true);
c.drawBitmap(tmp, 50, 50, null);
}

但是,由于 Bitmap.createBitmap 每帧都会创建位图,垃圾收集器工作得非常疯狂,导致 FPS 较低。

我尝试过在各个角度将位图保存在数组中,并且只获取我想要的位图。但是,这需要大量 RAM,并且应用程序无法在高分辨率下启动。

如果您有什么想法,请在下面评论。

最佳答案

有些人是这样想的:

Bitmap image;
Matrix m;
.
.
.
public YourClass(){
m = new Matrix();
image = Bitmap.createBitmap(image, 0, 0, width, height,);
}
.
.
.
public void mainGameLoop(Canvas c){
m.setRotate(angle, imageCenterX, imageCenterY);
yourCanvas.drawBitmap(image, m, null);
}

关于java - 在Android主游戏循环中旋转位图而不重载GC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com