九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

J2me-開發(fā)實例-俄羅斯方塊.ppt

  • 資源ID:6357333       資源大?。?span id="24d9guoke414" class="font-tahoma">934KB        全文頁數(shù):26頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

J2me-開發(fā)實例-俄羅斯方塊.ppt

JavaME移動開發(fā)編程 開發(fā)實例 實例 俄羅斯方塊 一 游戲設(shè)計 操作流程本游戲的操作流程非常簡單 玩家啟動MIDlet啟動后 即進(jìn)入游戲主畫面 屏幕開始顯示為歡迎畫面 玩家按下任意鍵 進(jìn)入游戲 當(dāng)玩家按下 開始 按鈕后 就可以開始玩游戲了 在游戲過程中 玩家可以按下 暫停 按鈕暫停游戲運行 按下 繼續(xù) 按鈕 恢復(fù)游戲運行 任何時候按 退出 按鈕 MIDlet都會終止 流程圖 游戲分析 要實現(xiàn)上述游戲功能 我們需要實現(xiàn)哪些類 首先 我們需要一個控制類 用來管理整個程序運行的流程 其次 我們需要一個游戲類 用來實現(xiàn)游戲的核心功能 再次 我們需要一個類來實現(xiàn)產(chǎn)生下一個方塊 方塊移動和旋轉(zhuǎn)等操作 其他的一些輔助類 諸如定時器任務(wù)類等 控制類的實現(xiàn) 控制類的功能比較簡單 根據(jù)流程 它主要控制在顯示了歡迎界面后 啟動游戲類的顯示 二 核心邏輯的設(shè)計思路 游戲的實現(xiàn)其實就是把一個現(xiàn)實世界的物理模型抽象成能用程序描述的邏輯模型 我們回想一下俄羅斯方塊的游戲過程 一個有一定形狀的方塊從屏幕頂部往下掉 而且這個方塊可以旋轉(zhuǎn) 可以左右移動 那么我們來分解這個過程 俄羅斯方塊的游戲過程 首先 考慮怎樣實現(xiàn)方塊不停的從屏幕頂端往下落的過程 要上方塊不停的從屏幕頂端往下落 這是一個重復(fù)的且按照一定時間間隔的行為 我們自然可以想到在這里用一個定時器來實現(xiàn)這一個重復(fù)的過程 我們只需要在定時器的定時任務(wù)里完成方塊的下落就行了 俄羅斯方塊的游戲過程 其次 考慮方塊表示和方塊的旋轉(zhuǎn) 移動 俄羅斯方塊共有7種不同類型的方塊 上面的7種方塊中 每一種類型的方塊都可以看作是單位方塊的組合 且都是由4個單位方塊組成 俄羅斯方塊的游戲過程 另外 方塊在屏幕上的移動是以一個單位方塊為單位移動到的 那么我們可以把屏幕劃分成若干個小方格 每次移動就向相應(yīng)的方向移動一小格 如下圖 俄羅斯方塊的游戲過程 向右移動五次 向下移動五次 核心邏輯的設(shè)計思路 在本例中 方塊都是用一個填充顏色的實心矩形表示的 那么我們?yōu)榱艘硎痉艍K 需要先把屏幕劃分成mxn個小格子 在本例中 m 15 n 11 為了表示這些格子 我們可以定義一個二維數(shù)組intScreenBlock newint 11 15 來表示屏幕中的每個小格子 這里為了和屏幕坐標(biāo)統(tǒng)一起來 所以數(shù)組的第一維表示一行多少列 第二維表示總共多少行 這樣與x y是統(tǒng)一的 有了這個二維數(shù)組 我們可以將方塊對應(yīng)屏幕位置的二維數(shù)組的相應(yīng)數(shù)據(jù)設(shè)置為1 而沒有方塊的地方設(shè)置為0 這樣我們在屏幕渲染時 就掃描整個二維數(shù)組 只要數(shù)組元素為1 我們就將相應(yīng)的區(qū)域著色 核心邏輯的設(shè)計思路 下面考慮怎樣表示不同類型的方塊以及方塊的旋轉(zhuǎn) 接著上面思考 既然我們的屏幕上已經(jīng)劃分好了小格子 那么我們只要把每種方塊貼到屏幕上的相應(yīng)位置的格子里就行了 因此我們需要知道每種方塊對應(yīng)的那些格子應(yīng)該著色 我們可以同樣用數(shù)組來標(biāo)記每種不同的方塊應(yīng)該在哪些區(qū)域著色 因為在這7種方塊中 每一種類型的方塊無論長或?qū)挾疾怀^4個單位方塊 所以我們可以用一個4x4的矩陣來表示 核心邏輯的設(shè)計思路 方塊的旋轉(zhuǎn) 我們其實是用了一個4x4的二維數(shù)組來表示一種方塊 那么我們在程序里可以用矩陣旋轉(zhuǎn)的方法把放塊旋轉(zhuǎn)后的結(jié)果計算出來 這是一種方法 另一種方法 因為我們每次旋轉(zhuǎn)都是旋轉(zhuǎn)90度 那么每種方塊也就只有4種狀態(tài) 7個放塊也就28種狀態(tài) 那么我們可以在程序里將這28種狀態(tài)都寫出來 那么旋轉(zhuǎn)的時候 我們只要順序的取這些方塊的狀態(tài)就可以了 因此我們定義一個類BlockTypeArray來存儲這些狀態(tài) 方塊的移動 有了前面的數(shù)據(jù)結(jié)構(gòu) 我們可以設(shè)計一個類Block來控制方塊的移動和旋轉(zhuǎn)等操作 那么這個Block類有一個 x y屬性對應(yīng)了這個方塊在屏幕坐標(biāo)中的位置 當(dāng)我們要移動方塊時 只要改變這個x y坐標(biāo)就可以了 至于渲染得時候 也是根據(jù)這個x y坐標(biāo)在加上每個方塊的偏移位置 在屏幕中將這個方塊畫出來 MainCanvas類的實現(xiàn) 完成的功能該類實現(xiàn)游戲的核心邏輯 需要完成的功能 實現(xiàn)游戲的控制 用戶通過這個類實現(xiàn)與游戲的交互 游戲邏輯的實現(xiàn)包括 讓方塊定時下落判斷方塊左右移動和下落的可能性判斷一個放塊所涉及的行是否填滿消去填滿的行等 流程 實現(xiàn) 繪圖采用雙緩沖由于游戲中會頻繁的清除屏幕 畫方塊 為了避免出現(xiàn)屏幕閃爍的現(xiàn)象 我們需要采用雙緩沖技術(shù) 實現(xiàn) 在屏幕上畫方塊根據(jù)前面的分析 我們會將游戲區(qū)域劃分成15x11個小格子 并用一個二維數(shù)組來表示這些小格子 通過分析 我們會發(fā)現(xiàn) 這些小格子不外乎有3種狀態(tài) 沒有方塊映射到當(dāng)前格子上 有方塊固定在當(dāng)前格子上 有方塊經(jīng)過當(dāng)前格子 為此 我們可以用數(shù)字0 1 2分別來表示屏幕上每個小格子的當(dāng)前狀態(tài) 實現(xiàn) 有了格子的狀態(tài)表示 那么我們在paint函數(shù)里畫圖的時候 先清除這個屏幕 然后掃描代表屏幕小格子的二維數(shù)組 如果當(dāng)前的小格子狀態(tài)為0 則不用對當(dāng)前小格子所代表的屏幕區(qū)域作處理 若狀態(tài)為1 在將當(dāng)前小格子所代表的區(qū)域畫上活動方塊的顏色 若狀態(tài)為2 則將當(dāng)前小格子所代表的區(qū)域畫上固定方塊的顏色 如下圖 實現(xiàn) 0 0 0 0 方塊的定時下落 在程序中 會隨機(jī)產(chǎn)生一個方塊 要讓這個方塊定時下落 根據(jù)上面所講的block類 我們可以知道只要在定時器任務(wù)里 將具體的某個block的成員變量y 1即可 方塊的左右移動 旋轉(zhuǎn)和下落 方塊左右移動 旋轉(zhuǎn)和下落的數(shù)據(jù)表達(dá)在上面的Block類里已經(jīng)實現(xiàn)了 在MainCanvas類里需要解決的問題是 怎樣判斷方塊這些動作的可能性 有了我們在前面所做的設(shè)計 要判斷方塊的這些可能性還是比較簡單的 我們可以先記錄下方塊還沒有作動作的狀態(tài) 包括它的x y和它的類型 讓后讓方塊做這些動作 方塊做完了這些動作后 它有了新的位置和狀態(tài) 對應(yīng)的x y和類型會有所改變 那我們判斷這個新的位置核心的類型所對應(yīng)的方塊數(shù)據(jù)會不會和其他方塊或者屏幕的邊界發(fā)生碰撞 如果發(fā)生碰撞 則當(dāng)前的方塊的狀態(tài)改變無效 我們將它重設(shè)會沒有改變前的狀態(tài) 否則就承認(rèn)當(dāng)前的改變 消除行的判定 有了前面的基礎(chǔ) 消除行的判定是比較容易實現(xiàn)的 現(xiàn)在 我們用1來表示屏幕中某個小格子是方塊固定后的狀態(tài) 那么我們可以循環(huán)掃描屏幕中的每一行 如果這一行中的每個小格子的狀態(tài)均為1 則表明這一行可以消除 消除的時候 我們把這一行的小格子的狀態(tài)置為0就可以了 另外 我們消除一行時 還需要將這一行上面的方塊順序的往下挪 要達(dá)到這個目的 我們只需要在消除行時 對每一列的數(shù)據(jù)元素進(jìn)行移位就行了

注意事項

本文(J2me-開發(fā)實例-俄羅斯方塊.ppt)為本站會員(max****ui)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!