花開有時

          花開有時,花落有時,來有時,去有時。不撕扯,只關切;不紀念,只牽掛;不感動,只明白;不尋找,只記得。
          隨筆 - 24, 文章 - 0, 評論 - 54, 引用 - 0
          數據加載中……

          AbstractGame類分析

           

          JME提供了一個包:com.jme.app,這個包里提供了一些開發一個JME應用程序的基本類,其中AbstractGame類是基本的基本,這個包中的其他類都是直接或間接繼承這個類。

          AbstractGame類的作用是提供一個JME游戲開發的基本變量、常量及方法的抽象類,定義了游戲的開始與結束。如果要開發一個JME游戲,那么就要繼承或繼承AbstractGame類的子類,這些類的作用是定義JME游戲的其他屬性及動作,如背景、攝像頭、光線、渲染效果等等。com.jme.app包提供了定義好的一些子類,開發一般的3D效果是足夠了,如果要涉及到具體的細節就需要自己開發相應的子類,定義自己需要的細節。

          AbstractGame類分析:

          AbstractGame定義了一個實現游戲的最基本方法。客戶端應用程序不應直接繼承AbstractGame類。

          1、 屬性分析:

          l         finished:標志游戲的運行。

          l         JME_VERSION_TAGJME版本號

          l         DEFAULT_IMAGE:開始圖片的路徑,就是游戲剛開始時出現的圖片,類型是URL。默認的是JME的“大猴子頭圖片”的路徑。

          l         NEVER_SHOW_PROPS_DIALOG:重來不顯示屬性對話框。這樣你將不能對你的應用程序的顯示進行調整。

          l         FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG:只有在屬性文件沒找到或沒加載時才顯示屬性對話框。

          l         ALWAYS_SHOW_PROPS_DIALOG:在啟動時一直顯示屬性對話框。

          l         dialogBehaviour:對話框應該怎么顯示,默認的是FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG

          l         dialogImage:圖片應該怎樣顯示,默認是null

          l         properties:類型PropertiesIO,通過加載屬性文件定義應用程序的屬性。

          l         display:類型DisplaySystem,游戲著色效果的定義。

          2、 方法分析:

          l         getVersion():返回JME的版本號。

          l         assertDisplayCreated():確定顯示系統在使用前是否被成功創建,如果沒有成功創建則扔出JmeException異常。

          l         setDialogBehaviour(int behaviour):設置屬性對話框應該怎樣顯示。

          l         setDialogBehaviour(int behaviour, String image):設置屬性對話框與開始圖片的顯示。

          l         setDialogBehaviour(int behaviour, URL image):設置屬性對話框與開始圖片的顯示。

          l         getAttributes():此方法嘗試第一次通過屬性文件“properties.cfg”獲得屬性信息,然后屬性對話框依靠這些信息顯示屬性信息。

          l         start():開始游戲。游戲第一次通過調用initSystem()initGame()進行初始化。假如在初始化的過程中沒有出現錯誤,程序將進入主循環。跳出主循環通過調用finish()cleanup()。子類應該最終聲明此方法。

          l         finish():跳出主循環。

          l         quit():離開程序。

          l         update(float interpolation):更新游戲狀態。物理效果、人工智能、聯網、核算得分以及之類等等應該在這個方法里完成的事情。多久及什么時候調用這個方法要看主循環的實現。變量interpolation對于0-1不可用。

          l         render(float interpolation):向OpenGL上下文顯示游戲信息。在著色期間不對游戲的應該怎樣運行進行更改。多久及什么時候調用這個方法要看主循環的實現。變量interpolation對于0-1不可用。

          l         initSystem():為客戶程序創建所以必須的系統元素。它在start()方法調用后只調用且只調用一次。系統的顯示必須在這個方法里進行初始化。

          l         initGame():為啟動的需要創建和初始化所有的游戲數據。建議如果在這個方法里頻繁調用資源時通過高速緩存的技術。這個方法在initSystem()調用完成后調用且只調用一次。

          l         reinit():重新就建立子系統。這個方法可以被客戶程序在任何時候調用。

          l         cleanup():在離開程序前清除所有已創建的對象。這個方法在finish()調用完成后調用且只調用一次。

          posted on 2007-09-24 11:25 花開有時 閱讀(823) 評論(7)  編輯  收藏 所屬分類: JMonkeyEngine

          評論

          # re: AbstractGame類分析  回復  更多評論   

          JME是不是JAVA ME?
          2007-09-24 16:05 | 千里冰封

          # re: AbstractGame類分析  回復  更多評論   

          不是,全稱是JMonkeyEngine
          2007-09-24 16:52 | 花開有時

          # re: AbstractGame類分析  回復  更多評論   

          呵呵,真得好好研究一下了,這么強的東西
          2007-09-27 19:27 | 千里冰封

          # re: AbstractGame類分析  回復  更多評論   

          歡迎共同研究:-)
          2007-10-08 20:01 | 花開有時

          # re: AbstractGame類分析  回復  更多評論   

          能發表多一點關于JME的入門文章嗎?
          英文太差,看不了管網的信息,
          技術水平又差,不能讀源碼.
          謝謝
          2007-10-25 00:36 | eivenchan

          # re: AbstractGame類分析  回復  更多評論   

          @eivenchan
          好久沒來博客了。
          最近要找工作,沒有什么時間寫博客了。
          等事情結束了再說吧。
          對于JME,原本是拿來做項目的,但是因為工作這件事,項目也不做了,JME好像也失去了使用的目標,純粹是為了學習而學習了:-)。
          以后我會把JME官網的一些文章給翻譯過來(可能時間會有些拖延),這也是為了不把學過的東西忘掉--即使不做項目。

          但是我要說,JME無非就是操縱javaAPI,如果要學習JME,java一定要好,至少要很熟練,源代碼應該要看懂吧。如果你連源代碼都看不懂,即便照著一些“入門”的文章做成功了,那也只是“入門”而已,或許連“入門”都算不上。
          還有一點就是,JME是3D游戲引擎,不管做不做游戲,既然是3D東西,那么3D方面的知識也應該了解一些,比如渲染、地形、三維空間、攝像頭等等之類。我原先對3D不了解,結果看源代碼看得特費勁。

          不管怎么說,學習一定要把基礎打好。

          PS:我對JME也不怎么了解啦,只是學習了一段時間,寫博客純粹是為了有關個地方能記錄我的學習過程,僅此而已。如有不對的地方,歡迎高手指正。
          2007-10-26 09:38 | 花開有時

          # re: AbstractGame類分析[未登錄]  回復  更多評論   

          最近也準備在用jme來做一個項目,發現這方面的資料真的不多啊~~
          2008-04-29 12:58 | spring
          主站蜘蛛池模板: 阿合奇县| 墨脱县| 江陵县| 嘉祥县| 库车县| 确山县| 岑溪市| 大邑县| 南召县| 资中县| 常德市| 东山县| 金华市| 奎屯市| 黄陵县| 周宁县| 德清县| 阿图什市| 紫云| 桓台县| 宁陕县| 讷河市| 寿阳县| 巴东县| 苍溪县| 辛集市| 都昌县| 阿坝县| 娱乐| 陈巴尔虎旗| 五寨县| 阿瓦提县| 大洼县| 枞阳县| 嵊泗县| 东光县| 班玛县| 绿春县| 神农架林区| 烟台市| 辽阳县|