freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android環(huán)境的俄羅斯方塊畢業(yè)設(shè)計(jì)(已修改)

2025-07-05 15:53 本頁(yè)面
 

【正文】 基于android環(huán)境的俄羅斯方塊一、 緒論. 項(xiàng)目背景本題目將設(shè)計(jì)一個(gè)俄羅斯方塊(Tetris, 俄文:Тетрис)。它是一款風(fēng)靡全球的電視游戲機(jī)和掌上游戲機(jī)游戲,由俄羅斯人阿列克謝帕基特諾夫發(fā)明,故得此名。俄羅斯方塊的基本規(guī)則是移動(dòng)、旋轉(zhuǎn)和擺放游戲自動(dòng)輸出的各種方塊,使之排列成完整的一行或多行并且消除得分。由于上手簡(jiǎn)單、老少皆宜,從而家喻戶曉,風(fēng)靡世界。. 開發(fā)平臺(tái) 此項(xiàng)目基于android 環(huán)境進(jìn)行開發(fā),使用的編程工具為eclipse,它是以android語(yǔ)言作為其基本語(yǔ)言的一種可視化編程工具。Android 是Google開發(fā)的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng). Android四大基本組件分別是Activity,Service服務(wù),Content Provider內(nèi)容提供者,BroadcastReceiver廣播接收器。應(yīng)用程序中,一個(gè)Activity通常就是一個(gè)單獨(dú)的屏幕,它上面可以顯示一些控件也可以監(jiān)聽并處理用戶的事件做出響應(yīng)。Activity之間通過(guò)Intent進(jìn)行通信。你的應(yīng)用可以使用它對(duì)外部事件進(jìn)行過(guò)濾只對(duì)感興趣的外部事件(如當(dāng)電話呼入時(shí),或者數(shù)據(jù)網(wǎng)絡(luò)可用時(shí))進(jìn)行接收并做出響應(yīng)。廣播接收器沒有用戶界面。然而,它們可以啟動(dòng)一個(gè)activity或serice 來(lái)響應(yīng)它們收到的信息,或者用NotificationManager 來(lái)通知用戶。一個(gè)Service 是一段長(zhǎng)生命周期的,沒有用戶界面的程序,可以用來(lái)開發(fā)如監(jiān)控類程序。android平臺(tái)提供了Content Provider使一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供給其他應(yīng)用程序。 注:Activity生命周期二、 項(xiàng)目規(guī)則及設(shè)計(jì)思路1.2.. 項(xiàng)目規(guī)則 玩家通過(guò)點(diǎn)觸虛擬鍵盤,左右控制方塊左右移動(dòng),按上代表旋轉(zhuǎn),按下代表加速向下移動(dòng),每滿一行消除,獲得相應(yīng)積分100,積分每增長(zhǎng)2000,等級(jí)加1,游戲速度加快. 實(shí)現(xiàn)思路1.2.... 界面設(shè)計(jì)游戲菜單界面游戲結(jié)束界面游戲運(yùn)行界面排行榜界面幫助界面 注:游戲界面中,利用二維數(shù)組進(jìn)行保存,其值為1代表該點(diǎn)有方塊占用,值為0代表空白,根據(jù)值繪制整張游戲窗口。. 功能設(shè)計(jì) 從游戲的基本玩法出發(fā),主要算法在于俄羅斯方塊的形狀和旋轉(zhuǎn)。在游戲設(shè)計(jì)中,方塊采用最基本的7種造型,包括長(zhǎng)條型,正方型,正S型,反S型,正7型,反7型,T型,每種造型又可以通過(guò)逆時(shí)針旋轉(zhuǎn)變化出4種形狀,因此利用三維數(shù)組保存28種方塊形狀,并且編號(hào)為K~K+3(K=0,1…7)的四個(gè)形狀為一組。方塊采用4*4的二維數(shù)組的數(shù)據(jù)結(jié)構(gòu),以此在界面中根據(jù)其數(shù)組對(duì)應(yīng)值進(jìn)行方塊繪制。在旋轉(zhuǎn)過(guò)程進(jìn)行之前,先判斷在該位置能否進(jìn)行旋轉(zhuǎn),若能,則將其在三維數(shù)組中的編號(hào)K,編號(hào)為K+(K+1)%4的形狀即為旋轉(zhuǎn)結(jié)果。 游戲過(guò)程中,利用隨機(jī)函數(shù)在一個(gè)預(yù)覽窗體中提前展示形狀供用戶參考,然后將展示的形狀復(fù)制到游戲窗體中進(jìn)行擺放,在游戲窗體中用戶就可以使用鍵盤的方向鍵來(lái)控制方塊的運(yùn)動(dòng),然后對(duì)每一行進(jìn)行判斷,如果有某行的方塊是滿的,則消除這行的方塊,并且使上面的方塊自由下落,其中,方塊向下的速度通過(guò)調(diào)用函數(shù)進(jìn)行控制。同時(shí)用戶也可以使用向下鍵加快下落速度,定義一個(gè)變量,對(duì)消除的行數(shù)進(jìn)行記錄,最后得出用戶的分?jǐn)?shù),用條件語(yǔ)句對(duì)分?jǐn)?shù)進(jìn)行判斷,達(dá)到一定的積分就可以升級(jí)到下一個(gè)等級(jí)。三、 程序流程圖1.2.3.. 總流程到達(dá)底部部到底游戲結(jié)束到達(dá)底部部結(jié)束銷行操作生成下一個(gè)下墜物將新生的下墜物代替舊的“下一個(gè)下墜物“將舊的“下一個(gè)下墜物”用作當(dāng)前 下墜物銷行操作游戲結(jié)束處理下降一個(gè)單位開始. 底部到達(dá)的判斷與銷行的實(shí)現(xiàn): 是否堆積方塊,判斷接觸面狀態(tài)及是否得分判斷是否過(guò)關(guān)關(guān)數(shù)增加,游戲速度將變快。開始新的一關(guān),繼續(xù)游戲游戲窗口重繪、處理銷行、堆積方塊向下移動(dòng) 將新的下墜物放置到游戲區(qū)域中去,這時(shí)可能出現(xiàn)馬上到達(dá)底部的情況,因此需要對(duì)它進(jìn)行判斷,如果是到達(dá)底部,則進(jìn)行銷行處理,并且修改相應(yīng)的數(shù)據(jù)狀態(tài)。而判斷是否已經(jīng)到達(dá)了底部,可以通過(guò)當(dāng)前下墜物件所對(duì)應(yīng)的接觸面的方塊位置為被占用狀態(tài)來(lái)確定。 統(tǒng)計(jì)分?jǐn)?shù):在消行處理里面有一個(gè)專門用來(lái)統(tǒng)計(jì)消行數(shù)的變量,然后根據(jù)變量的值決定分?jǐn)?shù)的多少。如果總分?jǐn)?shù)達(dá)到過(guò)關(guān)條件就過(guò)關(guān),改變游戲速度,開啟新的一關(guān),然后再加載方塊。沒有達(dá)到過(guò)關(guān)分?jǐn)?shù)或者沒有滿行,則加載下一個(gè)方塊繼續(xù)游戲。是否是否否是是否接上圖1點(diǎn)底行判斷當(dāng)前行是否為空判斷當(dāng)前行是否為滿判斷是否有滿行判斷移動(dòng)行方塊是否為空當(dāng)前行向上推動(dòng)一行將要移動(dòng)行所有數(shù)據(jù)移至當(dāng)前行將當(dāng)前行的所有數(shù)據(jù)初始化統(tǒng)計(jì)連續(xù)幾行為滿如果有銷行,則刷新游戲區(qū)域。接上圖2點(diǎn)4.5.... 隨機(jī)方塊的產(chǎn)生是否7654321隨機(jī)抽取一個(gè)數(shù)隨機(jī)數(shù)一字形田字形L 形J 形T 形S 形Z字形型游戲是否結(jié)束保存當(dāng)前方塊坐標(biāo)顯示方塊于屏幕上游戲結(jié)束保存信息關(guān)數(shù)初始化返回開始界面四、 部分截圖 1.2.3.4.5. 五、 關(guān)鍵代碼1.2.3.4.5.6.. package 。import 。import 。import 。import 。import 。import 。import 。import 。public class ActivityGame extends Activity { //總游戲窗口 private static final String TAG = ActivityGame。 TetrisView mTetrisView = null。 //處理游戲進(jìn)程的類 public void onCreate(Bundle saved) //創(chuàng)建活動(dòng) { (saved)。 //啟動(dòng)窗體的拓展特性 requestWindowFeature()。 init()。 } private void init() { mTetrisView = new TetrisView(this)。 Intent intent = getIntent()。 //得到當(dāng)前的intent //獲取額外信息——等級(jí) int level = (,1)。 (level)。 //設(shè)置等級(jí) int flag = ()。 //得到當(dāng)前intent的標(biāo)記符 if(flag == ) {//當(dāng)遇到繼續(xù)上次游戲事件 ()。 //恢復(fù)上次游戲 } //得到當(dāng)前聲音設(shè)置 boolean isVoice = (,true)。 (isVoice)。 //設(shè)置聲音 setContentView(mTetrisView)。 //設(shè)定當(dāng)前使用的視圖 } public void onPause() //暫?;顒?dòng) { ()。 ()。 } public void onResume()//執(zhí)行活動(dòng) { ()。 ()。 } public void onStop() //停止活動(dòng) { ()。 ()。 //保存游戲 ()。 //釋放游戲占用的資源 }}. package 。import 。import 。public class ActivityHelp extends Activity { //幫助窗口 public void onCreate(Bundle saved) //開始 { (saved)。 setContentView()。 //初始化幫助窗口的界面 }}. package 。// Author: HDU// import 。import 。import 。import 。import 。import 。import 。import 。public class ActivityMain extends Activity { public static final int FLAG_NEW_GAME = 0。 //開始新游戲 public static final int FLAG_CONTINUE_LAST_GAME = 1。 //繼續(xù)上一次的游戲 public static final String FILENAME = settingInfo。 //文件名 public static final String LEVEL = level。 //游戲級(jí)別 public static final String VOICE = voice。 //游戲聲音 private int mLevel = 1。 //當(dāng)前游戲等級(jí) private Button btNewgame = null。 //新游戲按鈕 private Button btContinue = null。 //繼續(xù)游戲按鈕 private Button btHelp = null。 //幫助按鈕 private Button btRank = null。 //排名按鈕 private Button btPre = null。 //等級(jí)下降按鈕 private Button btNext = null。 //等級(jí)上升按鈕 private Button btExit = null。 //退出按鈕 private TextView tvLevel = null。 //等級(jí)編輯框 private CheckBox cbVoice = null。 //聲音選項(xiàng) /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { //創(chuàng)建,程序執(zhí)行時(shí)的第一步 (savedInstanceState)。 setContentView()。 //設(shè)置開始界面的菜單 btNewgame = (Button)findViewById()。 //通過(guò)ID查找新游戲按鈕在VIEW子控件 btContinue = (Button)findViewById()。//繼續(xù)游戲按鈕控件 btHelp = (Button)findViewById()。 //幫助按鈕控件 btRank = (Button)findViewById()。 //排名按鈕控件 btPre = (Button)findViewById()。 //等級(jí)下降按鈕控件 btNext = (Button)findViewById()。 //等級(jí)上升 按鈕控件 btExit = (Button)findViewById()。 //退出按鈕控件 tvLevel = (TextView)findViewById()。//等級(jí)編輯框控件 cbVoice = (CheckBox)findViewById()。//聲音選項(xiàng)框控件 (buttonListener)。 // 在新游戲按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。// 在繼續(xù)游戲按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。 // 在幫助按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。 // 在排名按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。 // 在等級(jí)下降按鈕設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。 // 在等級(jí)上升按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 (buttonListener)。 // 在退出按鈕上設(shè)置點(diǎn)擊監(jiān)聽器 restoreSettings()。 //恢復(fù)初始設(shè)置 } private buttonListener = new () { //按鈕上的點(diǎn)擊監(jiān)聽器類 @Override public void onClick(View v) { //按鈕點(diǎn)擊時(shí)的處理程序 if(v == btNewgame) //當(dāng)被點(diǎn)擊的按鈕為新游戲按鈕時(shí) { Intent intent = new Intent(,)。//在兩個(gè)Activity類之間傳輸數(shù)據(jù) (FLAG_NEW_GAME)。 //設(shè)置標(biāo)記符 (VOICE,())。 //添加聲音的附加信息 (LEVEL,mLevel)。 //添加等級(jí)的附加信息 startActivity(intent)。 //將此intent類傳入相應(yīng)的Activity中 return。 } if(v == btContinue
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1