《基于Qt的俄羅斯方塊游戲》由會員分享,可在線閱讀,更多相關(guān)《基于Qt的俄羅斯方塊游戲(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于Qt的俄羅斯方塊游戲開發(fā)湖南工學(xué)院電氣與信息工程學(xué)院答辯人:曾奇凡專業(yè):電子信息工程指導(dǎo)老師:戴日光 設(shè)計任務(wù)與要求可行性研究Qt簡要介紹游戲詳細(xì)設(shè)計與實現(xiàn)游戲整體測試程序設(shè)計流程致謝 設(shè)計任務(wù)要求游戲的開始,停止,暫停,繼續(xù)游戲難度的設(shè)計分?jǐn)?shù)統(tǒng)計游戲顯示 可行性研究操作系統(tǒng):Microsoft Windows 7 Ultimate(32位)內(nèi)存:2G硬盤:320GCPU:奔騰P6100交互工具:鍵盤/鼠標(biāo) 顯示器:WXGA顯示器開發(fā)工具:Qt 4.7.4開 發(fā) 環(huán) 境 接 口 控 制本游戲通過鍵盤進(jìn)行操作,在Windows的操作系統(tǒng)下,利用鍵盤的上、下、左、右鍵對方塊進(jìn)行移動變形,要使用
2、鍵盤的接口事件。 Qt簡介 Qt是一個跨平臺的C+圖形用戶界面的應(yīng)用開發(fā)框架。它支持windows、linux/unix平臺、macintosh、Embedded平臺等,所以Qt所開發(fā)的應(yīng)用具有良好地可移植性。 Qt的 優(yōu) 良 特 性可移植性國際化 面向?qū)ο罂捎脩艋耐庥^ 獨有的Signal Slot機制開發(fā)程序的方便性強大的功能 高性能的工具 信號與槽的連接原理圖 定義一個枚舉類型,表示方塊的七種形狀,通過圖形實體類TetrixPiece的setRandomShape()方法隨機產(chǎn)生一個初值,用于產(chǎn)生圖形的某種狀態(tài),如圖:隨 機 產(chǎn) 生 一 個 數(shù)隨 機 數(shù) Z字 形 S字 形 直 線 型
3、T字 形 正 方 形 L字 形 反 L型 游戲詳細(xì)設(shè)計圖 形 的 產(chǎn) 生 每個形狀由4個小方塊組成,這里每行的四個坐標(biāo)即4個小方塊的坐標(biāo),其中橫向為X,縱向為Y,上圖分別為Z字形、S字形、直線型、T字形、正方形、L字形和反L字形,各個圖形的坐標(biāo)依次如 下: 0, -1 , 0, 0 , -1, 0 , -1, 1 , 0, -1 , 0, 0 , 1, 0 , 1, 1 , 0, -1 , 0, 0 , 0, 1 , 0, 2 , -1, 0 , 0, 0 , 1, 0 , 0, 1 , 0, 0 , 1, 0 , 0, 1 , 1, 1 , -1, -1 , 0, -1 , 0, 0 , 0
4、, 1 , 1, -1 , 0, -1 , 0, 0 , 0, 1 圖 形 的 旋 轉(zhuǎn)圖形的旋轉(zhuǎn)是通過繪制4 個方向的方塊,在不同旋轉(zhuǎn)角度顯示不同方向的方塊來實現(xiàn)的。定義一個函數(shù)rotatedLeft() const,當(dāng)每次響應(yīng)鍵盤向上的方向鍵時,方塊順時針旋轉(zhuǎn)90度,同時畫布刷新一次,這樣,方塊的變形就實現(xiàn)了。 方塊下移功能:判斷圖形能否向下移動,顯示下移后的界面,或者游戲結(jié)束。實現(xiàn):先向下移動一步,此時并不在界面上顯示下移后的界面,判斷是否到底,若到底則消行記錄分?jǐn)?shù)、出現(xiàn)下一個圖形;判斷是否是否一開始就與其它圖形重合,若是則游戲結(jié)束;經(jīng)過以上判斷,此時方可顯示一下一步后的界面,并進(jìn)入下一次
5、計時,流程圖如圖所示: 滿行及消行判斷功能:判斷是否有已滿行,然后把該行消去。實現(xiàn):游戲在方塊下移到底后,利用循環(huán)判斷有幾行已滿,并對已滿行進(jìn)行清零和進(jìn)行加分操作,同時更新窗口,從而實現(xiàn)消行的效果。 繪 制 游 戲 區(qū) 域 及 方 塊通過調(diào)用QPainter的drawLine的方法繪制游戲網(wǎng)格,調(diào)用QPainter的drawPixmap和drawRect繪制方塊背景和邊框。 鍵 盤 事 件 響 應(yīng) 俄羅斯方塊是通過上下左右來控制游戲的運行,鍵盤響應(yīng)事件功能圖如圖所示: 鍵盤事件功能圖具體代碼實現(xiàn):通過重新實現(xiàn)虛函數(shù)QWidget:keyPressEvent來響應(yīng)相應(yīng)的鍵盤按鍵事件。判 斷 按
6、鍵判 斷 可 否 變形 , 圖 形 變化 調(diào) 用 函 數(shù) 判 斷 可 否移 動 。 可以 則 移 動 判 斷 可 否移 動 。 可以 則 移 動 可 以 則 默 認(rèn)下 移 一 步 ,否 則 下 到 底 不 是 這 4個 按鍵 , 則 接 收其 他 按 鍵 。 游戲主窗體的實現(xiàn)游 戲 主 窗 體 是 整 個 游 戲 的 顯 示 部 分 , 主 要 用 于放 置 繪 制 好 的 游 戲 區(qū) 域 , 顯 示 游 戲 玩 家 的 得 分情 況 、 關(guān) 卡 和 其 它 基 本 信 息 。 游 戲 區(qū) 域 的 寬 分成 10等 分 , 高 分 成 22等 分 , 也 就 是 說 每 行 有 10小 矩 形
7、 , 總 共 有 22行 ( BoardWidth = 10, BoardHeight = 22) 。 左 邊 是 LCD的 顯 示 部 分 ,LCD的 顯 示 最 大 為 五 位 數(shù) 。 分 為 得 分( scoreLcd) 、 關(guān) 卡 ( levelLcd) 、 消 行( linesLcd) 。 另 外 , 主 窗 體 還 設(shè) 計 了 游 戲 的選 項 按 鈕 , 方 便 游 戲 者 的 操 作 。游 戲 的 設(shè) 計 是 在 Qt中 整 個 工 程 下 完 成 的 , 游 戲設(shè) 計 完 成 后 , 系 統(tǒng) 源 文 件 布 局 如 圖 所 示 : 系統(tǒng)源文件布局圖 整體測試游戲基本功能測試游
8、 戲 設(shè) 計 完 成 后 經(jīng) 過 我 的 測 試 , 基 本 的 功 能 全 部都 已 經(jīng) 實 現(xiàn) , 點 擊 “ 開 始 ” 按 鈕 后 , 游 戲 的 界 面 如下 圖 : 操 作 演 示 圖 游 戲 基 本 信 息 顯 示 游戲可移植性的測試由于Qt是一個跨平臺的開發(fā)工具,利用Qt開發(fā)的程序具有可移植性,為了驗證游戲能在不同的系統(tǒng)下運行,我將游戲移植到Cent OS5.6下進(jìn)行測試,發(fā)現(xiàn)游戲能夠完美運行,且不用作任何更改,運行結(jié)果如圖下: 游 戲 在 Cent OS上 的 測 試 測試結(jié)果分析 經(jīng)過測試,俄羅斯方塊游戲能在不同的操作平臺上運行,并且游戲的基本功能都已經(jīng)實現(xiàn)了,不過整體功能還不是很強大,作為游戲開發(fā)的初級版本,游戲在很多方面還需要進(jìn)一步完善。 謝謝觀看!Thanks!