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

正文內(nèi)容

基于visualc的游戲開發(fā)-資料下載頁(yè)

2025-06-18 16:40本頁(yè)面
  

【正文】 羅斯方塊的游戲大致可以分為9個(gè)要素。(1) 每四個(gè)小方塊可組合成一個(gè)方塊群。(2) 從七個(gè)方塊群中,隨機(jī)取一組告訴玩家下一組是什么。(3) 在10*20的游戲框中,由上方慢慢落下。(4) 玩家可按左右鍵移動(dòng)方塊。按下鍵加速方塊落下速度,或按Z鍵旋轉(zhuǎn)方塊,所有方塊必須在游戲框中。(5) 方塊落下時(shí),四個(gè)小方塊的一個(gè)到達(dá)游戲框的最底或下一格有方塊時(shí)即停止運(yùn)動(dòng),并將方塊移到游戲框底。(6) 如果同一行的10格中全部填滿小方塊,即可消除該行,上面的方塊以行為單位,由上一行一行一行往下移。(7) 當(dāng)消除的行數(shù)越多時(shí),落下的速度越快。(8) 如果方塊停住時(shí)有方塊為在游戲框內(nèi),游戲結(jié)束。(9) 生成一個(gè)新的方塊,再回到第2步?!  「鶕?jù)上面的要求,定義下面的資料。typedef struct _TETRIS_DATA{ BYTE Data[10][20] 。//資料數(shù)據(jù) POINT NowBox[4] 。//目前方塊 POINT NowPoint 。 int BoxNextIndex 。//下一個(gè)方塊 int BoxNowIndex 。//目前方塊 int TimeNextGrid 。 int TimeGridNow 。 int sLV 。//關(guān)卡 int sNLV 。//下一關(guān)要消的行數(shù) int sScore 。//得分 int sDel 。//已消行數(shù)}TETRIS_DATA 。TETRIS_DATA ts_DA 。//背景d3dTexture ts_Back 。//方塊d3dTexture ts_Box[7] 。除了資料外還定義了對(duì)象D3DTA_TEXTURE存放圖片。這個(gè)游戲中最主要的組件是由四個(gè)小方塊組成的方塊群,排列組合后可以組成7個(gè)方塊群。方塊群的位置如下:static const POINT app_TetrisBox[7][4] = { /*0 〖〖〖〖 */{ { 0 , 1 }, { 1 , 1 } , { 2 , 1 } , { 3 , 1 } }, /*1 〖〖 〖〖 */{ { 0 , 1 }, { 1 , 1 } , { 2 , 1 } , { 2 , 2 } }, /*2 〖〖 〖〖 */{ { 0 , 2 }, { 1 , 2 } , { 1 , 1 } , { 2 , 1 } }, /*3 〖〖〖 〖 */{ { 0 , 1 } ,{ 1 , 1 } , { 2 , 1 } , { 2 , 2 } }, /*4 〖 〖〖〖 */{ { 0 , 2 } ,{ 1 , 2 } , { 2 , 2 } , { 2 , 1 } }, /*5 〖〖 〖〖 */{ { 1 , 1 }, { 2 , 1 } , { 2 , 2 } , { 1 , 2 } }, /*6 〖〖〖〖 */{ { 2 , 1 }, { 1 , 2 } , { 2 , 2 } , { 3 , 2 } },}。所有的組件準(zhǔn)備好后,開始進(jìn)行游戲環(huán)境的初始化工作,讓玩家隨時(shí)可以開始。初始化過程如下:void Tetris::Updata(){ int i 。 char ch[256] 。 //開始 memset( amp。ts_DA , 0 , sizeof( ts_DA ))。 //背景 ( )。 //加載方塊 for( i = 0 。 i 7 。 i++ ) { wsprintf( ch , 方塊% , i )。 ts_Box[i].Create( ch )。 } //第一個(gè)方塊 = rand()%7 。 GetBox()。 //時(shí)間 = 560 。 //繪制模式 d3d_DeviceSetTextureStageState( 0 , D3DTSS_ALPHAARG1 , D3DTA_TEXTURE )。 d3d_DeviceSetTextureStageState( 0 , D3DTSS_ALPHAARG2 , D3DTA_DIFFUSE )。 d3d_DeviceSetTextureStageState( 0 , D3DTSS_COLORARG1 , D3DTA_TEXTURE )。 d3d_DeviceSetTextureStageState( 0 , D3DTSS_COLORARG2 , D3DTA_DIFFUSE )。第6行將資料清空?! 〉冢浮保葱校杭虞d背景圖及小方塊?! 〉冢保丁保缎校喝〉玫谝粋€(gè)小方塊?! 〉冢玻薄玻葱校篋irect Graphics的材質(zhì)操作基臺(tái)的設(shè)定。Tetris::GetBox()為取得方塊的函數(shù),說明:void Tetris::GetBox(){ int i 。 //﹚定控制基準(zhǔn)點(diǎn)初始位置 = 3 。 = 3 。 //定四個(gè)方塊位置 = 。 for( i = 0 。 i 4 。 i++ ) { [i].x = app_TetrisBox[ ][i].x 。 [i].y = app_TetrisBox[ ][i].y 。 } //下一個(gè)方塊 = rand()%7。 //時(shí)間初始化 = 。} 第5~6行:方塊基準(zhǔn)點(diǎn)為整個(gè)方塊群的原點(diǎn),所有小方塊均由方塊基準(zhǔn)點(diǎn)算出實(shí)際位置?!〉冢浮保承校喝〉梅綁K。 第15行:隨機(jī)取得下一個(gè)方塊。 第14行:定義方塊下落的時(shí)間。 方塊移動(dòng)并非實(shí)際上移動(dòng)每一個(gè)方塊,而是改變方塊的基準(zhǔn)點(diǎn)。所以在移動(dòng)時(shí),只要判斷移動(dòng)的方向是否已經(jīng)超出游戲框,或是否有其他的方塊,最后將基準(zhǔn)點(diǎn)減一就可以了。void Tetris::Move(){ if( == 3 )//左移 { if( IsDown( + 1 , )) ++ 。 }else if( == 7 )//右移 { if( IsDown( 1 , )) 。 } 第3~6行:判斷玩家是否按了右鍵,并判斷是否右移,如果是,將方塊基準(zhǔn)點(diǎn)加一 第7~10行:判斷玩家是否按了左鍵,并判斷是否左移,如果是,將方塊基準(zhǔn)點(diǎn)減一?!⌒D(zhuǎn)就是以方塊群為基準(zhǔn)旋轉(zhuǎn),計(jì)算新的位置,這里使用索引法計(jì)算新的位置。void Tetris::Rotation(){ //轉(zhuǎn)換矩陣 static const POINT ro[4][4] = { {{ 3 , 0 } , { 2 , 0 } , { 1 , 0 } , { 0 , 0 }}, {{ 3 , 1 } , { 2 , 1 } , { 1 , 1 } , { 0 , 1 }}, {{ 3 , 2 } , { 2 , 2 } , { 1 , 2 } , { 0 , 2 }}, {{ 3 , 3 } , { 2 , 3 } , { 1 , 3 } , { 0 , 3 }}, }。 int i 。 int gx , gy 。 POINT po[4] 。 //如果未按下第一個(gè)鍵,表示不旋轉(zhuǎn) if( ![0] ) return 。 //計(jì)算轉(zhuǎn)換后的位置 for( i = 0 。 i 4 。 i++ ) { po[i].x = ro[ [i].x ][ [i].y].x 。 po[i].y = ro[ [i].x ][ [i].y].y 。 //判斷是否在矩陣內(nèi),如果不在矩陣內(nèi)不轉(zhuǎn) gx = po[i].x + 。 gy = po[i].y + 。 if( !IsInRect( gx , gy )) return 。 //判斷是否有方塊 ,如果有則不旋轉(zhuǎn) else if( [gx][gy] ) return 。 } //旋轉(zhuǎn)成功,設(shè)定新資料 memcpy( , po , sizeof( po ))。}  第4~10行:根據(jù)上表列出的的索引數(shù)組。  第18~21行:利用索引數(shù)組取得旋轉(zhuǎn)后方塊的位置?! 〉冢玻场玻剐校号袛嘈牡梅綁K是否超出游戲邊框或該位置是否有方塊,格子中只要有一個(gè)不是空位就不旋轉(zhuǎn)?! 〉冢常残校河涗浶碌姆綁K位置。第六章 總結(jié) 在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識(shí)、經(jīng)驗(yàn)方面都存在著不足。另外,在整個(gè)開發(fā)的過程中,時(shí)間也比較倉(cāng)促。因此,該系統(tǒng)必然會(huì)存在一些缺陷和不足。雖然俄羅斯方塊是一款比較老的游戲。但是實(shí)現(xiàn)起來也可以增加很多功能例如選單,排行榜,音樂。由于時(shí)間有限。不能完成上述任務(wù)。希望以后能夠繼續(xù)游戲開發(fā)。將本游戲進(jìn)一步的完善。盡管游戲還存在不足。但是已經(jīng)可以實(shí)現(xiàn)俄羅斯方塊這個(gè)游戲的功能。我掌握了的項(xiàng)目過程,了解了的基本知識(shí)鞏固了我對(duì)Visual C++,但在這次畢業(yè)設(shè)計(jì)中的最大收獲并不是掌握這幾門開發(fā)工具的應(yīng)用,而是學(xué)會(huì)了設(shè)計(jì)系統(tǒng)的思維方法,以及與同學(xué)們之間相互幫助的精神。致謝經(jīng)過兩個(gè)月的緊張努力,在杜清珍老師的大力指導(dǎo)下,在其他同學(xué)的熱心幫助下,我終于完成了大學(xué)的最后一課——畢業(yè)設(shè)計(jì)。在這段時(shí)間里,我通過查閱書籍資料、請(qǐng)同學(xué)討論的方式完成了畢業(yè)設(shè)計(jì)。、嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格,使我深受啟發(fā);同時(shí),和同學(xué)之間的討論交流也使我獲益匪淺,在此,對(duì)給予我大力幫助的老師和同學(xué)表示我深深的謝意!還要在此感謝我的朋友:石治安、王恒,謝謝他們給我的支持!參考文獻(xiàn) (1) Michjaer Morrison , Beginning game programming 人民郵電出版社(2005年)(2) Mat Buckland .AI , Techniques for Game Programming 清華大學(xué)出版社(2006年)(3) Wolfgang F .Engel, Direct3D游戲編程入門 人民郵電出版社(2005年)(4) 丁展 ,Visual C++游戲開發(fā)與實(shí)例人民郵電出版社(2005年)
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1