2012-12-09 28 views
1

我使用和發動機,當我試圖使它在所有設備上工作的話,我是在急難通用的方式做一個遊戲......安卓:Andengine設置精靈的立場,即在所有設備上工作

我需要在背景精靈的特定位置上設置精靈,該精靈應該可以在所有屏幕上工作...我的背景屏幕與設備的尺寸具有相同的尺寸..

我嘗試使用像素說讓Glaxy S3 ha尺寸720 * 1280

而我根據它來設置我的精靈位置(584608)

和我的HTC Experia還公頃尺寸(320480)

,所以我需要把它放在(244172) ....

我已經嘗試了所有以下以通用的方式設置精靈的位置,但不是如果任何工作...

我已經嘗試了很多以下的事情,使一些公式,使我能做到但無法找到任何..請告知

final Display display = getWindowManager().getDefaultDisplay(); 
DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

metrics.density; 
metrics.densityDpi; 
metrics.heightPixels); 
metrics.scaledDensity); 
metrics.widthPixels); 
metrics.xdpi); 
metrics.ydpi); 



Point point = getDisplaySize(display); 
CAMERA_WIDTH = point.x; 
CAMERA_HEIGHT = point.y; 
DisplayMetrics dm = new DisplayMetrics();  getWindowManager().getDefaultDisplay().getMetrics(dm); 
double x = Math.pow(dm.widthPixels/dm.xdpi,2); 
double y = Math.pow(dm.heightPixels/dm.ydpi,2); 
double screenInches = Math.sqrt(x+y); 
int widthPix = (int) Math.ceil(dm.widthPixels * (dm.densityDpi/160.0)); 

//CAMERA_WIDTH = display.getWidth(); 
//CAMERA_HEIGHT = display.getHeight(); 

問題是有點複雜的。作爲我告訴上述我試圖使用像素讓的說Glaxy S3公頃*尺寸720×1280和所需的子畫面的位置是(584608) 所以我在方式設定(CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f)*

BUT HTC Experia還具有尺寸* 320 * 480因此,所需要的位置根據(CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f)爲(2599.5,227.27)* 但這個錯誤根據顯示... 當我將它設置爲(244,172)進行實驗時完善。 ...請幫忙。

回答

3

AndEngine提供多種解決方案策略。它們用於確定RenderSurfaceView的大小,因此,屏幕上的遊戲的實際大小取決於屏幕大小。

您應該使用RatioResolutionPolicy:它將使用盡可能大的尺寸,同時保持寬度和高度之間的恆定比例。通過保持相機的大小不變,它顯示的所有內容都將按照這個恆定比例進行縮放,而這個比例在不同設備上會有所不同。例如:CAMERA_WIDTH = 720CAMERA_HEIGHT = 480。如果我們以這種方式創建相機和引擎選項:

this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
EngineOptions options = new EngineOptions(..., new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera); 

該比率爲720/480 = 1.5。 在場景中放置精靈時,請使用常量座標。比方說,我們將其放置在屏幕的中間:

Sprite sprite = new Sprite(CAMERA_WIDTH/2, CAMERA_HEIGHT/2, ...); 

所以

  • 在與屏幕尺寸爲720x480的設備,精靈將被放置在(360,240)屏幕座標。
  • 在屏幕尺寸爲480x320的設備上,精靈將被置於(240,160)屏幕座標處。
  • 在屏幕尺寸爲800x480的設備上,精靈將被放置在(400,240)屏幕座標處。

等等......

+0

鍾感謝評論,但我的問題是有點複雜的。至於我告訴我試圖用像素讓利說Glaxy S3公頃尺寸720 * 1280和所需的精靈位置(584,608) 所以我設置方式(CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f)但HTC實驗的尺寸爲320 * 480 因此,根據(CAMERA_WIDTH/1.233f,CAMERA_HEIGHT/2.112f)所需的位置是(2599.5 ,227.27)但這個錯誤根據顯示... 當我設置它(244,172)爲實驗其工作完美....請幫助.. – Imran

+0

請建議解決方案和信息m如果想要更多的信息.​​.. – Imran

+0

嗨,我懷疑我正在使用比例分辨率政策,在我的基本遊戲活動中,我重寫了首發內容視圖但在此之後,保證金只出現在一側如何CAn我解決了這個問題?這裏是我的堆棧問題的鏈接http://stackoverflow.com/questions/14427152/how-to-override-onsetcontentview-while-using-ratio-resolution-policy-in-andengin –