導航:首頁 > 創造發明 > 手機游戲發明

手機游戲發明

發布時間:2021-11-19 14:11:08

『壹』 怎樣才能發明游戲(手機軟體)

那不叫發明,那叫編寫

『貳』 基於android系統的手機游戲的開發

如果你有興趣為Android平台開發游戲,有很多你需要了解的東西。如果你有過游戲開發經驗,那麼轉移到移動平台上來將不是特別困難。你主要只需學習其架構以及API就行了。如果你是一名游戲開發新手,我總結了一張列表,上面有你必需知道的東西,供你起步用。這些知識適用於很多類型的游戲,包括動作類、策略類、模擬類和益智類。 Android是一個基於Java的環境。這對初學者來說是個好消息,因為相對於C++,Java被廣泛認為是一門更容易上手的語言,它是移動開發的規范。Google也做了一件出色的工作,它將API文檔化並提供示例代碼供使用。其中有個叫做API Demos的示例幾乎展示了所有API的功能。如果你熟悉Java並且用過Eclipse,要讓你的第一個應用跑起來那是相當簡單。如果你以前從沒寫過代碼,在你前進路上還要學習很多,但別氣餒。
獲取SDK
新手上路的第一步便是獲取Android SDK(軟體開發工具包)。SDK里有一個核心類庫,一個模擬器,一些工具和示例代碼。我強烈建議使用Eclipse和Android Eclipse插件。如果你玩Android的話,Eclipse IDE對Java開發者來說很好用。如果這是你第一次開發Java項目,你可能會需要下載全套JDK,它裡麵包括簽名和部署你的應用程序的一些工具。
學習應用程序架構
別急著一頭扎進開發的海洋里,理解Android應用程序架構是很重要的。如果你不學一下,你設計出來的游戲在線下將很難調試。你將需要理解Applications、Activities、Intents以及它們怎樣相互聯系。Google提供了很多有用的架構信息。真正重要的是要理解為什麼你的游戲需要多於一個的Activity,以及什麼才是設計一個有良好用戶體驗的游戲。要理解這些,首先要了解什麼是Activity生命周期。
學習Activity生命周期
Activity生命周期由Android操作系統來管理。你的activity創建、恢復、暫停、銷毀都受操作系統的支配。正確處理這些事件是很重要的,這樣應用程序才能表現良好,做用戶認為正確的事。在你設計你的游戲之前了解所有這些是如何工作的是件好事,因為以後你可以為自己節省調試時間和昂貴的重新設計時間。對大多數應用來說,默認的設置將工作正常,但對於游戲,你可能需要考慮將SingleInstance標志打開。當設置為默認時,Android在它認為合適時會創建activity的新實例。對於游戲來說,你可能只需要一個游戲activity的實例。這對於你要怎樣管理事務的狀態有些影響,但對於我來說,這解決了一些資源管理的問題,應予以考慮。
主循環
根據你寫的游戲的類型,你可能需要也可能不需要一個主循環。如果你的游戲不依賴於時間或者它僅僅對用戶所做的加以回應,並且不做任何視覺上的改變,永遠等待著用戶的輸入,那麼你就不需要主循環。如果你寫的是動作類游戲或者帶有動畫、定時器或任何自動操作的游戲,你應該認真考慮下使用主循環。
游戲的主循環以一個特定的順序通常盡可能多的在每秒鍾內「滴答」提醒子系統運行。你的主循環需要在它自己的線程里運行,原因是Android有一個主用戶界面線程,如果你不運行自己的線程,用戶界面線程將會被你的游戲所阻塞,這會導致Android操作系統無法正常的更新任務。執行的順序通常如下:狀態,輸入,人工智慧,物理,動畫,聲音,錄像。
更新狀態意思是管理狀態轉換,例如游戲的結束、人物的選擇或下一個級別。很多時候你需要在某個狀態上等上幾秒鍾,而狀態管理應該處理這種延遲,並且在時間過了之後設置成下一個狀態。
輸入是指用戶按下的任何鍵、對於滾動條的移動或者用戶的觸摸。在處理物理之前處理這些是很重要的,因為很多時候輸入會影響到物理層,因而首先處理輸入將會使游戲的反應更加良好。在Android里,輸入事件從主用戶界面線程而來,因此你必須寫代碼將輸入放入緩沖區,這樣你的主循環可以在需要的時刻就從緩沖區里取到它。這並非難事。首先為下一個用戶輸入定義一個域,然後將onKeyPressed或onTouchEvent函數設為接到一個用戶動作就放到那個域里,有這兩步就夠了。如果對於給定游戲的狀態,這是一個合法的輸入操作,那麼所有輸入需要在那一刻做的更新操作都已經定下來了,剩下來就讓物理去關心怎樣響應輸入吧。
人工智慧所做的類似於用戶在決定下一個要「按」哪個按鈕。學習怎樣寫人工智慧程序超出了這篇文章的范圍,但大體的意思是人工智慧會按照用戶的意圖來按按鈕。這些也有待物理去處理和響應吧。
物理可能是也可能不是真正的物理。對於動作類游戲來說,關鍵點是要考慮到上一次更新的時間、正在更新的當前時間、用戶輸入以及人工智慧,並且決定它們朝著什麼方向發展和是否會發生沖突。對於一個你可視化地抓取一些部件並滑動它們的游戲來說,物理就是這個游戲中滑動部件或者使之放入合適的位置的部分。對於一個小游戲來說,物理即使這個游戲中決定答案是錯還是對的部分。你可能將其命名為其他東西,但每個游戲都有一個作為游戲引擎的紅肉部分(譯者註:可能是主體部分的意思),在這篇文章里,我把這部分稱為物理。
動畫並非像在游戲里放入會動的gif圖片那樣簡單。你需要使得游戲能在恰當的時間畫出每一幀。這並沒有聽起來那麼困難。保留一些像isDancing、danceFrame和lastDanceFrameTime那樣的狀態域,那樣動畫更新便能決定是否可以切換到下一幀去了。動畫更新真正做的事就那麼多。真正來顯示動畫的變化是由錄像更新來處理的。
聲音更新要處理觸發聲音、停止聲音、音量變化以及音調變化。正常情況下當寫游戲的時候,聲音更新會產生一些傳往聲音緩沖區的位元組流,但是Android能夠管理自己的聲音,因而你的選擇將是使用SoundPool或者MediaPlayer。它們都需要小心處理以免出錯,但你要知道,因為一些底層實現細節,小型、低比特率的聲音文件將帶來最佳的性能和穩定性。
錄像更新要考慮游戲的狀態、角色的位置、分數、狀態等等,並將一切畫到屏幕上。如果使用主循環,你可能需要使用SurfaceView,並做一個「推」繪制。對於其他視圖,視圖本身能夠調用繪制操作,主循環不必處理。SurfaceView每秒產生的幀數最多,最適合於一些有動畫或屏幕上有運動部件的游戲。錄像更新所要做的工作是獲取游戲的狀態,並及時地為這個狀態繪制圖像。其他的自動化操作最好由不同的更新任務來處理。
代碼看起來是什麼樣的?這兒有個例子。
1: public void run() {
2: while (isRunning) {
3: while (isPaused && isRunning) {
4: sleep(100);
5: }
6: update();
7: }
8: }
9:
10: private void update() {
11: updateState();
12: updateInput();
13: updateAI();
14: updatePhysics();
15: updateAnimations();
16: updateSound();
17: updateVideo();
18: }

3D還是2D?
在開始寫游戲之前,你要決定是做3D的還是2D的。2D游戲有一個低得多的學習曲線,一般更容易獲得良好的性能。3D游戲需要更深入的數學技能,並且如果你不在意的話會有性能問題產生。如果你打算畫比方框和圓圈更復雜的圖形,還需要會使用3D Studio和Maya那樣的建模工具。Android支持OpenGL用來3D編程,並且在OpenGL方面有很多很好的教程可供學習。
建立簡單、高質量的方法
上手時,要確保你整個游戲不要就用一個龐大而冗長的方法。如果你遵循我上面描述的主循環模式,這將相當簡單。每個你寫的方法應當完成一個非常特定的任務,並且它就應該無差錯地那樣做。舉例來說,如果你需要洗一副紙牌,你應該寫一個「shuffleCards」的方法,並且該方法就應該只做這一件事。
這是一個適用於任何軟體開發的編碼實踐,但對於游戲開發來說這尤為重要。在一個有狀態的、實時的系統里,調試將變得非常困難。使你的方法盡量的小,一般的經驗法則是每個方法有且僅有一個目的(譯者註:完成且僅完成一個功能)。如果你要為一個場景用編程方式畫一個背景,你可能需要一個叫做「drawBackground」的方法。諸如此類的任務能夠很快完成,因而你可以按照搭積木的方法來開發你的游戲,而你能夠繼續添加你要的功能,並且不會使得這一切難以理解。
最重要的是效率!
性能是任何游戲的主要問題。我們的目標是使得游戲的反應越快越好,看起來越流暢越好。某些方法如Canvas.drawLine比較慢。並且要將屏幕大小的點陣圖畫到主畫布上,每一幀都是代價昂貴的。如何權衡對於達到最佳性能很有必要。確保管理好你的資源,使用技巧來以最少量的CPU資源完成你的任務。如果性能不好的話,即使是最好的游戲玩起來也沒勁。人們一般對於游戲卡或者響應慢幾乎難以容忍。
提示和技巧
看一下SDK中的示例LunarLander。它使用SurfaceView,這對於一個每秒需要處理最多幀的游戲來說是合適的。如果你要做3D,示例中有GLView可以處理3D顯示的很多初始化工作。對LightRacer來說,我不得不優化把所有東西都畫出來這種方法,否則幀率將會大大地降低。我只在視圖初始化的時候把背景畫進一個點陣圖里一次。路徑放在它們自己的點陣圖里,隨著車手的前進而更新。這兩個點陣圖在每一幀里都被畫進主畫布中去,車手畫在頂端,到最後會有一個爆炸。這種技術使得游戲運行在一個可以玩的程度。
如果適用的話,使得你的點陣圖的大小精確等於你打算畫到屏幕上的大小,這也是個好的實踐。這么做了以後就需要縮放,可以節省CPU資源。
在游戲中始終一致的點陣圖配置(如RGBA8888)。這將會通過減少不同格式之間轉換的時間來節省圖形庫的CPU時間。
如果你決定開發3D游戲但沒有3D方面的知識,你需要挑選一兩本3D游戲編程方面的書並學習線性代數。你最少要理解點積、叉積、向量、單元向量、法線、矩陣和變換。這方面我遇到的最好的書是叫《3D游戲編程和計算機圖形學數學》。
聲音文件要小而且低比特率。需要載入的越少,載入速度越快,游戲所需內存越少。
聲音使用OGG文件,圖片使用PNG文件。
確保釋放所有媒體播放器,當Activity銷毀時空出所有的資源。這能保證垃圾收集器清除了所有東西,也能保證在兩次游戲開始之間沒有內存泄露。
加入Android谷歌小組,尋求社區支持。這里有人可以在開發過程中給你幫助。
最重要的是,花時間測試再測試,確保每一小部分都如你所願地工作。改善游戲是整個開發中最耗時最困難的部分。如果你匆匆將其推向市場,你很可能會使用戶們失望,你會感到你的努力都白費了。你不可能使所有人都喜歡你寫的東西,但你至少要盡量發布你最高質量的作品。
Google在這里有幫助你上手的絕佳的文檔。
電驢上也有很多不錯的書籍和視頻教程~希望對你有幫助

『叄』 是誰發明了手機游戲

是以馬氪思主義為準的人創造的。

『肆』 手機游戲,和手機是誰發明的

科學家,三星公司,LG,。。。。。。

『伍』 手機上的游戲是怎麼製作出來的

手機游戲製作就是從游戲創意到成為商業產品的全過程。除了前期的市場專調研外,整屬個游戲製作流程大致分為策劃,美術資源製作,程序開發等幾個階段:


一、游戲策劃就像編劇和導演一樣,要規定游戲的世界構成,規定種族、氣候,安排什麼地方需要出現怪獸讓玩家覺得刺激好玩,需要設計各種各樣的武器和裝備吸引玩家等等。專業點講就是要設計游戲的背景故事,世界觀,大陸布局,規則玩法,劇情對白,游戲任務,各種數值等等;


『陸』 手機游戲一般用什麼開發的

手機游戲開發的平台是JME,重點是MIDlet,CANVAS,RecordStore。如果是獨立開發手游,那麼還要掌握一些基本的軟體,如PhotoShop,Mappy,和簡單的聲效處理。

『柒』 手機游戲開發有前途沒

2003年三月份,我剛開始接觸了手機游戲的開發。開發手機上的游戲程序,最初僅僅只是出於興趣愛好,利用業余時間自己陸陸續續的也寫了一些Code,得到了一些經驗,本來是想敝帚自珍的,但是朋友的鼓勵,使我決定把自己的一點點心得體會寫出來,藉以告慰我在學習中所陣亡的千千萬萬腦細胞,也為和我一樣在黑暗的艱難摸索人們中提供一些微不足道的幫助吧 J。由於我本人對於手機應用程序的開發也是初學,如果在文章中出現什麼問題,還望各位讀者海涵。

很多人都在網上問我,開發手機應用程序是不是一定要買一個真正的手機平台,我的看法是剛開始學習的時候不一定要買手機,先在網上多看多問,把平台的開發環境配置好,在模擬器上先單兵操練,不過我建議如果你真的需要把你的作品產品化的時候,最好配備一個真實的手機平台用來測試,因為在模擬器的運行環境中用很多的運行效果和真實的設備環境還是有很大的出入,在模擬器平台上運行得很好的程序未必在真實的設備上就OK,更何況你也一定跟我一樣很期盼能夠隨時隨地地拿出手機Show一把自己的程序J。

如何選擇開發的工具也是許多人在准備學習前奔走相問的,不過這個也實在不好回答,在當前主流的手機開發平台上基本上是戰國時代,諸侯們紛紛你方歌罷我登場,各有各的好處,各有各的弊端,僅我所知道的,當前智能手機的操作系統主要為微軟的SmartPhone(這是基於WinCE平台的),Symbian(這是為諾基亞,索愛,西門子等各大手機廠商所支持的)還有Brew(這是高通公司的)等,下面我就單從程序人員的角度聊一聊如何選擇這幾種開發平台。

如果你是一個優秀的Windows程序設計人員,而且對於MS情有獨鍾,OK,你可以試一試基於WinCE平台的SmartPhone的開發,快到微軟的網站上下載他free的eMbedded Visual C 4.0和SmartPhone的模擬器,安裝好以後,你就可以在熟悉的Visual C 的環境下工作了,甚至喜歡C#的同志們可以選用Visual Studio .Net 2003 並且在這個環境下開始你的工作,一切都是那麼的熟悉。至於缺點么,恩,就是啟動和運行模擬器太慢了,調試一個程序你還是需要付出一些耐心的,呵呵。(下圖就是EVC的運行環境)

(怎麼樣,開發的環境是不是很類似我們熟悉的VC 呀 J)

如果你和我一樣手機都是Nokia 60系列的,那就可以考慮學習Symbian了,Symbian是一家由各主要無線通信技術公司持股的軟體公司,它提供一個智能化的手機平台SymbianOS,主要有諾基亞,西門子,索愛等,他是微軟在智能手機平台的最大競爭者。Symn同時支持C 開發和Java開發。不過學習Symbian上面C 的開發也是需要一個艱難痛苦的歷程,你可以先在Nokia的開發人員站點上下載Nokia 相關與Symn的開發工具nS60_sdk系列,安裝後可以集成到VC6的環境中,在安裝的時候也是有幾項需要特別注意的(安裝的問題,在論壇上詢問的也特別多),首先,你要保證你的操作系統是Windows2000 SP2 或者以上的配置;第二,你需要在你的VC6上安裝SP3以上的補丁,(呵呵,我裝的是SP5大概有幾百兆吧J)第三,安裝nS60_sdk的時候要考慮裝在C盤上,這個么在網上說法不一,不過如果你和我一樣剛剛安裝的時候有過失敗的紀錄,那麼病急亂投醫,也會把它安裝在C盤的;第四,也是最重要的一定要保證你的 nS60_sdk的統一盤符上也安裝了Perl和JDK1.3,因為nS60_sdk1.2並沒有帶著兩個東東,所以我安裝的是nS60_sdk1.0最後,一定要注意特別保證你生成應用程序的路徑盤符要和nS60_sdk1.0一樣,(在我這里當然也就是C盤了)也要保證系統的環境變數Path中存在這幾個工具的路徑。當這些都配置好了,你就可以拷貝AvkonAppWiz.awx 和 AvkonAppWiz.hlp 文件到 Visual C template (c:\Program Files\Microsoft Visual Studio\Common\MsDev98\Template)目錄下,然後啟動你的VC6,按照向導選擇Nokia 60 SDK,然後一步一步地走下去,點擊確定就可以生成你的應用程序框架了,夷,不好,怎麼看到了

"c:\Symbian\6.1\Series60\epoc32\build\test\group\test\wins\test.dsw
The specified project could not be inserted into the current workspace."這個錯誤,千萬別緊張,很多人都碰到過,回頭再看看有什麼地方設置的不對,特別要注意環境路徑的配置呀。好了接下去就可以正式進入學習開發了,Nokia 60 SDK自帶的幫助和實例也許會對你有很好的幫助的。據說國外有高手可以把這個SDK安裝配置在VS.NET上開發,呵呵,真是厲害,至少我還沒有成功過。以上為Nokia60系列的開發步驟,如果你需要開發索愛的P800(這也是我夢寐以求的一款好機子J ),可以下載他的工具UIQ來開發。

(下圖為Symbian的具體開發環境)

Brew是我一個好朋友的開發利器,它是高通公司推出的無線二進制運行開發操作環境,也必須要在高通的特定的硬體平台上運行。在朋友的幫助下,我在高通的網站下載了他的BREW_SDK_20zn ,他的開發環境也是基於VC6的(呵呵,微軟一定很後悔為什麼把開發工具做的那麼通用,搞得對手們紛紛拿來就用),在進入向導生成代碼框架時你會發現Brew突然需要你填入一個ClassID,這是為了保證在機器中的注冊信息唯一,如果你做的是測試程序的話,你可以利用Brew SDK自帶的工具MIF編輯器來生成相應的ClassID,並運行在模擬器上。但是如果你需要運行在實際的平台設備上,你就必須要注冊到高通的網站上,成為他的開發者,當然還要每年都向他繳納一定的會費(是$),然後才可以從他的站點上得到實際的ClassID,並且在硬體環境上測試,否則你就只能通過MIF編輯器生成本地ClassID在模擬器上跑著玩了,真是生財有道呀:-)。Brew的開發模式基本上與Symn很類似,都是在VC的開發環境中編譯代碼,生成一個完整動態庫,然後通過運行模擬器的可執行程序載入動態庫,就可以調試你做好應用程序邏輯了,如果調試通過,就可以通過相關的工具再編譯成底層硬體設備可執行的二進制代碼,譬如ARM等,通過打包下載就可以運行在你的手機上。OK,至於他們兩個的不同之處么,唔... Brew是純粹的C語言開發的,它通過一套獨特的機制模擬了類似於COM的體系框架;而Symbian呢,則是完全的c ,他自身在內部實現了一整套的類庫體系(非常類似於MFC)來開發實際在Symn上跑的應用程序。他們的類庫為了各自適應自己的平台所提供的功能,還是有相當的不同。

(以下Brew的測試開發環境)

其實,Symn和Brew作為嵌入式系統開發的體系結構,都是依託於C 思想建立的,在他們的應用程序框架中能看到許多C 思想的影響烙印。譬如,我在學習Brew的時候腦海中一直都有一個COM的原型(他的很多組件的載入和運行都是非常像的),而在學習Symbian的對象內存管理機制的時候,也看出了它在對於利用C 的內部機制力圖實現一個類似於Java一樣能對內存自動管理、分配、清除的模型,用來保證它的內存管理絕對安全。

如果你和我一樣都是從菜鳥學起的話,建議你可以嘗試一下Java開發。手機上的Java平台是Java 2平台的移動版(Java 2 Platform, Mobile Edition,J2ME™)。它專門為諸如蜂窩電話、傳呼機和個人記事本等小型移動設備設計。J2ME實現由以下部分組成:
一個核心的Java語言實現,包括一個專門為小型設備定製的虛擬機(virtual machine,VM)以及一套支持在該設備上進行系統級編程的最精簡的工具包和類。這被稱為一個配置。
另有一套能為應用開發夥伴提供實用應用程序介面(API)的高級工具包(例如:用戶界面組件、高級聲音播放功能等)。這被稱為一個描述。
我們通常支持Java的手機實現採用有限連接設備配置(the Connected Limited Device Configuration ,CLDC)和移動信息設備描述(Mobile Information Device Profile MIDP)

我們平時也稱呼我們手機上開發的Java程序叫做Midlet(因為是採用MIDP開發出來的么J,他也是我們系統運行的一個最主要的類)或者更親切的稱呼他Kjava.

至於他的好處么,en, 當然是SUN說的"一次編譯,到處運行"優勢了。也就是說你不用再針對特定的設備編程,而只需要在PC的模擬器中測試編譯一次,就可以運行在任何支持MIDP的手機平台上了。但優勢也是劣勢,如果想要運行在通用的平台上,就要有一些安全方面的考慮。Java放棄了很多東西,其中自然就包括了很多涉及硬體底層的功能。譬如電話、電話簿操作、簡訊功能以及一些其他的功能。所以很多人也在笑話"Kjava像個玩具,只能做游戲"。為了彌補這個缺憾,各個廠商先後推出了自己OEM的API包來支持很多底層功能,當然其中調用了許多Java Native方法,這在一定程度上破壞了Java隨處運行的特性了,可謂"熊掌魚翅不可兼得也"。Sun自己也在做出努力,推出MIDP2.0,補充了一些API,這也正是我們所期盼的。當然,J2ME最為突出的優點就是他的簡單,只要稍微有些Java語言基礎的人都可以很快地掌握它。只需配置好環境,就可以生成應用。這也大大的降低了手機開發的門檻。試問,還有什麼比看到自己的程序運行在手機上更能帶給我們激情的呢?呵呵。

我的手機開發也正是從J2ME開始的,下面就讓我具體的介紹一下J2ME開發手機游戲的步驟吧。

首先,就是配置J2ME的開發環境,先從Sun的網站中可以下載到j2sdk(簡稱JDK),1.3或1.4的版本都可以,還有j2me_wireless_toolkit1.4(簡稱WTK)。先按要求裝好JDK,然後再按照規定一步一步的安裝WTK,在安裝的過程中他會自動配置JDK的路徑和開發的環境。現在在Sun的網站上同時提供了WTK1.4和WTK2.0這兩個版本,WTK2.0多提供了幾個很有用的開發包(主要是加密,游戲和媒體控制),但是可惜的是現在支持WTK2.0的手機還是很少,所以我安裝的還是WTK1.4。L

(WTK,J2ME的標准開發編譯環境)

在安裝好這些開發環境這後,你就可以進入菜單直接啟動KtoolBar了,這是一個對所產生的Midlet編譯、運行、打包的集成環境,可以利用它來進行新建項目、打開項目、選擇目標模擬器編譯、運行並打包等操作。這是一個可視化的環境。進入安裝後的目錄,你就可以看到以下幾個主要的文件夾:

appdb:這個文件夾主要是用來存放系統所需要的圖片和一些資料庫文件的。

apps: 這是系統的工程目錄,也是最重要的,裡面存放的都是具體的應用程序。其中包括了系統自帶的和你創建的應用程序的原文件(*.java)、編譯後的文件(*.class)、打好的壓縮包、相關的配置文件(*.jar,*.jad)以及各種資源等。

bin: 這是系統工作目錄,裡面是系統的各種工具,是WTK系統運行的核心。

docs: 裡面放置了詳細的說明文件,用戶手冊以及API,是學習和開發人員的必讀之物。

lib: 放置CLDC/MIDP開發包的地方。

wtklib: 存放了一些WTK需要用到的資源,其中最重要的是devices目錄,主要用來存放模擬器配置。在這里,你可以配置你的目標設備的模擬器。

下面讓我們打開apps目錄,進入一個工程目錄內,來看看幾個有用處的文件夾:

bin : 程序打包後,壓縮包(*.jar)和配置簡表(*.jad) 的存放路徑。

Classes : 編譯後,類文件(*.class)的存放路徑。

Res : 程序的資源文件,主要是圖片(*.png)。

Src : 程序源代碼所存放的地方(*.java)

了解了這些,我們就可以創建我們自己的應用程序了,首先,在KtoolBar中,創建一個新的項目,我們需要填寫項目的名稱和Midlet名程(真是一個奇怪的東西,Sun在制定Java規范的時候總是喜歡將程序片起名為let,譬如Applet、Servelet,還有Spoilet等,其實看到這些,有編寫java經驗的老手都會明白Midlet的結構了,基本上和Applet沒有多大的區別J)在接下去的Setting頁面中選擇默認設置就可以了,然後你會發現在apps的目錄下多了一個應用程序的目錄,現在就可以在其src目錄下創建你的應用程序 java源文件了。

(填寫創建一個工程必要的工程名稱和主類Midlet的名稱)

MIDP的程序結構和Applet非常相似,他的主文件名稱叫做Midlet,是從javax.microedition.midlet 包下派生出來的,是MIDP的主要擴展包之一,其中定義了整個體系的結構。javax.microedition.lci是一個封裝了各種界面控制項的包,提供了MIDP在用戶介面方面的各種支持。javax.microedition.rms主要提供了資料庫的介面而javax.microedition.io則是提供網路支持的重要途徑。這是MIDP所區別於Java的三個主要的擴充包。還有java.io(提供輸入輸出流的支持),java.lang(提供語言環境的支持),java.util(提供一些重要的工具支持)這些都是從Java中繼承下來的核心開發包。具體的程序編寫過程還請參考WTK自帶的幫助和API應用手冊。

在scr目錄下的應用程序編輯好以後,在WTK選擇編譯,就可以編譯你的應用程序了,編譯的步驟和結果會顯示在下面的信息框中,如果編譯順利通過的話,就可以點擊運行按鈕來啟動模擬器進而運行你的應用程序了。OK,一切都是那麼的簡單。

模擬器是通過devices列表框來選擇的。wtklib\devices目錄下有幾種系統自帶的模擬器,我們可以通過選擇模擬器來配置我們程序實際需要的運行環境。

在一切都順利完成之後,就可以將應用程序打包了,打包的時候可以先配置簡檔文件,在應用程序中點擊Setting就可以配置了,具體的配置方法請參考用戶指南,生成的JAD文件實際上是一份文本的注冊文件,在應用程序被網路無線用戶下載的時候起到了一個說明文件的作用,在一切配置好以後,點擊project\packag\Create Package的菜單項就可以編譯打包了。生成的壓縮包(*.jar)和配置文件(*.jad)被放置在apps\應用程序名稱\bin目錄下。把壓縮包上傳到實際的設備中就可以實機操作了。

綜上所述,WTK僅僅提供了一個可視化的工程管理、編譯、運行和打包的工具,卻沒有提供編輯源代碼的環境,這樣你就有很大的自由度去選擇源碼編輯器了。我使用的編輯工具是UEdit,它提供給我一個非常簡單的編輯和管理源代碼的工作環境,並擁有強大的編輯功能,給我的學習開發帶來了很多方便。當然你也可以選用IBM的Eclipse(這也是一個非常好的編輯源代碼的免費工具,而且是開源的,我個人也非常的喜歡),或者Sun的SunOne for Mobile 以及Broland的Jbuilder 一切都可以根據自己的愛好去選擇。J

(我的開發編譯環境 J 比較簡陋,大家不要笑呦)

有些人問起了關於"混淆"的問題。由於JAVA程序是半解釋的,他的目標文件是位元組碼,也就是*.class的形式,導致了他很容易被反編譯(我見過很多反編譯的工具,做的都相當的漂亮)。混淆就是打亂程序中所有的變數名稱和函數名稱,讓其他人進行反編譯後無法看懂你的源文件,這是一個不可逆的過程,由於修改了變數函數的名稱(簡單的說就是把你一個很長的名字縮小到一個字母而已,反正機器又不用去記J),在編譯的時候混淆也能夠起到一些壓縮的作用。哦,混淆是需要特定工具包來實現的。retroguard可以用在WTK1.4上面,用法非常簡單,只需要把解壓後的retroguard.jar文件放到WTK\bin目錄下就可以了,在打包的時候僅需要選擇下面一項打成混淆包就可以了。但是還有一些小問題,這個混淆包似乎不能混淆一些擴充的包(比如Nokia的擴充API包,這個在下文中會講到的),這時你就可以考慮使用另一個工具proguard(這個工具WTK1.4並不提供支持)了,這個工具的使用還是比較麻煩的,我在一篇文章中看到,它必須要有一個配置文件,還需要制定特定的目錄,然後才能在命令行中啟動,呵呵,其實還有一種簡單的方法,那就是可以把他集成到WTK2.0中去,WTK2.0提供了對他的支持,安裝的方法和retroguard一模一樣。他就可以完成對一些特殊的擴充包進行混淆了。

最後,我在聊一下如何加入第三方提供的包和模擬器,就以Nokia為例,Nokia的官方技術網站中提供了很多的針對與不同設備手機的開發包(主要包括Nokia 60設備,Nokia 40設備,Nokia 7210,Nokia 3300等)。要下載這些包,你必須先成為諾基亞網站的正式用戶,然後可以得到用戶名和密碼.在安裝這些開發包之前,必須先安裝一個叫做nds_jme的工具包,它主要是提供了不同的Nokia設備SDK之間的管理和一些特殊的工具,例如音頻代碼工具和模擬器的管理工具。採用第三方工具的好處就在於它提供了一些依賴於特定硬體的擴充包,可以讓我們開發很多底層所提供的功能。

(Nokia開發包安裝的過程)

現在我就以Nokia 60為例來具體的介紹一下第三方的擴充開發包。Series 60 MIDP SDK for Symbian OS是Nokia 提供給他的基於60平台(以Symbian為基礎平台,主要的設備是Nokia3560 和Nokia7560)的Java開發工具包,現在主要的版本是1.2版。它所提供的API主要分為以下幾個部分:1)MIDP 1.0 API 這是由Sun所定義的標準的J2ME的開發包;2)Mobile Media API 這一部分提供了移動媒體的API介面開發,他主要提供了一個多媒體管理播放的介面協議使得MIDlet能更有效地使用各種媒體類型。這些MIDlets能夠播放幾種類型的音頻和視頻文件,還可以使用照相機來抓取圖像;3)Bluetooth API 提供了一個無線傳輸協議-Bluetooth的編程介面,利用它可以對邏輯鏈路層L2CAP和服務搜索,通過它與遠程設備交換數據;4)Wireless Messaging API 提供了一個接收和發送無線簡訊息的編程介面;5)Nokia UI API 這是Nokia各種設備包括40,3300等設備所通用的,它主要提供了兩個Java開發包,com.nokia.mid.sound和com.nokia.mid.ui主要提供了對聲音和用戶界面介面(其中包括了背景燈光,全屏等介面)的編程。其中1)為標準的J2ME的API 2)3)4)為60系統提供的開發資源包 5)是Nokia設備通用的開發包,提供了一套在Nokia通用的開發介面。利用這些當然可以開發出功能強大,用途廣泛的應用程序,但是這也恰恰是以犧牲程序的通用性為代價的。所以我建議在J2ME游戲的開發中,最關鍵的是控制好它的版本,要充分的考慮通用性和特殊的平台,我先用標準的API設計游戲的內部邏輯和基本的界面,在版本保存後,再進行下一步的特殊平台API的擴充,針對於不同的平台生成不同的系統版本,這樣就可以逐漸設計開發出適應於不同手機平台的J2ME游戲來。

(這是60模擬器運行的樣子)

在安裝nds_jme的工具包後,就可以安裝nS60_jme_sdk的60系統的開發包了,安裝的路徑可以選擇在WTK\wtklib\devices下,這樣就可以和你的WTK系統整合起來了。啟動WTK的KtoolBar後,你可以從devices下拉框中看到60系統的設備,這時就可以啟動60設備來調試你的應用程序了。有一點比較關鍵,就是你每次必須要先把MIDP應用程序打成壓縮包後再點擊運行來啟動模擬器進行應用程序的調試。

好了,到此為止,您應該已經基本了解到手機開發平台的選擇方法和J2ME的基本配置過程。我們下一部分將介紹如何逐步由策劃、設計到開發你的第一個手機游戲的全過程了。

『捌』 第一個手機游戲誰發明的

阿列克謝•帕基特諾夫的俄羅斯方塊算是第一個手機游戲

『玖』 是誰發明了手機游戲,這個發明手機游戲的人是不是應該被槍斃多少祖國的花朵都毀在了手機游戲里

不知道,但是如果按抄照你的襲思路追根溯源的話那你應該問是誰發明了第一個游戲?這個我比較好回答:1962年美國麻省理工學院的學生編寫的。
如果把游戲作為毀掉一個學生的理由未免太生硬了些,因為一個不想學習的人如果不玩手機游戲,也會尋求其他的辦法來玩。一個熱衷於學習的人,即使玩手機游戲成績也不會下降。而且現在游戲作為第九藝術已經成為了很多人生活的一部分

『拾』 手機游戲開發都用到什麼技術

很多是用java語言。
現在手機游戲主要是基於Android與ios系統 這兩方面也需要學習

閱讀全文

與手機游戲發明相關的資料

熱點內容
學校矛盾糾紛排查表 瀏覽:294
內地音樂版權 瀏覽:208
公共衛生服務今後工作計劃 瀏覽:457
公共衛生服務考核小組 瀏覽:872
疫情里的科研成果 瀏覽:519
工商局愛國衛生月及健康教育宣傳月活動總結 瀏覽:942
三興商標織造有限公司 瀏覽:657
加強和改進公共服務實施方案 瀏覽:991
迷你世界創造熔岩號角 瀏覽:479
愛奇藝激活碼有效期 瀏覽:507
醫療糾紛官司南方周末 瀏覽:855
公共服務類大樓的物業管理方案 瀏覽:284
電影版權買賣合同範本 瀏覽:167
口罩在商標注冊屬於哪個類目 瀏覽:256
基本公共衛生服務質控小結 瀏覽:668
數字版權的權源 瀏覽:565
駐馬店置地弘潤山轉讓 瀏覽:146
穂康投訴 瀏覽:146
嘉興萬聯知識產權代理有限公司 瀏覽:344
公共文化服務體系的建立和完善 瀏覽:278