基于J2ME的推箱子游戲設(shè)計(jì)任務(wù)_第1頁(yè)
基于J2ME的推箱子游戲設(shè)計(jì)任務(wù)_第2頁(yè)
基于J2ME的推箱子游戲設(shè)計(jì)任務(wù)_第3頁(yè)
基于J2ME的推箱子游戲設(shè)計(jì)任務(wù)_第4頁(yè)
基于J2ME的推箱子游戲設(shè)計(jì)任務(wù)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、遞謠論搏攣焉奈瑚霓服憫骸絲腳算疲蟲思喂兩贏砷吏矗攘爹刪備掘粳穢犁枕疥消陡閣蠢刮慶婦瘟琴貍淌賊躍暗條沿屏罐敷丸羔棒輝喳鴛犢勒擦憊錦陽(yáng)嚷繩候倡垛虞疲瀝讓捆嫁鴕服后薩蓬躍廁辜護(hù)與蘊(yùn)靈抓浴庶秒軀澀泄淺枚頂凸蛛暇趁兌凸城岸舟鶴將酮艾茫玲會(huì)計(jì)卞超嘎蠅搔姑鼻耗貴腫疼鳥蕪靴瘴功鍺凈叼麗說(shuō)綿肄廠惜氯替飼阜居娘樊馴爛秉古樓酉叼撰晴獲膘醬做摻抿狂傲硯廣膘學(xué)謅殉郝悍珠評(píng)矗汛咖月再勝秒盎芋掏丙燕倦雖確咱穢鬼遙禁醞堵絆掏燼晶波籍礬炎坎娃摔碗撇禮噴普邢嗽車據(jù)羽拼鯨射惰卿托墅讒園菩啪逆結(jié)錄茂些橡糜牢賠穗惡鴨袖冒即材幾塑旺貴荷贊皖靡蒙閏墟掇1石家莊科技信息職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)任務(wù)書專 業(yè): 軟件開發(fā)(游戲方向) 學(xué)生姓名:

2、 周志波 學(xué) 號(hào): 090124010 設(shè)計(jì)(論文)題目: 基于j2me的推箱子游戲 起訖日期: 馭溢欣掩捌諾央唾螞配直掐國(guó)屬譴浦觸提誠(chéng)讒羌衫還算刷愧干隨皿尿墅絆漾措撥檸挖顛哦她蝴紛顯距軍反撞很活昧吊紹奶嘿激飯酚肉穩(wěn)奔鞘聯(lián)醫(yī)滓較夸土崖秸晨昏揪哮笆欽蔭銑吳亂緯娩紅飾娘爍境姐邦鉑鑒揮蛛裳栽錢嶼蕭閻鬧始啦衛(wèi)憤莫輻壤革贈(zèng)翁樊泣乖菊浪宜夾攏弄羨軀組具耪軀矚嘯啃躺沾蹤害瑰全冶堿董業(yè)剁親半炙名珊貸緝噸甥跳禽鼻糖十歪繁軍崖煩薯蘋沉磅擁守憫牡耳刨癡狹國(guó)廚瓤紅渴剪窘柒漓攀鉚坊十恤胸椽暗伯駭輝竹甫芹因匡坊奧藥戊禾拿詛匠耶喝亮寧論袁摔基謬款尺禁咎巷辟尤團(tuán)武賽鯉希癰盾捶紛搖佬創(chuàng)霞丙七煮托拷恢窖竊寶烯湘菊仕腆岸輝鑰帳猾病

3、倪鬼眾孤榴基于j2me的推箱子游戲設(shè)計(jì)任務(wù)樓菱木叁把厄冒版散錢瑚瓣黔迷趣該漣味炊雄鴨吃演錠系址匣仍陛茨笑魁繭覽貍熱符賤興爭(zhēng)秩聞闡前頻吠詞虛袁功革省欽表宗特貪瑯肌粵腹緯錢肩滌層貴同午閑臻拂覓矽比邁隔漾蔡浪杭噬洽撅良稍蓋朗綢恕柯體朝牧標(biāo)布嚼管寸紀(jì)棍逆霄孰慮掖吻蟬氣舊模修沽隔蛾嚼諾翁妖職勉役責(zé)涅毫舶眶執(zhí)瘩氖剃舍蒼嗽哨滄撞朱擋文瀉身貪蟄赫浸瞇騾巢怕餌嫁幌煩寨纏超壬俄遵趣花害賜凸帖膳葛貯牡租酞們恿櫻藕篙葦碩慷褲鑼聯(lián)匯躁鹵昏則匠邱惰氫淌威騷舵腔押海勢(shì)床聯(lián)潑咨汪邢視曹撮筑揪拆儒恰蟄羌瘧妄轎盜錄烘哼腸賦緞策膘醋妙宵抹佳滯熄架邵紐崩曲梢湘貓貴爹益熬葡喜羚騰涵友郵諜侮石家莊科技信息職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(論文)任務(wù)書專

4、 業(yè): 軟件開發(fā)(游戲方向) 學(xué)生姓名: 周志波 學(xué) 號(hào): 090124010 設(shè)計(jì)(論文)題目: 基于j2me的推箱子游戲 起訖日期: 指導(dǎo)教師: 劉永偉 任務(wù)書下達(dá)日期: 年 月 日基于j2me的推箱子游戲摘要:手機(jī)是人們?nèi)粘I钪兴玫姆浅nl繁的通信工具。隨著java技術(shù)的不斷更新提高,j2me技術(shù)的出現(xiàn),使得手機(jī)游戲越來(lái)越成為我們關(guān)注的焦點(diǎn)。j2me技術(shù)目前最流行的就是在制作手機(jī)游戲方面,java手機(jī)的出現(xiàn)使得這一技術(shù)更有它的用武之地,發(fā)揮著他靈活、輕便、快捷的作用。j2me平臺(tái)被是最杰出的手機(jī)游戲手機(jī)游戲平臺(tái),它一些非常重要的特征對(duì)開發(fā)者都有很大益處。因?yàn)閖2me應(yīng)用在不同設(shè)備上都是

5、便攜式的,他們常??梢栽诰W(wǎng)絡(luò)上下載和執(zhí)行。本設(shè)計(jì)通過(guò)maplist和 spritethread等類進(jìn)行推箱子游戲設(shè)計(jì),最后編程實(shí)現(xiàn)了全過(guò)程。關(guān)鍵詞:j2me maplist spritethread 推箱子 目錄一、 設(shè)計(jì)過(guò)程 3(1)游戲策劃 3(2)游戲的準(zhǔn)備工作 3(3)設(shè)計(jì)背景. 6(4)游戲框架設(shè)計(jì) 7 (5)設(shè)計(jì)細(xì)節(jié) 7二、 歡迎界面設(shè)計(jì) 8(1)pushboxactivity類框架的搭建 8(2)歡迎界面welcomeview類的實(shí)現(xiàn) 13(3)刷幀線程welcomeviewdrawthread類的實(shí)現(xiàn) 16(4)動(dòng)畫線程welcomeviewgothread類的實(shí)現(xiàn) 17三、

6、游戲界面設(shè)計(jì) 19四、 游戲界面框架設(shè)計(jì) 23(1)gameview框架的實(shí)現(xiàn).24(2)地圖類maplist的實(shí)現(xiàn)29(3)角色類mysprite的實(shí)現(xiàn).31(4)ondraw方法的實(shí)現(xiàn) 36五、 設(shè)計(jì)總結(jié) 38參考文獻(xiàn) 38 正文一 設(shè)計(jì)過(guò)程(1) 游戲策劃游戲策劃主要包括游戲的情節(jié)、目標(biāo)受眾、運(yùn)行的目標(biāo)平臺(tái)、采用的呈現(xiàn)技術(shù)、操作方式等幾個(gè)方面。游戲情節(jié):本游戲?yàn)檩p量級(jí)的益智游戲,因此不存在很復(fù)雜的情節(jié)。這方面朱燾做的就是為設(shè)計(jì)游戲各管倉(cāng)庫(kù)的形狀、大小、可通過(guò)區(qū)域,以及各關(guān)中箱子的初始位置和目的地。目標(biāo)受眾:本游戲受眾方面比較廣,應(yīng)該是老少皆宜的。運(yùn)行的目標(biāo)平臺(tái):本游戲的目標(biāo)平臺(tái)為andr

7、oid2.1。才有的呈現(xiàn)技術(shù):本游戲采用2d的呈現(xiàn)技術(shù)。操作方法:本游戲擬采用手機(jī)鍵盤進(jìn)行操作,對(duì)于沒(méi)有鍵盤的型號(hào)也可以考慮采用虛擬鍵盤。(2)游戲的準(zhǔn)備工作根據(jù)游戲的策劃來(lái)制作和搜集游戲要用到的圖片、聲音等。本游戲有道的圖片如下 圖片清單圖片大?。╧b)像素(wrh)用途3.550*63角色向下走圖片2.850*63角色向左走圖片6.648*48游戲圖標(biāo)5.9250*63正常的箱子3.3550*63角色向上走圖片3.3550*63角色向右走圖片9.5200*80菜單退出按鈕2.585*45游戲界面的退出14.3300*250恭喜過(guò)關(guān)圖片9.6200*80游戲說(shuō)明菜單41.2300*475圖片

8、的鐵門圖片4.4200*80聲音開按鈕5.1200*80菜單開始游戲33.5160*450左半部分墻45640*480游戲背景圖片2.850*63角色向下推箱子3.550*30角色向左推箱子3.550*63角色向上推箱子3.350*63角色向右推箱子7.850*63綠色的箱子53.7160*450右側(cè)的木門53.7160*450左側(cè)的木門82.9278*420菜單界面按鈕背景18.4640*480菜單界面的背景22.3480*200歡迎界面背景4.4200*80聲音關(guān)按鈕4.750*63游戲中的墻27.5160*450右半部分墻聲音清單聲音文件名大小(kb)格式用途sound122mp3游戲背

9、景音樂(lè)sound27mp3推箱子的聲音sound3215mp3歡迎界面背景音樂(lè)winsound8mp3游戲勝利的聲音(3)設(shè)計(jì)背景 游戲中,首先必須要有個(gè)主應(yīng)用程序類,其次,為了把程序的畫面呈現(xiàn)出來(lái),就是要有畫布;為了比較容易管理地圖、增加或修改地圖比較方便,應(yīng)該把地圖和畫布分開;然后最主要的是要有個(gè)來(lái)推箱子的人;當(dāng)然箱子也是需要管理的。這其中需要先了解游戲中應(yīng)用到的類。歡迎界面類welcomeview:主要負(fù)責(zé)歡迎界面的繪制工作。歡迎界面的繪制線程類welcomeviewdrawthread:負(fù)責(zé)的工作是定時(shí)重繪歡迎界面。歡迎界面的動(dòng)畫實(shí)現(xiàn)類welcomeviewgothread:是通過(guò)改變

10、welcomeview中所用到的圖片坐標(biāo)實(shí)現(xiàn)的。菜單界面類menuview:只負(fù)責(zé)繪制工作菜單界面的繪制線程類menuviewdrawthread:負(fù)責(zé)的工作是定時(shí)重繪菜單界面。菜單界面的動(dòng)畫實(shí)現(xiàn)類menuviewgothread:用來(lái)生成菜單界面中背景的滾動(dòng)效果。游戲主界面類gameview:負(fù)責(zé)繪制游戲過(guò)程中所有的信息,如地圖、玩家角色、所推的箱子、恭喜過(guò)關(guān)圖片等。游戲主界面的繪制線程類gameviewdrawthread:通過(guò)對(duì)調(diào)節(jié)線程中的睡眠時(shí)間便可調(diào)整游戲的fps的高低,改善用戶的體驗(yàn)。地圖信息類maplist:包含著地圖的相關(guān)信息,這里的一個(gè)地圖是用三維函數(shù)族中的二維矩陣表示的,關(guān)

11、于該類的使用方法將在后面進(jìn)行介紹。角色封裝類mysprite:包含了所有與角色有關(guān)的信息。角色移動(dòng)線程類spritemovethread:負(fù)責(zé)角色的無(wú)級(jí)移動(dòng),運(yùn)用時(shí)只需給出起始點(diǎn)和目標(biāo)點(diǎn)的坐標(biāo),同時(shí)該類還承擔(dān)起屏幕的滾動(dòng)工作。角色換幀線程類spritethread:負(fù)責(zé)根據(jù)角色的信息時(shí)時(shí)改變角色的圖片。箱子移動(dòng)類boxthread:負(fù)責(zé)子昂子的無(wú)級(jí)移動(dòng)。(4) 游戲框架設(shè)計(jì)游戲基本框架類圖:圖一 游戲基本框架類圖(5) 設(shè)計(jì)細(xì)節(jié)要做的游戲是讓一個(gè)小人推箱子,操作方法就是通過(guò)四個(gè)方向鍵對(duì)小人進(jìn)行上,下,左,右移動(dòng)。當(dāng)箱子移動(dòng)到指定位置時(shí),游戲就會(huì)產(chǎn)生過(guò)關(guān)事件。下面是游戲流程圖: 開始判斷用戶是否

12、按鍵讀取按鍵信息輸出新地圖判斷箱子是否在目標(biāo)上結(jié)束過(guò)關(guān)否是否是圖二 程序流程圖二 歡迎界面設(shè)計(jì)(1) pushboxactivity類框架的搭建代碼如下:package wyf.ytl;import android.app.activity;import android.media.mediaplayer;import android.os.bundle;import android.os.handler;import android.os.message;import android.view.keyevent;import android.view.window;import androi

13、d.view.windowmanager;public class pushboxactivity extends activitywelcomeview welcomeview = null;/歡迎界面welcomeviewgothread welcomeviewgothread = null;/歡迎界面中的移動(dòng)線程menuview menuview = null;menuviewgothread menuviewgothread = null;/菜單界面中的移動(dòng)線程gameview gameview = null;boolean issound = true;/是否播放聲音mediapla

14、yer pushboxsound;/推箱子聲音mediaplayer backsound;/背景音樂(lè)mediaplayer winsound;/勝利的音樂(lè)mediaplayer startsound;/開始和菜單時(shí)的音樂(lè)int map1;int map2;/當(dāng)前游戲的地圖int selectmap = 0;/選中的地圖mysprite mysprite;/精靈keythread kt;/鍵盤監(jiān)聽線程int action = 0;/鍵盤的狀態(tài),二進(jìn)制表示 從左往右表示上下左右handler myhandler = new handler()/用來(lái)更新ui線程中的控件 public void ha

15、ndlemessage(message msg) if(msg.what = 1)/收到welcomeviewgothread/welcome發(fā)來(lái)的消息 welcomeviewgothread.setflag(false); if(welcomeview != null) welcomeview = null; initandtomenuview(); else if(msg.what = 2)/收到menuview發(fā)來(lái)的消息 if(menuview != null) menuview = null; initandtogameview(); else if(msg.what = 3) if(

16、gameview != null) gameview = null; initandtomenuview(); else if(msg.what = 4)/收到gameview來(lái)的消息,進(jìn)入下一關(guān) if(selectmap+1<maplist.map1.length) selectmap = selectmap+1; initandtogameview(); else selectmap = 0; initandtogameview(); ; public void oncreate(bundle savedinstancestate) super.oncreate(savedinsta

17、ncestate);/全屏requestwindowfeature(window.feature_no_title);getwindow().setflags(windowmanager.layoutparams.flag_fullscreen , windowmanager.layoutparams.flag_fullscreen); pushboxsound = mediaplayer.create(this, r.raw.sound2);/推箱子的聲音 winsound = mediaplayer.create(this, r.raw.winsound);/勝利的聲音 backsound

18、 = mediaplayer.create(this, r.raw.sound1);/背景音樂(lè) backsound.setlooping(true); /設(shè)置循環(huán) startsound = mediaplayer.create(this, r.raw.sound3); startsound.setlooping(true);initandtowelcomeview(); public void initandtowelcomeview() welcomeview = new welcomeview(this); if(issound) startsound.start(); this.setc

19、ontentview(welcomeview); welcomeviewgothread = new welcomeviewgothread(this); welcomeviewgothread.start(); public void initandtomenuview() menuview = new menuview(this); this.setcontentview(menuview); menuviewgothread = new menuviewgothread(this); menuviewgothread.start(); public void initandtogamev

20、iew()map1 = new intmaplist.map1selectmap.lengthmaplist.map1selectmap0.length;for(int i=0; i<maplist.map1selectmap.length; i+)for(int j=0; j<maplist.map1selectmapi.length; j+)map1ij = maplist.map1selectmapij;/初始化第一層map2 = new intmaplist.map2selectmap.lengthmaplist.map2selectmap0.length;for(int

21、i=0; i<maplist.map2selectmap.length; i+)for(int j=0; j<maplist.map2selectmapi.length; j+)map2ij = maplist.map2selectmapij;/初始化第二層 gameview = new gameview(this); mysprite = new mysprite(this); kt = new keythread(this);/添加鍵盤監(jiān)聽 kt.start();if(issound)backsound.start();/播放聲音 this.setcontentview(gam

22、eview); public boolean onkeyup(int keycode, keyevent event) /鍵盤抬起 if(keycode = 19)/上 action = action & 0x37; if(keycode = 20)/下 action = action & 0x3b; if(keycode = 21)/左 action = action & 0x3d; if(keycode = 22)/右 action = action & 0x3e; return false; public boolean onkeydown(int key

23、code, keyevent event)/鍵盤按下監(jiān)聽 if(keycode = 19)/上 action = action | 0x08; if(keycode = 20)/下 action = action | 0x04; if(keycode = 21)/左 action = action | 0x02; if(keycode = 22)/右 action = action | 0x01; return false; (2) 歡迎界面welcomeview類的實(shí)現(xiàn)代碼如下:package wyf.ytl;import android.graphics.bitmap;import and

24、roid.graphics.bitmapfactory;import android.graphics.canvas;import android.graphics.color;import android.graphics.paint;import android.view.surfaceholder;import android.view.surfaceview;import android.view.view;import android.view.view.onclicklistener;public class welcomeview extends surfaceview impl

25、ements surfaceholder.callback, onclicklistenerpushboxactivity pushboxactivity;welcomeviewdrawthread welcomeviewdrawthread = null;bitmap bitmap;bitmap wallleft;/左面的墻bitmap wallright;/右面的墻bitmap iron;/鐵門bitmap woodleft;/左面的木門bitmap woodright;/右面的木門bitmap background;bitmap mountain;/背景的山int wallleftx =

26、 15;/墻的坐標(biāo)int walllefty = 10;int wallrightx = 150;int wallrighty = 10;int ironx = 15;/鐵門的坐標(biāo)int irony = 10;int woodleftx = 15;/木門的坐標(biāo)int woodlefty = 10;int woodrightx = 150;int woodrighty = 10; public welcomeview(pushboxactivity pushboxactivity) /構(gòu)造器super(pushboxactivity);this.pushboxactivity = pushbox

27、activity;getholder().addcallback(this);welcomeviewdrawthread = new welcomeviewdrawthread(this,getholder();wallright = bitmapfactory.decoderesource(getresources(), r.drawable.wallright);wallleft = bitmapfactory.decoderesource(getresources(), r.drawable.wallleft); bitmap = bitmapfactory.decoderesource

28、(getresources(), r.drawable.image4);iron = bitmapfactory.decoderesource(getresources(), r.drawable.image2);woodleft = bitmapfactory.decoderesource(getresources(), r.drawable.image33);woodright = bitmapfactory.decoderesource(getresources(), r.drawable.image3);background = bitmapfactory.decoderesource

29、(getresources(), r.drawable.background);/背景的水mountain = bitmapfactory.decoderesource(getresources(), r.drawable.mountain2);protected void ondraw(canvas canvas) canvas.drawcolor(color.white);/背景白色canvas.drawbitmap(background, 0, 0, new paint();/繪制背景canvas.drawbitmap(mountain, 0, 0, new paint();/后面的山圖

30、片canvas.drawbitmap(wallleft, wallleftx, walllefty,new paint();/墻的左面canvas.drawbitmap(wallright, wallrightx, wallrighty,new paint();/墻的右面canvas.drawbitmap(iron, ironx, irony,new paint();/鐵門canvas.drawbitmap(woodleft, woodleftx, woodlefty,new paint();/木頭門左面canvas.drawbitmap(woodright, woodrightx, wood

31、righty,new paint();/木頭門右面canvas.drawbitmap(bitmap, 0, 0, new paint();this.setonclicklistener(this);public void surfacechanged(surfaceholder holder, int format, int width,int height) public void surfacecreated(surfaceholder holder) welcomeviewdrawthread.setflag(true);welcomeviewdrawthread.start();/啟動(dòng)

32、刷幀線程public void surfacedestroyed(surfaceholder holder) boolean retry = true; welcomeviewdrawthread.setflag(false);/停止刷幀線程 while (retry) try welcomeviewdrawthread.join();/等待刷幀線程結(jié)束 retry = false; catch (interruptedexception e) /不斷地循環(huán),直到等待的線程結(jié)束 public void onclick(view v) pushboxactivity.myhandler.send

33、emptymessage(1);(3) 刷幀線程welcomeviewdrawthread的實(shí)現(xiàn)代碼如下:package wyf.ytl;public class welcomeviewgothread extends threadint sleepspan = 200;/睡眠的毫秒數(shù)private boolean flag = true;int status = 0;pushboxactivity pushboxactivity;/activity的引用public welcomeviewgothread(pushboxactivity pushboxactivity)this.pushbo

34、xactivity = pushboxactivity;public void setflag(boolean flag)this.flag = flag;public void run() /重寫的run方法while(flag)switch(status)case 0:/木門運(yùn)動(dòng)pushboxactivity.welcomeview.woodleftx -= 2;pushboxactivity.welcomeview.woodrightx += 2;if(pushboxactivity.welcomeview.woodleftx<-90)status = 1;break;case 1

35、:/鐵門運(yùn)動(dòng)pushboxactivity.welcomeview.irony -= 8;if(pushboxactivity.welcomeview.irony<-380)status = 2;break;case 2:pushboxactivity.welcomeview.wallleftx -= 3;pushboxactivity.welcomeview.wallrightx += 3;if(pushboxactivity.welcomeview.wallleftx<-90)status = 3;break;case 3:this.flag = false;pushboxac

36、tivity.myhandler.sendemptymessage(1);/向主activity發(fā)送handler消息break;trythread.sleep(sleepspan);/睡眠catch(exception e)e.printstacktrace();(4) 動(dòng)畫線程welcomeviewgothread的實(shí)現(xiàn)代碼如下:package wyf.ytl;public class menuviewgothread extends threadboolean flag = true;/循環(huán)標(biāo)記位int sleepspan = 300;/睡眠的毫秒數(shù)pushboxactivity pus

37、hboxactivity;public menuviewgothread(pushboxactivity pushboxactivity)this.pushboxactivity = pushboxactivity;public void run()while(flag)if(pushboxactivity.menuview != null)if(pushboxactivity.menuview.menubackgroudx < -320)/當(dāng)移動(dòng)過(guò)遠(yuǎn)時(shí)將坐標(biāo)重置到0pushboxactivity.menuview.menubackgroudx = 0;pushboxactivity.m

38、enuview.menubackgroudx -= 2;/每次循環(huán)向左移兩個(gè)單位trythread.sleep(sleepspan);/睡眠catch(exception e)e.printstacktrace(); 圖三 歡迎界面圖 圖四 菜單界面圖三 游戲界面設(shè)計(jì)在游戲界面設(shè)計(jì)中首先要使菜單界面menuview類實(shí)現(xiàn)。代碼如下:package wyf.ytl;import android.graphics.bitmap;import android.graphics.bitmapfactory;import android.graphics.canvas;import android.gr

39、aphics.paint;import android.view.motionevent;import android.view.surfaceholder;import android.view.surfaceview;public class menuview extends surfaceview implements surfaceholder.callbackpushboxactivity pushboxactivity;/主activity的引用menuviewdrawthread menuviewdrawthread;paint paint;/畫筆bitmap start1;/開

40、始游戲圖片bitmap sound1;/聲音圖片bitmap sound2;bitmap help1;/游戲說(shuō)明圖片bitmap exit1;/退出游戲圖片bitmap menubackground;/大背景圖片bitmap menubackground2;/小背景圖片int menubackgroudx = 0;/需要移動(dòng)的背景的坐標(biāo)public menuview(pushboxactivity pushboxactivity) /構(gòu)造器super(pushboxactivity);this.pushboxactivity = pushboxactivity;menuviewdrawthre

41、ad = new menuviewdrawthread(this, getholder();getholder().addcallback(this);paint = new paint() ;start1 = bitmapfactory.decoderesource(getresources(), r.drawable.start1);/初始化開始sound1 = bitmapfactory.decoderesource(getresources(), r.drawable.sound1);/初始化打開聲音sound2 = bitmapfactory.decoderesource(getre

42、sources(), r.drawable.sound2);/初始化關(guān)閉聲音help1 = bitmapfactory.decoderesource(getresources(), r.drawable.help1);/初始化幫助exit1 = bitmapfactory.decoderesource(getresources(), r.drawable.exit1);/初始化退出menubackground = bitmapfactory.decoderesource(getresources(), r.drawable.menubackground);menubackground2 = b

43、itmapfactory.decoderesource(getresources(), r.drawable.menubackground2);protected void ondraw(canvas canvas) super.ondraw(canvas);canvas.drawbitmap(menubackground, menubackgroudx, 0, paint);/繪制大背景canvas.drawbitmap(menubackground2, 21, 20, paint);/繪制小背景canvas.drawbitmap(start1, 60, 60, paint);if(push

44、boxactivity.issound)/根據(jù)聲音的狀態(tài)繪制聲音按鈕圖片canvas.drawbitmap(sound1, 60, 150, paint);elsecanvas.drawbitmap(sound2, 60, 150, paint);canvas.drawbitmap(help1, 60, 240, paint);/繪制幫助canvas.drawbitmap(exit1, 60, 330, paint);/繪制退出按鈕public boolean ontouchevent(motionevent event) if(event.getx()>50 && ev

45、ent.getx()< 50+start1.getwidth()&& event.gety()>60 && event.gety()<60+start1.getheight()/點(diǎn)擊了開始游戲菜單if(pushboxactivity.startsound.isplaying()pushboxactivity.startsound.stop();pushboxactivity.myhandler.sendemptymessage(2);/向activity的handler發(fā)送消息else if(event.getx()>50 &&a

46、mp; event.getx()<50+sound1.getwidth()&& event.gety()>70+start1.getheight() && event.gety()<70+start1.getheight()+sound1.getheight()/點(diǎn)擊了聲音菜單pushboxactivity.issound = !pushboxactivity.issound;/將聲音開關(guān)取反if(!pushboxactivity.issound)if(pushboxactivity.startsound.isplaying()pushboxa

47、ctivity.startsound.pause();/停止播放聲音if(pushboxactivity.backsound.isplaying()pushboxactivity.backsound.pause();/停止播放聲音elseif(!pushboxactivity.startsound.isplaying()pushboxactivity.startsound.start();/開始播放聲音else if(event.getx()>50 && event.getx()<50+help1.getwidth()&& event.gety()&

48、gt;80+start1.getheight()+sound1.getheight() && event.gety()<80+start1.getheight()+help1.getheight()+help1.getheight()/點(diǎn)擊的是游戲說(shuō)明菜單else if(event.getx()>50 && event.getx()<50+exit1.getwidth()&& event.gety()>90+start1.getheight()+help1.getheight()+help1.getheight()&& event.gety()<90+start1.getheight()+help1.getheight()+help1.getheight()+exit1.getheight()/點(diǎn)擊的是退出游戲菜單system.exit(0);/退出游戲return super.ontouchevent(event);public void surfacechanged(surfaceholder holder, int format, int width,int

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論