9

我目前正在 Android 中启动游戏引擎,首先涉足该平台并具备基础知识,但是我不确定在使用 SurfaceView 绘制图形时实现分辨率独立性的最佳方法。

寻找关于如何保持游戏/精灵等在屏幕上独立的指针,显然每帧缩放所有精灵或存储不同分辨率的许多变化是不有效的

4

2 回答 2

5

您只需在加载精灵时缩放它们。我猜你是从资源中将它们作为位图加载的,对吧?如果是这种情况,那么您只需要这样做:

BitmapFactory.Options options = new BitmapFactory.Options();
options.outHeight = spriteHeight * scale;
options.outWidth = spriteWidth * scale;

Bitmap sprite = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sprite, options)

其中 scale 是基于屏幕大小的变化。

于 2010-01-19T21:12:55.477 回答
1

有两种简单的方法:

第一的:

在创建 Surface 视图时,它调用:

onSizeChanged  (int w, int h, int oldw, int oldh)

创建一些全局变量 x & y 所以如果你用以下方法覆盖它:

onSizeChanged(int w, int h, int oldw, int oldh){
this.w=w;
this.h=h;
}

然后在任何绘图或游戏计算中,您都可以使用窗口 w 和 h。

第二:

在绘图和游戏计算中调用 getWidth() 和 getHeight()。

祝你游戏好运!

于 2010-01-16T20:55:28.130 回答