花開(kāi)有時(shí)

          花開(kāi)有時(shí),花落有時(shí),來(lái)有時(shí),去有時(shí)。不撕扯,只關(guān)切;不紀(jì)念,只牽掛;不感動(dòng),只明白;不尋找,只記得。
          隨筆 - 24, 文章 - 0, 評(píng)論 - 54, 引用 - 0
          數(shù)據(jù)加載中……

          AbstractGame類(lèi)分析

           

          JME提供了一個(gè)包:com.jme.app,這個(gè)包里提供了一些開(kāi)發(fā)一個(gè)JME應(yīng)用程序的基本類(lèi),其中AbstractGame類(lèi)是基本的基本,這個(gè)包中的其他類(lèi)都是直接或間接繼承這個(gè)類(lèi)。

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

          AbstractGame類(lèi)分析:

          AbstractGame定義了一個(gè)實(shí)現(xiàn)游戲的最基本方法。客戶(hù)端應(yīng)用程序不應(yīng)直接繼承AbstractGame類(lèi)。

          1、 屬性分析:

          l         finished:標(biāo)志游戲的運(yùn)行。

          l         JME_VERSION_TAGJME版本號(hào)

          l         DEFAULT_IMAGE:開(kāi)始圖片的路徑,就是游戲剛開(kāi)始時(shí)出現(xiàn)的圖片,類(lèi)型是URL。默認(rèn)的是JME的“大猴子頭圖片”的路徑。

          l         NEVER_SHOW_PROPS_DIALOG:重來(lái)不顯示屬性對(duì)話(huà)框。這樣你將不能對(duì)你的應(yīng)用程序的顯示進(jìn)行調(diào)整。

          l         FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG:只有在屬性文件沒(méi)找到或沒(méi)加載時(shí)才顯示屬性對(duì)話(huà)框。

          l         ALWAYS_SHOW_PROPS_DIALOG:在啟動(dòng)時(shí)一直顯示屬性對(duì)話(huà)框。

          l         dialogBehaviour:對(duì)話(huà)框應(yīng)該怎么顯示,默認(rèn)的是FIRSTRUN_OR_NOCONFIGFILE_SHOW_PROPS_DIALOG

          l         dialogImage:圖片應(yīng)該怎樣顯示,默認(rèn)是null

          l         properties:類(lèi)型PropertiesIO,通過(guò)加載屬性文件定義應(yīng)用程序的屬性。

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

          2、 方法分析:

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

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

          l         setDialogBehaviour(int behaviour):設(shè)置屬性對(duì)話(huà)框應(yīng)該怎樣顯示。

          l         setDialogBehaviour(int behaviour, String image):設(shè)置屬性對(duì)話(huà)框與開(kāi)始圖片的顯示。

          l         setDialogBehaviour(int behaviour, URL image):設(shè)置屬性對(duì)話(huà)框與開(kāi)始圖片的顯示。

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

          l         start():開(kāi)始游戲。游戲第一次通過(guò)調(diào)用initSystem()initGame()進(jìn)行初始化。假如在初始化的過(guò)程中沒(méi)有出現(xiàn)錯(cuò)誤,程序?qū)⑦M(jìn)入主循環(huán)。跳出主循環(huán)通過(guò)調(diào)用finish()cleanup()。子類(lèi)應(yīng)該最終聲明此方法。

          l         finish():跳出主循環(huán)。

          l         quit():離開(kāi)程序。

          l         update(float interpolation):更新游戲狀態(tài)。物理效果、人工智能、聯(lián)網(wǎng)、核算得分以及之類(lèi)等等應(yīng)該在這個(gè)方法里完成的事情。多久及什么時(shí)候調(diào)用這個(gè)方法要看主循環(huán)的實(shí)現(xiàn)。變量interpolation對(duì)于0-1不可用。

          l         render(float interpolation):向OpenGL上下文顯示游戲信息。在著色期間不對(duì)游戲的應(yīng)該怎樣運(yùn)行進(jìn)行更改。多久及什么時(shí)候調(diào)用這個(gè)方法要看主循環(huán)的實(shí)現(xiàn)。變量interpolation對(duì)于0-1不可用。

          l         initSystem():為客戶(hù)程序創(chuàng)建所以必須的系統(tǒng)元素。它在start()方法調(diào)用后只調(diào)用且只調(diào)用一次。系統(tǒng)的顯示必須在這個(gè)方法里進(jìn)行初始化。

          l         initGame():為啟動(dòng)的需要?jiǎng)?chuàng)建和初始化所有的游戲數(shù)據(jù)。建議如果在這個(gè)方法里頻繁調(diào)用資源時(shí)通過(guò)高速緩存的技術(shù)。這個(gè)方法在initSystem()調(diào)用完成后調(diào)用且只調(diào)用一次。

          l         reinit():重新就建立子系統(tǒng)。這個(gè)方法可以被客戶(hù)程序在任何時(shí)候調(diào)用。

          l         cleanup():在離開(kāi)程序前清除所有已創(chuàng)建的對(duì)象。這個(gè)方法在finish()調(diào)用完成后調(diào)用且只調(diào)用一次。

          posted on 2007-09-24 11:25 花開(kāi)有時(shí) 閱讀(823) 評(píng)論(7)  編輯  收藏 所屬分類(lèi): JMonkeyEngine

          評(píng)論

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

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

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

          不是,全稱(chēng)是JMonkeyEngine
          2007-09-24 16:52 | 花開(kāi)有時(shí)

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

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

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

          歡迎共同研究:-)
          2007-10-08 20:01 | 花開(kāi)有時(shí)

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

          能發(fā)表多一點(diǎn)關(guān)于JME的入門(mén)文章嗎?
          英文太差,看不了管網(wǎng)的信息,
          技術(shù)水平又差,不能讀源碼.
          謝謝
          2007-10-25 00:36 | eivenchan

          # re: AbstractGame類(lèi)分析  回復(fù)  更多評(píng)論   

          @eivenchan
          好久沒(méi)來(lái)博客了。
          最近要找工作,沒(méi)有什么時(shí)間寫(xiě)博客了。
          等事情結(jié)束了再說(shuō)吧。
          對(duì)于JME,原本是拿來(lái)做項(xiàng)目的,但是因?yàn)楣ぷ鬟@件事,項(xiàng)目也不做了,JME好像也失去了使用的目標(biāo),純粹是為了學(xué)習(xí)而學(xué)習(xí)了:-)。
          以后我會(huì)把JME官網(wǎng)的一些文章給翻譯過(guò)來(lái)(可能時(shí)間會(huì)有些拖延),這也是為了不把學(xué)過(guò)的東西忘掉--即使不做項(xiàng)目。

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

          不管怎么說(shuō),學(xué)習(xí)一定要把基礎(chǔ)打好。

          PS:我對(duì)JME也不怎么了解啦,只是學(xué)習(xí)了一段時(shí)間,寫(xiě)博客純粹是為了有關(guān)個(gè)地方能記錄我的學(xué)習(xí)過(guò)程,僅此而已。如有不對(duì)的地方,歡迎高手指正。
          2007-10-26 09:38 | 花開(kāi)有時(shí)

          # re: AbstractGame類(lèi)分析[未登錄](méi)  回復(fù)  更多評(píng)論   

          最近也準(zhǔn)備在用jme來(lái)做一個(gè)項(xiàng)目,發(fā)現(xiàn)這方面的資料真的不多啊~~
          2008-04-29 12:58 | spring
          主站蜘蛛池模板: 通化县| 龙胜| 濮阳市| 揭阳市| 阜平县| 腾冲县| 汉阴县| 云南省| 建湖县| 彰化市| 色达县| 内黄县| 岫岩| 汉寿县| 怀远县| 景泰县| 益阳市| 台南市| 理塘县| 山阴县| 蓬安县| 波密县| 溧水县| 自治县| 延长县| 宁河县| 大余县| 北碚区| 平江县| 澄城县| 开阳县| 册亨县| 兴仁县| 城口县| 玉林市| 阳谷县| 祁东县| 丰城市| 新闻| 淳化县| 沭阳县|