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

正文內(nèi)容

基于qt的貪吃蛇游戲設(shè)計與實現(xiàn)本科設(shè)計與實現(xiàn)(參考版)

2024-12-10 06:13本頁面
  

【正文】 setlabelsetPale。 QPalette pe1。 setlabelsetFont(QFont(Times,15,QFont::Black))。 setlabelsetAlignment(Qt::AlignCenter)。 //難度顯示器 setlabelsetFrameStyle(QFrame::Sunken | QFrame::Panel)。 //levelLabelsetGeometry(320,100,30,30)。 //等級標簽 北京郵電大學畢業(yè)設(shè)計 23 levelLabelsetFont(QFont(Times,15))。 //levelNumbersetGeometry(370,90,70,50)。 //等級顯 示器 levelNumbersetSegmentStyle(QLCDNumber::Flat)。 //設(shè)置顯示內(nèi)容 //scoreLabelsetGeometry(320,40,30,30)。 //分數(shù)標簽 scoreLabelsetFont(QFont(Times,15))。 //scoreNumbersetGeometry(370,30,70,50)。 //得分顯示器 LCD 數(shù)字顯示框 scoreNumbersetSegmentStyle(QLCDNumber::Flat)。 timeLabelsetText(Time:)。 timeLabel=new QLabel(this)。 初始化界面函數(shù) iniWidget() void Snake::iniWidget() { timeNumber=new QLabel(00:00:00)。初始化游戲時間為 00:00:00。 } 通過這個函數(shù)實現(xiàn)了 QWidget 的簡單屬性設(shè)置,包括 QWidget 的聚 焦及大小,初始化了貪吃蛇的運動范圍,默認設(shè)置游戲難度為禁止穿墻。 iniConnect()。hour=0。 //默認初始化難度設(shè)置為禁止穿墻 //初始化時分秒為 0 sec=0。 //設(shè)置貪吃蛇活動區(qū)域大小 map_col=Width/step。 //設(shè)置 QWidgt 大小 qsrand(QTime(0,0,0).msecsTo(QTime::currentTime()))。 北京郵電大學畢業(yè)設(shè)計 22 setFocusPolicy(Qt::StrongFocus)。 功能全面,如:開始新游戲、暫停、繼續(xù)、設(shè)置難度、查看游戲幫助 、退出游戲。易操作。為工作量繁大 的用戶提供一個簡單而有趣的小游戲。 游戲相關(guān)信息顯示函數(shù),實現(xiàn)彈出對話框,提示游戲相關(guān)信息 。 北京郵電大學畢業(yè)設(shè)計 21 操作信息顯示函數(shù), 實現(xiàn)彈出對話框,提示操作 說明 。 時間處理函數(shù),用于實現(xiàn)顯示游戲的時間 。 設(shè)置是否可穿墻函數(shù),將結(jié)果顯示在信息顯示界面 。 實現(xiàn)蛇在當前方向下向前移動一步,并調(diào)用判斷是否吃到食物函數(shù)、判斷是否死亡函數(shù) 。 鍵盤處理事件, 捕獲按鍵信號 ,并作出相應(yīng)的處理 。 繪圖事件,繪制貪吃蛇、食物 。 獲取隨機顏色 。 更新并顯示等級,每增加 10個食物,升一級,并提高速度 。 更新并顯示得分 。 用于初始化游戲,設(shè)置初始速度、等級、已吃食物數(shù)量及定時器等,并 隨機得到 貪吃蛇和食物 的初始坐標 。 通過之前的設(shè)置信息,判斷游戲是否結(jié)束 。 判斷貪吃蛇是否吃到食物 。 用于連接信號,使能夠在收到信號時,轉(zhuǎn)到相應(yīng)的函數(shù)處理 。 用于添加各類控件,并設(shè)置控件的屬性 。 Class Snake 的析構(gòu)函數(shù),用于釋放一些空間 。 Class Snake 的 構(gòu)造函數(shù) ,設(shè)置 QWidget 的初始化信息,貪吃蛇運動區(qū)域的大小,調(diào)用其他初始化函數(shù) 。 運行時間 蛇移動方法及食物的顏色變化長期占用資源,改變方向、吃到食物、產(chǎn)生新食物都是瞬發(fā)動作,只是瞬間占用系統(tǒng)資源。 信息顯示界面中的按鈕點擊事件,發(fā)出信號,設(shè)置貪吃蛇運動界面的限制性條件 。 系統(tǒng)的邏輯模型 系統(tǒng)的邏輯模型如圖 62 所示 圖 62 系統(tǒng)邏輯模型 功能與程序的關(guān)系 ,信息顯示界面。當你控制的貪吃蛇接觸到蛇的自身身體時或墻壁時,游戲結(jié)束。 處理流程圖 基本概述了整個游戲的流程,首先打開游戲,彈出游戲的標題畫面,等待游戲的加載,之后進入游戲運行界面,在此界面點擊右鍵會出現(xiàn)游戲幫助菜單、游戲關(guān)于菜單。 數(shù)據(jù) 字典 設(shè)計中用到的數(shù)據(jù)的名稱、類型、含義如表 61 所示。且鏈表的第一個元素表示蛇的尾部。節(jié)是蛇身上最小的單位。 設(shè)計基礎(chǔ) 在設(shè)計中用到了節(jié)、數(shù)組、坐標系來定義一些重要內(nèi)容,以便于程序的編寫。 蛇的移動 蛇的移動主要通過改變蛇的坐標位置,然后通過重繪蛇的位置,這樣就實現(xiàn)了蛇的移動 ,具體的為:從構(gòu)成蛇身的所有節(jié)點的最后一點開始,依次將前一個節(jié)點的坐標賦值為后一個節(jié)點,這樣就實現(xiàn)了蛇身的移動。 北京郵電大學畢業(yè)設(shè)計 16 6 貪吃蛇設(shè)計 系統(tǒng)的輸入輸出 輸入 在該程序設(shè)計中幾乎沒有什么從鍵盤你輸入的數(shù)據(jù),所有的程序所運用的數(shù)據(jù)都是有程序本身提供的,由用戶來選擇,程序?qū)⒏鶕?jù)用戶的選擇來處理相應(yīng)的數(shù)據(jù),如在玩家改變游戲設(shè)置的時候,程序會根據(jù)玩家選擇的設(shè)置來改變圍墻的可穿性。這時 ,由于沒有清屏的原因 ,原來蛇的位置和新蛇的位置差一個單位 ,所以看起來蛇會多一節(jié)身體 ,應(yīng)將蛇的最后一節(jié)用背景覆蓋。移動時必須從蛇頭開始 ,所以蛇不能向相反移動 ,也就是蛇尾不能改作蛇頭。這個程序的關(guān)鍵點是表示蛇的圖形以及蛇的移動。通過按鍵盤上的四個光標控鍵控制蛇向上下左右四個方向移動 ,蛇頭撞到食物 ,則表示食物被蛇吃掉 ,這時蛇的身體長一節(jié) ,同時計 10 分 ,接著又出現(xiàn)食物 ,等待被蛇吃掉。標題畫面以后,還要為游戲的運行部分作初始化,包括繪制游戲運行時的背景,對游戲某些重要變量的初始化。當設(shè)置游戲難度為可以穿墻時,蛇頭的位置坐標和自己身體的某個節(jié)點的坐標相同時,蛇就死掉了,游戲結(jié)束。 食物的出現(xiàn)是先確定一組隨機數(shù),再填充方格,食物的消失是由于使用了更新函數(shù),當吃掉食物后就不再重畫本次食物,而是生成一組新的隨機數(shù),畫新的食物 。用一個小矩形 塊 表示蛇的一節(jié)身體,身體每長一節(jié), 在身體最后 增加一個矩形塊。玩家可以通過鍵盤上下左右 控制游戲區(qū)中貪吃蛇的行動 ,當蛇頭碰到食物(和食物接觸)后增加蛇身的長度 ,當蛇碰到自己的身體或碰到墻壁時游戲結(jié)束。 特此說明,此軟件也可放在 Ubuntu 環(huán)境下運行。 北京郵電大學畢業(yè)設(shè)計 14 ( 3)蛇可以運動,隨著難易程度的不同,蛇的速度也不同;在界 面里可以隨機產(chǎn)生一個食物,但應(yīng)該注意不能和蛇身體一致,然后當蛇 移 動并吃掉這個食 物(覆蓋),蛇的身體應(yīng)該相應(yīng)地增加,同時界面中顯示分數(shù)一欄應(yīng)該相應(yīng)地增加分值;當蛇在移動的過程中頭部碰到墻壁,游戲結(jié)束。 ( 2)當游戲剛開始的時候,先應(yīng)該產(chǎn)生一條蛇和隨機產(chǎn)生一個食物。 要解決的問題 ( 1) 可以用上、下、左、右鍵游戲控制蛇的運動方向,使之向著有食物的方向運動,并吞吃食物使身體增長,如果蛇在移動過程中 ,撞到墻壁或身體交叉蛇頭撞到自己的身體游戲結(jié)束。 游戲主界面應(yīng)該力求美觀,賞心悅目。 游戲控制模塊: 主要完成游戲的開始、暫停、方向控制等功能。 需求規(guī)定 對功能的規(guī)定 本設(shè)計所開發(fā)的是基 于 C++的一個貪吃蛇游戲軟件,主要實現(xiàn)游戲的開始、暫停、退出功能,分為:游戲主界面模塊、游戲控制模塊兩個模塊。 用戶特點 由于本程序簡單易操作,交互性好,對用戶沒有什么特別要求。 游戲的主界面應(yīng)該力求簡明美觀,賞心悅目,以提高玩家對游戲的興趣。 北京郵電大學畢業(yè)設(shè)計 13 任務(wù)概述 目標 在如今社會,人們的工作 學習壓力逐漸增大,生活節(jié)奏逐漸加快,大多數(shù)人沒有足夠的時間去休閑娛樂,放松自己。雖然我的編程能力不是很強,但是我有信心,在這次學習中我將從實踐和實際的項目中提高自己的編程能力。 貪吃蛇是家喻戶曉的益智類小游戲,選擇這個題目一是為了將自己的所學知識加以運用,二是一直以來貪吃蛇這個游戲就深深地吸引著我,它的制作方法對于以前的我而言都是很神秘的??梢哉f該游戲的優(yōu)勢在于它的簡單易行,可以很快很順利的運行。因為它的特殊在于它能吸引人更深入,愛不釋手。因此,為了迎合眾多用戶的需求并適應(yīng)現(xiàn)在電腦的系統(tǒng),我們開發(fā)出一套適合各階層人士的具有很強娛樂性和交互性的貪吃蛇小游戲。 此需求分析說明書對貪吃蛇游戲軟件做了全面細致的用戶需求分析,明確所要開發(fā)的游戲軟件應(yīng)該具有的功能,并在此基礎(chǔ)上進一步提出概要設(shè)計說 明書和完成后續(xù)和開發(fā)工作。同時,需求過程與分析活動之間有相當程度的重疊,分析建模對于設(shè)定工作的范圍和其他一些事來說是必要的,所以我們利用分析模型來描述需求過程,隨著開發(fā)工作的繼續(xù),分析活動在工作中占的比例將變得越來越大,直到所有需求都已知。系統(tǒng)設(shè)計將來自于需求分析的抽象規(guī)格說明轉(zhuǎn)變?yōu)槊嫦蛘鎸嵤澜绲脑O(shè)計。 北京郵電大學畢業(yè)設(shè)計 12 4 需求分析 研究目的 需求分析是系統(tǒng)開發(fā)必要環(huán)節(jié),也是重中之重。 可行性研究方法 通過對周邊的企業(yè)職員和大學生進行問卷調(diào)查,發(fā)現(xiàn)大家在閑暇時間大都會選擇玩游戲來打發(fā)時間,而且偏向簡單靈活的小游戲。 C++: 是在 C語言的基礎(chǔ)上開發(fā)的一種集面向?qū)ο缶幊?、泛型編程和過程化編程于一體的編程語言 。 Qt Creator 可帶來兩大關(guān)鍵益處:提供首個專為支持跨平臺開發(fā)而設(shè)計的集成開發(fā)環(huán)境 (IDE),并確保首次接觸 Qt 框架的開發(fā)人員能迅速上手和操作。 Qt很容易擴展,并且允許真正地組件編程。 北京郵電大學畢業(yè)設(shè)計 11 專業(yè)術(shù)語 Qt:是一個跨平臺的 C++圖形用戶界面應(yīng)用程序框架。 經(jīng)濟可行性 貪食蛇主要是通過 QT 軟件編寫,在自己電腦上即可編寫實現(xiàn)。用戶使用此游戲也很簡單,游戲主要使用上下左右控制貪食蛇吞食界面上出現(xiàn)的食物,簡單容易上手,同時能鍛煉用戶的操作及靈敏。因此我選定了這個題目。我希望通過自己的所學知識把它剖析開來,真真正正的了解它的本質(zhì)和精髓。游戲也正在迅速成長為一個龐大的產(chǎn)業(yè)。過去,人們主要是借助電影、電視、音樂等方式來娛樂。 開發(fā)的可行性 目前,以計算機技術(shù)和網(wǎng)絡(luò)技術(shù)為核心的現(xiàn)代網(wǎng)絡(luò)技術(shù)已在現(xiàn)實生活和生產(chǎn)中得以廣泛的使用,休閑類網(wǎng)絡(luò)游戲集趣味性,娛樂性,互動性和益智性于一體,已經(jīng)成為多數(shù)人群的休閑方式。 該階段通過對系統(tǒng)目標的初步調(diào)研和分析,提出可行性方案并進行論證。 pos )信號返回點擊位置 pos(在表頭視口坐標系中位置),然后表頭即可調(diào)用 logicalIndexAt(pos)函數(shù)得到被點擊 section 對應(yīng)的 index即被點擊部分的列號,然后存下來可供后面 action 激活的排序槽使用。 使用 Qt::ActionsContextMenu 比較簡潔,但是如果需要根據(jù)當前菜單彈出的位置來定義不同菜單,或者像上個例子,在表格( QTableView 類型)表頭顯示右鍵菜單時,我需要知道是哪一列表頭被點擊,從而在后來調(diào)用 sort_ascend()排序函數(shù)時能夠根據(jù)不同列進行不同排序策略,那么 Qt::ActionsContextMenu 就做不到了。 3) 使用 Qt::ActionsContextMenu。但是對于 QAbstratScrollArea 及其子類例外,是對應(yīng)著其視口 viewport()的坐標系。 pos ) 該信號的發(fā)出條件是:用戶請求 contextMenu(常規(guī)就是鼠標右擊啦)且同時被擊的 widget 其 contextMenuPolicy 又是 Qt::CustomContextMenu。 它是發(fā)出 QWidget::customContextMenuRequested 信號,注意僅僅只是發(fā)信號,意味著要自己寫顯示右鍵菜單的 slot。就是要重寫 contextMenuEvent ( QContextMenuEvent * event )函數(shù)。繪制點 drawPoint()、繪制直線 drawLine()、繪制折線drawPolyLine()、繪制多點 drawPoints()、繪制多直線 drawLines()、繪制矩形區(qū)域drawRect()、繪制圓角區(qū)域 drawRoundRect()、繪制橢圓 drawEllipse()、繪制背景圖片 drawPixmap()等! 北京郵電大學畢業(yè)設(shè)計 9 右鍵菜單 QWidget及其子類都可有右鍵菜單,因為 QWidget 有以下兩個與右鍵菜單有關(guān)的函數(shù): Qt::ContextMenuPolicy contextMenuPolicy () const void setContextMenuPolicy ( Qt::ContextMenuPolicy policy ) 使用方式如下:
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1