【正文】
r ( maxRandk+1 ) )//向右移K+1位,例:b=ai。//取0到1000的隨機(jī)數(shù),因?yàn)閙ax //例:int i = (9)。 imap_bg_x。 }/**把草地分在數(shù)組map[i][j]中**/public void rePlay( int level ) { map_bg_x = Height/16。amp。 ( eat:+eatfood, 2, 2, 0 )。 ( font )。//字體,X坐標(biāo),Y坐標(biāo),方位 /**繪制字體靠上***/ ( 0xf0FF00 )。 ( eat:+eatfood, 1, 2, 0 )。 if(=0) =0。//蛇的身體自動(dòng)減3 eatfood=3。 } gold[i].setPos()。//記錄當(dāng)前屏幕上吃食物的總數(shù) +=1。 } /**如果蛇與食物蘑菇發(fā)生碰撞 ***/ for( int i=0。 isPlay=false。 } /**繪制食物cat***/ for( int i=0。 j++ ) { (imgGameBg[ map_bg[i][j] ], j*map_bg_h, i*map_bg_w, |)。/***繪制背景***/ for( int i=0。 over=true。amp。 (sleeptimeduration)。 //獲取執(zhí)行完畢的事件 int duration=(int)(endstart)。 input()。 KEY_POUND) !=0) ()。 UP_PRESSED) != 0) (0)。 LEFT_PRESSED) != 0) (2)。 } else start()。 ()。 }/**裝載線程,預(yù)執(zhí)行**/ public void start() { /**開(kāi)始由SingActive決定聲音的進(jìn)入與否**/ if(==true) ().loadResourse(soundmax)。 ()。 temp_bg1 = null。//用于創(chuàng)建一個(gè)繪制可變圖像的Graphics對(duì)像 if(bgmap/2100) (temp_bg1, i*16, 0, |)。 for( int i=0。//cat:名字,10:10張圖,21和16就是圖像的高寬的像素 }/**裝載背景圖**/ Image temp_bg1 = (/)。 i++ ) { gold[i]= new Gif(gold, 12, 16, 15 )。 (SNAKES_NUM)。 startTime = () 0。 sleeptime=Time_N。 SnakeGameSprite(SnakesMID midlet,int Snake_N,int Time_N) { super(true)。/**建立一個(gè)Gif類(lèi)的圖像數(shù)組Gif**/ private Gif[] gold = new Gif[5]。 public int tempcontinue=0。 long startTime=0。 private final SnakesMID midlet。 private int win=32。 private int map_bg_w = 16。 public int eatfood = 0。 private int CanvasHeight = getHeight()。 private Snakes snakes。import 。該游戲的最大特色是屏幕自適應(yīng),無(wú)論各種手機(jī),PDA的屏幕大小如何,該游戲總是能獲得最佳的顯示效果。繪制一個(gè)矩形是一個(gè)類(lèi)似的過(guò)程,不同的只是需要用起點(diǎn)加上寬度和高度的方式來(lái)指定這個(gè)對(duì)象。 private final int iRows = 320。//圖標(biāo)的寬度//當(dāng)用戶(hù)想暫停時(shí),再次按一下[啟動(dòng)]按鈕開(kāi)始,游戲就暫停了,在暫停的情況下再按[開(kāi)始]按鈕,游戲繼續(xù)運(yùn)行。在這個(gè)范圍內(nèi),玩家通過(guò)操作方向鍵來(lái)控制蛇的運(yùn)動(dòng)方向。保存在震動(dòng)文件中的清單文件是一個(gè)簡(jiǎn)單的文本文件,包含屬性值。(2)MIDlet描敘文件的內(nèi)容(JAD)。 MIDP應(yīng)用程序 在MIDP上運(yùn)行的Java程序被稱(chēng)為MIDlet。 (a)128KB非易失性?xún)?nèi)存,供MIDP組件使用;(b)8KB的非易失性?xún)?nèi)存,供應(yīng)用程序生成的永久數(shù)據(jù)使用;(c)32KB的易失性?xún)?nèi)存,供Java堆使用。虛擬機(jī)安全層的目的是保護(hù)下面的設(shè)備不受任何執(zhí)行代碼可能引起的損害。 J2ME 體系結(jié)構(gòu)配置和簡(jiǎn)表:配置定義了一個(gè)設(shè)計(jì)在一系列類(lèi)似硬件上運(yùn)行的Java平臺(tái)的能力。而J2ME則是面向家電和通信工具等微小設(shè)備。(5)多線程 線程是操作系統(tǒng)的一種新概念,它又被稱(chēng)作輕量進(jìn)程,是比傳統(tǒng)進(jìn)程更小的可并發(fā)執(zhí)行的單位。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機(jī)上,操作分布是指把一個(gè)計(jì)算分散在不同主機(jī)上處理。 ?。?)平臺(tái)無(wú)關(guān)性 Java是平臺(tái)無(wú)關(guān)的語(yǔ)言是指用Java寫(xiě)的應(yīng)用程序不用修改就可在不同的軟硬件平臺(tái)上運(yùn)行。對(duì)象之間通過(guò)消息相互作用。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——Eclipse Platform、JDT、CDT支持C開(kāi)發(fā)、PDE用來(lái)支持插件開(kāi)發(fā),Eclipse Platform則是一個(gè)開(kāi)放的可擴(kuò)展IDE,提供了一個(gè)通用的開(kāi)發(fā)平臺(tái)。(2) Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。到本文寫(xiě)作時(shí)為止可以獲取有四個(gè)版本,, , 。2 開(kāi)發(fā)平臺(tái)與技術(shù)概述 操作系統(tǒng):Microsoft Windows XP 程序語(yǔ)言:Java 2 開(kāi)發(fā)包:Sun Java(TM) Wireless Toolkit for CLDC IDE:Eclipse WTK、ECLIPSE與JAM的介紹(1) WTK 的全稱(chēng)是Sun J2ME Wireless Toolkit —— Sun的無(wú)線開(kāi)發(fā)工具包。準(zhǔn)確地說(shuō),J2ME是為了支持象PDA、手機(jī)等小型的嵌入式或移動(dòng)設(shè)備而推出的一系列的技術(shù)和規(guī)范的總稱(chēng)。當(dāng)JAVA平臺(tái)發(fā)展到JAVA 2的版本以后,為了適應(yīng)不同級(jí)別計(jì)算機(jī)硬件的開(kāi)發(fā)需要,JAVA平臺(tái)形成了三個(gè)主要分支:l Java 2, Standard Edition(J2SE):是為臺(tái)式機(jī)而設(shè)計(jì)的,主要運(yùn)行在Linux, Solaris, 或Microsoft Windows等操作系統(tǒng)上。而諾基亞做的一項(xiàng)研究發(fā)現(xiàn),玩家玩手機(jī)游戲的時(shí)間平均為 28 分鐘。智能手機(jī)包括以諾基亞和三星手機(jī)為代表的Symbian S60操作系統(tǒng),以摩托羅拉為代表的Linux操作系統(tǒng),以多普達(dá)、HTC(宏達(dá))為代表的Windows Mobile操作系統(tǒng),還有最近興起的基于Google操作系統(tǒng)Android的新上市的手機(jī)。其實(shí)這并不矛盾,因?yàn)檫@些就是在相關(guān)規(guī)范中制定的。J2ME是SUN公司針對(duì)嵌入式、消費(fèi)類(lèi)電子產(chǎn)品推出的開(kāi)發(fā)平臺(tái),與J2SE和J2EE共同組成Java技術(shù)的三個(gè)重要的分支。以J2ME為開(kāi)發(fā)平臺(tái),利用Java提供的強(qiáng)大工具,不但可以在手機(jī)上實(shí)現(xiàn)靜態(tài)HTML技術(shù)所無(wú)法實(shí)現(xiàn)的計(jì)算處理、數(shù)據(jù)存儲(chǔ)、與服務(wù)器的通信等功能,而且能夠開(kāi)發(fā)各種手機(jī)游戲。目錄緒論 41 課題總體介紹 4 課題背景 4 4 52 開(kāi)發(fā)平臺(tái)與技術(shù)概述 5 ECLIPSE與JAM的介紹 5 63 J2ME及其體系結(jié)構(gòu)概述 7 J2ME簡(jiǎn)介 7 J2ME 體系結(jié)構(gòu) 7 移動(dòng)信息設(shè)備簡(jiǎn)表概述 7 MIDP的目標(biāo)硬件環(huán)境 7J2ME(Java 2 Micro Edition)是近年來(lái)隨著各種不同設(shè)備,尤其是移動(dòng)通信設(shè)備的飛速發(fā)展而誕生的一項(xiàng)新的開(kāi)發(fā)技術(shù),它定位在消費(fèi)性電子產(chǎn)品的應(yīng)用上,對(duì)設(shè)備的智能化、多樣化,提供了革命性的解決方案。s life content, provide quick information plays an important role. J2ME (Java 2 Micro happen) is in recent years, with different equipment, especially the rapid development of mobile munications equipment and the birth of a new development of technology, it positioned in the consumer electronics applications, the intelligent, diversification of equipment, provides innovative solutions. For development platform, in J2ME using Java provide powerful tools, not only can cellphones realize static HTML technology can puting processing, data storage, the servers and munications, and other functions, but also can develop all kinds of mobile games. Based on the introduction of the J2ME and its system structure based on the snake game for example, describes the aid MIDlet class library development J2ME the whole process of mobile gaming.【key words】 : Mobile games Embedded development Permanent data MIDP application program緒論Java自從20世紀(jì)90年代早期誕生以來(lái),以其強(qiáng)大的功能迅速為廣大程序員們所接受。因?yàn)槲覀冊(cè)陂_(kāi)發(fā)中用到了很多例如CLDC(Connected Limited Devices Configuration)和MIDP(Mobile Information Devices Profile)等內(nèi)容。目前大部分手機(jī)分為智能手機(jī)(SmartPhone)和非智能手機(jī)。研究發(fā)現(xiàn),在700 名受訪對(duì)象中,60%的人會(huì)在家中玩手機(jī)游戲,而且其中 60%每天不止玩一次,每天的時(shí)間在 15 到 20 分鐘。在日本以及韓國(guó),手機(jī)游戲已經(jīng)貢獻(xiàn)了大筆收;美國(guó)以及歐洲市場(chǎng)同樣很樂(lè)觀;而在南美洲以及其他國(guó)家和地區(qū),市場(chǎng)規(guī)模也在不斷擴(kuò)大。l Java 2, Micro Edition (J2ME):和J2SE不同,它既不算是一個(gè)軟件也不能算是一則規(guī)范。主要研究的對(duì)象是: ;、高級(jí)界面的開(kāi)發(fā); ; 。該工具箱包含了完整的生成工具、實(shí)用程序以及設(shè)備仿真器。目前各大手機(jī)廠商往往把WTK經(jīng)過(guò)自身的簡(jiǎn)化與改裝,推出適合自身產(chǎn)品,如SonyEricsson,Nokia