2010-01-16 60 views
9

我目前正在Android中啓動一個遊戲引擎,首先進入平臺並擁有基礎知識,但我不確定使用SurfaceView繪製圖形時解決方案獨立性的最佳方式。解決方案在Android中的獨立性SurfaceView

尋找指針,以如何保持遊戲/精靈等等都在尋找相同的獨立屏幕,顯然它不會是有效的擴展所有精靈每幀或存儲許多變化對於不同分辨率

回答

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) 

如果規模是基於屏幕尺寸的變化。

+0

乾杯凱西,與這種解決方案,你認爲這將是最好的整合適合像Nexus這樣的較大android解決方案的最高精靈,然後縮小舊設備的圖形尺寸? – Tom 2010-01-20 13:56:14

+0

我會這麼認爲,當你縮放它們時,事物往往看起來比它們縮放時要好。 – CaseyB 2010-01-20 16:37:33

+0

所以我試過這段代碼,並通過文檔..出於某種原因,即使我硬編碼outHeight和OutWidth變量,精靈總是輸出相同的大小。 – Tom 2010-01-22 20:07:16

1

有兩個簡單的方法:

第一:

在創建表面來看,它調用:

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

創建幾個全局變量,X &ÿ因此,如果您覆蓋此有:

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

然後在圖紙或計算遊戲,你可以使用窗口W和H。

二:在繪圖和遊戲計算

調用的getWidth()&的getHeight()。

祝您好運與您的遊戲!

+0

感謝勞倫斯,我想我的問題更多的是針對如何處理比例如果遊戲中的位圖,使遊戲在所有平臺上都顯示相同... – Tom 2010-01-16 21:16:14

相關問題