日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁(yè) > 編程 > Java > 正文

一個(gè)MIDP俄羅斯方塊游戲的設(shè)計(jì)和實(shí)現(xiàn)

2020-01-31 16:52:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
文章來(lái)源:csdn 作者:陳萬(wàn)飛

 

作者簡(jiǎn)介

  陳萬(wàn)飛,男,中南大學(xué)數(shù)軟系學(xué)士,曾任北京長(zhǎng)城軟件高級(jí)程序員,系統(tǒng)分析師.有較為豐富的j2se,j2ee開(kāi)發(fā)經(jīng)驗(yàn)。目前致力于j2me研究工作??赏ㄟ^(guò)chen_cwf@163.net與他聯(lián)系

摘要

  本文給出了一個(gè)基于MIDP1.0的俄羅斯方塊游戲的設(shè)計(jì)方案,并給出全部實(shí)現(xiàn)源代碼。該游戲的最大特色是屏幕自適應(yīng),無(wú)論各種手機(jī),PDA的屏幕大小如何,該游戲總是能獲得最佳的顯示效果。游戲在J2me wireless toolkit 2.1的4種模擬器上測(cè)試通過(guò)。

聲明:本游戲代碼最初來(lái)源于一個(gè)日本開(kāi)源項(xiàng)目(見(jiàn)參考資料1),筆者有大幅度修改。

  以下為幾張游戲截屏圖:

設(shè)計(jì)

1. 操作流程

  本游戲的操作流程非常簡(jiǎn)單,用戶(hù)啟動(dòng)MIDlet啟動(dòng)后,即進(jìn)入游戲主畫(huà)面,屏幕開(kāi)始顯示為歡迎畫(huà)面。用戶(hù)按下[開(kāi)始]按鈕后,就可以開(kāi)始玩游戲了,當(dāng)用戶(hù)想暫停時(shí),再次按一下[開(kāi)始]按鈕,游戲就暫停了,在暫停的情況下再按[開(kāi)始]按鈕,游戲繼續(xù)運(yùn)行。任何時(shí)候按[退出]按鈕,游戲MIDlet都會(huì)終止.

  游戲畫(huà)面流程圖如下:

2. 算法

  MIDP的游戲設(shè)計(jì),本質(zhì)上就是用一個(gè)線程或者定時(shí)器產(chǎn)生重繪事件,用線程和用戶(hù)輸入改變游戲狀態(tài)。這個(gè)游戲也不例外,啟動(dòng)MIDlet后,就立即生成一個(gè)重繪線程,該線程每隔50ms繪制一次屏幕。當(dāng)然,重繪時(shí)有一些優(yōu)化措施,并不是屏幕上所有的像素都需要重繪,而是有所選擇,比如游戲畫(huà)布上那些已經(jīng)固定下來(lái)的下墜物(下墜物一共有7種,由4個(gè)小磚塊組成,每種下墜物顏色固定,可以上下左右旋轉(zhuǎn))就不需重繪。游戲畫(huà)布是一個(gè)CommandListener,可以接受用戶(hù)鍵盤(pán)命令,控制下墜物的左移,右移,下移,旋轉(zhuǎn)動(dòng)作。整個(gè)游戲的流程控制體現(xiàn)在游戲畫(huà)布對(duì)象的paint()方法里。paint()根據(jù)當(dāng)前的游戲狀態(tài),繪制出當(dāng)時(shí)的游戲畫(huà)面。歡迎畫(huà)面和Game Over畫(huà)面的繪制相當(dāng)簡(jiǎn)單。游戲暫停畫(huà)面的繪制也相當(dāng)容易,就是設(shè)立標(biāo)志,讓paint()執(zhí)行的時(shí)候無(wú)需真正執(zhí)行重繪動(dòng)作。對(duì)于游戲處于運(yùn)行狀態(tài)的畫(huà)面的繪制,則需要在下墜物的當(dāng)前位置,繪制下墜物。在繪制下墜物之前,判斷下墜物是否還能下墜,如果能下墜的話,就讓它下落一格,再進(jìn)行繪制,如果下墜物已無(wú)法下墜,則判斷游戲是否處于Game Over狀態(tài),如果是處于Game Over狀態(tài)的話,則設(shè)置游戲狀態(tài)為Game over狀態(tài),這樣畫(huà)布在下一次重繪時(shí)就繪出Game Over的畫(huà)面.如果游戲不是處于Game Over狀態(tài),則把下墜物固定下來(lái),同時(shí)檢查游戲畫(huà)布上下墜物當(dāng)前行下面的所有行,看是否需要進(jìn)行行刪除動(dòng)作,如果需要行刪除,則清除游戲地圖上被刪行的數(shù)據(jù),再把被刪行繪制成背景色。然后初始化一個(gè)新的下墜物,繪制這個(gè)新的下墜物。paint方法的流程圖如下所示:

3. 數(shù)據(jù)結(jié)構(gòu)

  本游戲涉及到以下幾種數(shù)據(jù)結(jié)構(gòu)。

游戲區(qū)域

  游戲區(qū)域?yàn)槭謾C(jī)或者PDA屏幕的一部分,該區(qū)域?yàn)檎叫?邊長(zhǎng)一定能被16整除(因?yàn)槎砹_斯游戲區(qū)域剛好為16個(gè)小磚塊長(zhǎng),16個(gè)小磚塊寬的方形)。無(wú)論在水平方向還是垂直方向,該區(qū)域都要處于屏幕的居中位置。游戲區(qū)域在水平方向上分為2部分,一部分為12個(gè)小磚塊寬,用來(lái)顯示游戲容器,另一部分為4個(gè)小磚塊寬,用來(lái)顯示下一個(gè)下墜物和分?jǐn)?shù)。

小磚塊

  小磚塊是下墜物和游戲容器的組成部分。表現(xiàn)為一個(gè)正方形,邊長(zhǎng)為游戲區(qū)域邊長(zhǎng)的1/16。每個(gè)小磚塊在繪制的時(shí)候,4邊會(huì)留出1個(gè)象素寬,繪制成白色或者灰色,這樣磚塊之間才有間隙。每種小磚塊也有id,分別為1到8。我們可以用一個(gè)顏色數(shù)組(程序里叫BRICK_COLORS)存儲(chǔ)這8種顏色。若某種小磚塊的id為3,那么該小磚的顏色為BRICK_COLORS[3-1].

下墜物

  下墜物本質(zhì)上為16個(gè)小磚塊組成的正方形。下墜物一共有7種,比如有"田"字形的,"L"字形的等等。每種下墜物一共有4種旋轉(zhuǎn)變化。 每種下墜物都有一個(gè)id,分別為1到7。因?yàn)閷?duì)于一種下墜物來(lái)說(shuō),其顏色是固定的。我們同樣可以用該種顏色在BRICK_COLORS數(shù)組中的下標(biāo)值加上1,作為下墜物的id.

  例如"L"形下墜物的id為3,其變化形式為:

 那么用什么數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)一個(gè)下墜物呢,我們以"L"形的下墜物為例子來(lái)說(shuō)明:

  因?yàn)槊恳粋€(gè)下墜物有四種狀態(tài),所以我們可以考慮用一個(gè)長(zhǎng)度為4的數(shù)組來(lái)存貯一個(gè)下墜物的4種狀態(tài),數(shù)組中每一個(gè)元素表示該下墜物的一種狀態(tài)。那么用什么東西來(lái)表示某個(gè)下墜物的某種狀態(tài)呢,從上圖可以看出,用一個(gè)4X4的二維數(shù)組來(lái)存儲(chǔ)一種下墜物的一種狀態(tài)最合適不過(guò)了。在有色磚塊出現(xiàn)的位置,值為1,而只有背景顏色,無(wú)需繪制的位置,值為0。因此,整個(gè)"L"形下墜物的4種狀態(tài)可以用一個(gè)3維數(shù)組來(lái)表示:

protected int blockpattern3[][][] = {
{{0, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 1, 1, 1}, {0, 1, 0, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 0}},
{{0, 0, 0, 0}, {0, 0, 1, 0}, {1, 1, 1, 0}, {0, 0, 0, 0}}
};

游戲地圖

  游戲地圖是用來(lái)存儲(chǔ)游戲容器上的固定磚塊的。游戲容器為一個(gè)寬為12個(gè)小磚塊單位,高為16個(gè)小磚塊單位,包括左右2堵墻和下邊的容器底在內(nèi)。所以用一個(gè)16X12的二維數(shù)組(程序里叫mapdata)來(lái)存儲(chǔ)固定磚塊。如果mapdata[i][j]=k(k!=0).那么就表示游戲容器的i行j列上有個(gè)固定的小磚塊,小磚塊的顏色值為BRICK_COLORS[k-1].如果k=0則表示i行j列無(wú)磚塊。

  因此對(duì)于以下這種游戲運(yùn)行時(shí)刻,mapdata的值為{{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}
{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}
{8,0,0,0,0,0,0,0,0,1,1,8}{8,0,0,0,0,0,0,0,0,1,1,8}{8,0,0,0,0,0,7,7,5,1,1,8}{8,0,5,0,0,7,2,5,5,1,1,8}
{8,8,8,8,8,8,8,8,8,8,8,8}}

源代碼和可執(zhí)行代碼

  總共為3個(gè)文件:src.rar, ketrisgame.jad, ketrisgame.jar 說(shuō)明:src.rar中有全部的源代碼。ketrisgame.jar中還有程序運(yùn)行所需要的資源文件.安裝wtk2.1后,讓ketrisgame.jad和ketrisgame.jar處于同一目錄下(目錄路徑中不能含有中文和空格 切記),雙擊ketrisgame.jad文件,即可在模擬器里運(yùn)行游戲。

參考資料

 http://www.javadrive.jp/j2me/game/3/index.html

<j2me in a nutshell>

<java 手機(jī)/PDA 程序設(shè)計(jì)入門(mén)>

 

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
精品久久久三级| 欧美专区中文字幕| 欧美日韩国产在线看| 日韩高清不卡一区| 欧美三级免费观看| 久久久久黄色| 日韩欧美中文字幕在线观看| 欧美三级日韩三级| 精品国产乱码久久久久久牛牛| 日韩国产成人| 日韩午夜中文字幕| 中文字幕欧美日韩| 国产日韩专区| 欧美高清视频一区二区三区| 日韩精品在线网站| 亚洲一区二区三区精品中文字幕| 午夜国产福利一区二区| 日韩欧美在线字幕| 日韩久久99| 不卡福利视频| 国产在线观看91| 91久久视频| 国产香蕉精品视频| 中文字幕日韩在线观看| 本道综合精品| 精品亚洲国内自在自线福利| 国内国产区免费视频| 国产黄色在线播放| 成年人黄国产| 久久精品电影| 中文字幕欧美日韩精品| 91精品国产综合久久久久| 国产一区深夜福利| 国产91大片| 国产福利久久| 精品视频1区2区3区| 国产123在线| 久久久久久99精品| 黄色一区二区在线观看| 国产免费不卡av| 国产一区在线精品| 欧美日韩国产页| 一区二区在线观看不卡| 国产成人精品免费久久久久| 日韩.欧美.亚洲| 国产日韩精品电影| 色99中文字幕| 久久精品视频免费看| 欧美日韩综合视频| 亚洲久草视频| 亚洲国产www| 中文字幕在线视频网| 欧美一级久久久久久久久大| 国产绿帽一区二区三区| av中文在线播放| 久久精品视频免费看| 日韩欧美国产成人一区二区| 日韩欧美在线网址| 91久久精品国产91久久| 不卡视频一区二区| 日韩不卡一二三区| 日韩精品在线网站| 国产日韩第一页v| 中文字幕一区不卡| 中文字幕在线导航| 国产成人精品日本亚洲专区61| 91精品久久久久久久久| 一区二区三区在线播| 亚洲国产午夜精品| 日韩在线中文字幕| 69堂精品视频在线播放| 国产九九在线| 一级特黄大欧美久久久| 国产超级va在线视频| 视频一区二区国产| 国产三级中文字幕| 亚洲女人天堂色在线7777| 日韩欧美国产三级| 91 中文字幕| 不卡视频一区二区三区| 国产高清精品在线| 欧美久久久久久蜜桃| 精品久久久三级| 伊人中文字幕在线观看| 欧美日韩综合高清一区二区| 中文字幕在线视频第一页| 亚洲第一视频| 国产欧美日韩久久| 欧美午夜精品在线| 中文字幕精品亚洲| 999在线视频| 亚洲欧美99| 国产日韩精品在线看| 亚洲天堂国产视频| 国产日韩三级| 亚洲免费福利视频| 国产一区精品在线| 国产区日韩欧美| 欧美中文字幕| 日韩中文字幕在线视频观看| 午夜伊人狠狠久久| 国产高清大尺度一区二区不卡| 中文字幕在线日韩| 日韩免费视频一区| 国产高清一级片| 中文字幕亚洲免费| 久久综合久久综合九色| 精品久久九九| 日韩欧美亚洲日产国| 日韩视频在线免费看| 97国产视频| 国产一级在线| 久久福利视频一区二区| 日韩在线视频在线观看| 91精品国产免费| 日韩在线观看一区| 国产99精品| 欧美1区免费| 福利一区二区| 久久蜜桃一区二区| 欧美日韩中文国产| 影音先锋中文字幕在线观看| 久久99精品久久久久子伦| 国产午夜精品视频免费不卡69堂 | av免费观看网站| 精品欧美久久久| 久久 天天综合| 日韩精品在线私人| 色屁屁一区二区| 久久精品电影| 中文字幕亚洲免费| 久久精品一二三| 伊人伊成久久人综合网小说| 久久人人88| 午夜私人影院在线观看| 国产午夜精品全部视频播放| 国产福利在线看| 日韩精品视频在线观看网址| 国产视频二区| 日韩欧美在线精品| 91午夜在线| 国产三级视频在线播放线观看| 黄色在线播放网站| 日韩三级精品电影久久久| 999精品色在线播放| 国产资源中文字幕| 一本一道综合狠狠老| 欧美日韩乱国产| 91精品国产丝袜白色高跟鞋| 日韩欧美综合| 亚洲第一视频在线观看| 亚洲娇小xxxx欧美娇小| 精品国产乱码久久久久久蜜臀 | 中文在线第一页| 精品三级在线| 免费看日韩精品| 久久久另类综合| 国产午夜精品视频免费不卡69堂 | 91精品国产自产在线| 视频一区二区精品的福利| 日韩激情一区| 亚洲一区中文在线| 欧美国产三级| 中文天堂资源在线| 91九色在线看| 最新中文字幕在线播放 | 中文字幕在线观看国产| 国产三级视频在线播放线观看| 日韩在线精品视频| 中文字幕国产在线| 尤物在线精品| 国产在线导航| 欧美三级日韩在线| 视频一区视频二区中文| 亚洲综合在线中文字幕| 精品久久久视频| 国产69精品久久app免费版| 麻豆一区二区99久久久久| 红桃视频亚洲| 欧美日韩国产综合网| 在线视频国内一区二区| 天堂√8在线中文| 欧美国产日韩综合| 日韩 欧美 综合| 日韩欧美在线网站| 欧美日韩国产一区在线| 久久久久蜜桃| 欧美日韩国产影片| 中文字幕在线视频网| 在线一区免费| 91欧美日韩麻豆精品| 国产www在线观看| 91精选在线| 国产999在线观看| 香蕉视频亚洲一级| 国产一级视频| 久久精品99国产国产精| 亚洲欧美999| 国产黄色小视频| 午夜一区二区视频| 国产第一页在线播放| 欧美日韩国产三级| 国产在线观看91| 久久精品www| 在线免费视频一区二区| 国产午夜精品视频| 欧美在线视频一区二区| 日韩精品视频免费播放| 精品国产99| 亚洲第一网中文字幕| 国产福利在线看| 中文字幕亚洲区| 国产嫩草影院久久久久| 拍真实国产伦偷精品| 亚洲综合中文字幕在线| 精品福利在线观看| 欧美日韩在线不卡一区| 69免费视频| 999精品网| 91精品国产自产观看在线| wwwwww国产| 欧美三级日本三级少妇99| 久久精品欧美日韩精品| 欧美天堂一区二区| 日韩午夜黄色| 日韩精品在线免费观看| 精品日韩av一区二区| 中文字幕在线观看视频www| 日韩精品免费视频一区二区三区| 黄色一区二区在线观看| 欧美亚洲另类制服自拍| 日韩视频第二页| 亚洲v中文字幕| 欧美1区免费| 国产视频二区| 国产成人综合av| 日韩av一区在线| 一级片免费网站| 亚洲欧洲精品在线| 久久久99精品久久| 欧美变态tickling挠脚心| 99综合精品久久| 中文字幕 日韩 欧美| 日韩中文字幕观看| 区日韩二区欧美三区| 天天综合天天| wwwav在线播放| 日韩国产欧美在线视频| 精品调教chinesegay| 亚洲第一中文字幕| 国产黄在线观看| 久久精品网站免费观看| 亚洲一区在线观看免费| 日韩中文字幕视频在线观看| 欧美日韩国产影片| 日韩精品一二三四区| 欧美一级二级三级区| 91精品国产综合久久久蜜臀粉嫩| 久久麻豆视频| 国产黄色一级片| 国产中文在线| 日韩欧美专区在线| 免费国产成人看片在线| 亚洲一区导航| 日韩欧美高清在线| 一区二区中文字幕在线| 久久精品网站免费观看| 99中文字幕一区| eeuss一区| 中文字幕狠狠干| 午夜福利一区二区三区| 欧美日韩国产在线看| 美国av一区二区| 亚洲一级在线| 日韩福利视频导航| 精品久久电影| 欧美中文字幕在线观看视频| 亚洲一区在线观看免费| 国产 欧美在线| 国内不卡的二区三区中文字幕| 国产免费久久| 99这里有精品视频| 亚洲视频电影在线| 国产一区免费视频| 国产视频一区三区| 99在线国产| 日韩国产成人| 欧美成人vr18sexvr| 久久99蜜桃精品久久久久小说| av首页在线| 日韩不卡在线播放| 国产一二三视频| 精品人妻一区二区三区视频| 日韩免费看网站| 在线精品观看| 欧美日韩一二三| 国产综合精品在线| 精品国产91乱高清在线观看| 在线欧美日韩国产| 亚洲一区视频在线观看视频| 美女在线视频一区| 日韩欧美色综合| 欧美日韩尤物久久| 国产永久在线观看| 精品一区二区三区中文字幕在线| 日韩欧美在线综合| 日韩精品在线中文字幕| 精品人妻二区中文字幕| 国产裸舞福利在线视频合集| 日韩高清在线一区二区| 中文在线第一页| 欧美国产小视频| 欧美日韩亚洲国产综合| 日韩av一区二区在线观看| 日韩欧美在线视频日韩欧美在线视频| 99久久久精品免费观看国产| 欧美日韩高清不卡| 日韩欧美成人一区二区三区| 国产一级片在线| 亚洲乱码中文字幕综合| 91精品国产色综合久久久蜜香臀| 免费在线视频一级不卡| 亚洲综合在线电影| 一级日韩一级欧美| 丰满少妇一区| 国产免费永久在线观看| 日韩亚洲欧美中文三级| 欧美另类专区| 国产wwww| 视频一区二区精品的福利| 欧美亚洲天堂| 国产福利免费在线观看| 久久视频免费看| 狠狠色综合色区| 国产高清视频一区二区| 久久精品99国产国产精| 欧洲精品在线一区| 亚洲男女av一区二区| 亚洲一区中文在线| 日韩三级视频在线看| 午夜伊人狠狠久久| 精品日韩视频| 欧美黄页在线免费观看| 一区二区高清视频| 欧美日韩精品免费在线观看视频| 欧美日韩一区二区在线视频| av免费网站在线观看| 精品成人久久久| 91精品在线观| 亚洲福利精品| 国产在线视频不卡| 在线视频国内一区二区| 久草亚洲一区| 欧美日韩999| 中文字幕在线视频网| 在线精品观看| 亚洲视频日韩| 日韩视频一区二区在线观看| 国产三级中文字幕| 欧美在线视频二区| 国产日韩中文字幕在线| 欧美在线视频一区二区| 天堂在线www天堂中文在线| 精品视频123区在线观看| 国产一区深夜福利| 久久精品久久久久| 日韩国产亚洲欧美| 亚洲视频色图| 中文字幕日韩高清| 91精品国产综合久久久久久| 成人a在线观看| 亚洲综合在线视频| 一区二区三区四区五区视频在线观看| 国产在线第一页| 在线国产91| 在线观看av的网站| 亚洲二区自拍| 亚洲大片免费看| 国产极品嫩模在线视频一区| 日韩三级一区二区| av中文在线播放| 中文字幕在线视频网| 91精品久久久久久久久久| 精品国产网站在线观看| 日韩欧美综合视频| 一区二区三区在线免费| 91精选在线| 免费国产h视频在线观看86| 国产一区精品在线| 国产黄在线观看免费观看不卡| aa国产成人| www.中文字幕在线| www.精品av.com| www.狠狠干| 二区视频在线观看| 日韩高清不卡一区二区| 欧美片网站免费| 国产欧美日韩中文字幕| h片精品在线观看| 国产无套粉嫩白浆在线2022年|