2010-08-31 62 views
3

我遇到了與我正在使用的應用程序在Android平臺上的組織問題。該應用程序使用傳感器作爲輸入,OpenGL作爲輸出。如何構建簡單的Android應用程序

  • 傳統的方法是什麼 如組織項目到 MVC在那裏我的主要活動 類加載一個OpenGL視圖和 傳感器處理類和隨後將 可能註冊一些回調或 可能做它在一個時鐘上。
  • 草率的替代方案是有一個類實現GLSurfaceView和SensorEventListener,然後將邏輯卸載到其他類中。

假設非常簡單的繪圖代碼和稍微複雜的控制系統代碼,它們將試圖以60Hz的頻率刷新。我正在尋找性能,可維護性和易於開發的含義,因此任何和所有的投入都是有價值的。當涉及到Android或移動開發時,我也是一個完全新手,所以如果您可以用第三種替代方案向我展示燈光,那也很棒。

+0

如果您是Android新手,請先閱讀以下鏈接:http://developer.android.com/guide/topics/fundamentals.html – adamp 2010-08-31 18:14:48

+0

我沒有看到任何與問題高度相關的內容。我不是在字面上問如何做事,而是爲了高層次的設計方法。 – Novikov 2010-08-31 20:15:26

回答

1

有時,計劃過度的事情可能會浪費時間。

不同的遊戲使用不同的方法,你會想看看副本島的開發博客和代碼的各種提示如何使用GLSurfaceView組織您的代碼。 http://replicaisland.net/

我使用你的後一種方法,但它不像看起來那麼草率。 在您的GLSurfaceView中,您並不需要任何邏輯代碼,只是在某些事件發生時調用您的類。 (onDraw,onTouch,onKey等)

不確定這是什麼贅述,我維持我的邏輯適當的類。例如,在我的onDrawFrame()中,我簡單地做MyAreaManager.draw(gl)

MyAreaManager類將維護它自己的邏輯並知道要繪製什麼。

至於時鐘,你很可能需要兩個線程。一個用於渲染(GLSurfaceView線程),另一個用於以特定邏輯幀速率運行的遊戲邏輯。

邏輯框架將簡單地改變畫布對象的狀態,而並條畫框將盡可能快地繪製它們。

這樣你渲染儘可能快,仍然保持穩定的邏輯幀速率。

相關問題