Android SurfaceView中的parsing独立性

我目前正在Android中启动一个游戏引擎,首先进入平台,并具有基础知识,但是我不确定使用SurfaceView绘制graphics时解决scheme独立性的最佳方法。

寻找指示如何保持游戏/精灵等所有看起来相同的独立于屏幕,显然这将不是有效的缩放所有精灵的每一帧或存储许多变化的不同分辨率

Solutions Collecting From Web of "Android SurfaceView中的parsing独立性"

当你加载它们时,你只需要缩放这些精灵。 我猜你正在加载他们从一个资源位图,对不对? 如果是这样的话,那么你需要做的就是这样:

BitmapFactory.Options options = new BitmapFactory.Options(); options.outHeight = spriteHeight * scale; options.outWidth = spriteWidth * scale; Bitmap sprite = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sprite, options) 

哪里的规模是基于屏幕尺寸的变化。

有两个简单的方法:

第一:

在创buildSurface视图时,它调用:

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

创build一些全局variables,x&y,所以如果你用下面的方法覆盖它:

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

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

第二:

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

祝你好运!