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

正文內(nèi)容

基于vc的飛行模擬游戲的設計及實現(xiàn)畢業(yè)設計(doc畢業(yè)設計論文)-文庫吧資料

2025-06-30 06:42本頁面
  

【正文】 子彈的方向與飛機的速度方向取一致就可以了void Plane::fire (){ Bullet* b = mBFcreate (getBulletType(), getTeam())。 ()。}凡是玩過飛機游戲的人都知道,飛機是不能連續(xù)發(fā)射子彈的,在兩次發(fā)射子彈之間,必須要有一定的冷卻時間,而這個功能是由Plane類的一個update方法實現(xiàn),思路為:對 每一個飛機都設定一個定時器CoolTimer,初始值為 10,然后不斷對它進行檢查,只要 它的值不為0,就進行自減,如果某 個飛機有開火請求的話,就檢查定 時器的值是否為0,如果為0,則允 許開火,同時定時器的值復位為初 值,如果定時器的值不為0,則開火 請求無效,流程如下:圖 6 飛機開火冷卻流程同時,由于假定飛機只能向前運動,而不能向后運動,所以飛機的朝向向量也就必須和它的速度向量一致,在前面已經(jīng)介紹過,在設定Object類中設定了物體的速度為矢量,這樣就可以把飛機的朝向向量與其速度矢量取一致了if (getVelocity()length()) // 如果物體有速度,那么物體的朝向向量就根據(jù)他的速度來進行調(diào)整 { (0)。 mLeveladd (obj)。4.3.3 Plane 類的實現(xiàn)Plane 類是 Object 類的子類,它通過 Object 類公有繼承而來,所以,凡是 Object 類中有的方法和屬性,它也具有,當然,我們必須為起添加新的函數(shù)或者數(shù)據(jù),那么飛機相對于其他物體特有的屬性是什么呢?對,那就是它們死亡的時候會發(fā)生爆炸,它們也能發(fā)射子彈,而每種飛機所產(chǎn)生的爆炸類型和所發(fā)射的子彈類型都是不同的,所以,我們在 Plane 類中就設定幾個方法來設定物體的爆炸類型,所發(fā)射的子彈類型以及他們的速度飛機的死亡會產(chǎn)生爆炸,同時也會變得不可見void Plane::die(void) //死亡的實現(xiàn){ Object *obj = mEFcreate (mExplType)。 }通過這樣的方法,在前面提及的Level類中的update方法就可以成功地實現(xiàn)越界處理。// 單位化這個向量 velmultiply (dir)。 //返回舊的越界處理器 }setDirection 是用來設置物體的移動方向,這個方向為用來修改物體的當前運動速度void setDirection (Vector* dir) //指針指向新方向向量 { Vector* vel = getVelocity()。 mTracer = tr。4.3.2 Object 類的實現(xiàn)Object 類主要管理物體的可視性,速度,以及判斷設置物體的隊伍和判斷隊伍是否一樣等,他抽象了所有的物體,也就是說,其中所有的屬性和方法是一切物體都具有的,這樣做是為了增加代碼的重用量,這也是運用 C++開發(fā)游戲的好處之一,但是,這樣做就要求把 Object 類的析構函數(shù)設為虛函數(shù),這是因為如果不將析構函數(shù)設為虛函數(shù)的話,那么當用一個 Object 類的指針刪除一個其子類的對象時,子類的析構函數(shù)就不會被調(diào)用,雖然這樣做并沒有什么實際意義,但是這卻符合用 C++進行軟件開發(fā)的時候一般用來做基類的類的析構函數(shù)設為虛函數(shù)的默認規(guī)定,因此,需要將析構函數(shù)設為虛函數(shù)。關卡還需要實現(xiàn)兩個方法,那就是 getNearestEnemy 和getNumCompanies,它們主要是用來實現(xiàn)敵機的攻擊策略的,這里首先要聲明一下,當玩家,敵機和獎子類被創(chuàng)建時,都會獲取一個 ID,以表明其身份,同樣的,凡是通過這幾個類創(chuàng)建的對象也具有與其所屬類相同的 ID,通過這樣的方法,就可以把關卡中眾多的物體相互之間區(qū)分開。要添加,就必須要移出,所以相應的,也就有摧毀物體,比如在關卡結(jié)束后,我們需要摧毀關卡中所有的資源,所以我們定義一個 destroy 方法,摧毀關卡中的所有物體,釋放資源給資源管理器,比如圖片和聲音void destroy (dev::ResourceManager* rs);同時,關卡還需要處理玩家或者敵機的死亡,我們定義一個 processDie 的方法來實現(xiàn),流程如下圖 2 處理飛機死亡流程其中在判斷物體的類別,并且完成玩家和或者敵機的死亡后繼續(xù)判斷玩家的生命是否用盡和敵機數(shù)目是否為 0,這樣做的目的是為了避免在玩家和最后一個敵機同歸于盡的時候依然進入關卡結(jié)束事件。敵機添加完畢就需要創(chuàng)建玩家,玩家的位置是固定的,把玩家的坐標位置設置為:X 軸坐標設置為當前關卡 X 軸的二分之一,Y 軸坐標設置為當前關卡 Y軸最大值減 20psetPos (amp。//獲取物體運行時的類ID if (id==Enemy::ClassID)//如果物體是敵機,增加敵機數(shù)目 { mNumEnemies++。比如說,要設置一個使用第一張敵機圖片,掉落一個獎勵 20 分的獎子,爆炸類型為普通爆炸,發(fā)射小單發(fā)的子彈,可被攻擊 1 次,坐標為 60 80 的敵機,那么就在文本文件中輸入 1 3 1 0 1 60 80由于這里涉及設備層中的資源管理器,提供加載圖片和聲音的服務以及設備層中的鍵盤,提供輸入查詢,具體的實現(xiàn)將放到重要問題說明中詳細介紹。在關卡最初創(chuàng)建時,需要把敵機數(shù)目設置為 0,把關卡狀態(tài)設置為運行,同時應該關閉定時器。同時,在游戲運行中會發(fā)生不同的事件,也需要一一定義,由于游戲事件較多,同理,也需要定義一個枚舉類型來定義眾多的事件enum Event { E_RenewPlayer,//! 創(chuàng)建玩家,關閉所有事件 E_ReadyDelay,//! 顯示‘ready’前的等待,并啟動E_Ready 事件 E_Ready,//! 顯示‘ready’,啟動E_RenewPlayer 事件 E_LevelEnd,//! 使關卡處于完成狀態(tài),表示通關 E_LevelFailed,//! 使關卡處于失敗狀態(tài) E_LevelFailedDelay,//! 關卡失敗前的等待,并啟動E_LevelFailed 事件 E_LevelEndDelay,//! 關卡通關前的等待,并啟動E_LevelEnd 事件 }。6.Prize類主要實現(xiàn)玩家“吃”掉獎子后改變玩家屬性。4.Bullet類主要實現(xiàn)了子彈的創(chuàng)造。3.Plane類主要就是實現(xiàn)設定飛機的爆炸類型,子彈類型,實現(xiàn)開火以及設定開火冷卻時間,而其子類Enemy類則進一步實現(xiàn)了設定敵機的生命值和掉落的獎子類型。1.Level類主要實現(xiàn)負責管理游戲中的所有物體,包括管理顯示,碰撞,創(chuàng)建和回收等,還提供了一些服務,方便查詢關卡中的一些物體的信息。4.1.2 對游戲設計的初步認識整個設計的關鍵詞如下:游戲、飛機、敵機、子彈、關卡、玩家、獎子、屏幕、三發(fā)子彈、雙發(fā)子彈、改變玩家子彈類型變化的獎子、增加玩家生命的獎子、爆炸,這些關鍵字都需要定義一個獨立的類來描述它們,并且,可以把飛機類設定為敵機類和玩家類的父類,因為飛機類中的一些方法也可以用于敵機類和玩家類,同理,也應該把獎子類設定為改變玩家子彈類型變化的獎子類和增加玩家生命的獎子類的父類,至于子彈,則不必用到繼承和派生,因為無論是三發(fā)子彈還是雙發(fā)子彈,他們的屬性和功能都是一樣的,差別只是存在于視圖上。它也提供了浮點運算功能,3D 功能,文件管理功能和 GUI。3 開發(fā)環(huán)境介紹 開發(fā)環(huán)境操作系統(tǒng):Microsoft Windows XP程序語言:C++開發(fā)平臺:Visual C++ 2022開發(fā)工具:Allegro 關于 AllegroAllegro 是一個免費為 C 和 C++的開發(fā)人員提供的一個游戲編程庫,它支持以下操作系統(tǒng):DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS 和 MacOS X。可以說在這個時期,Visual C++在游戲開發(fā)領域是獨領風騷。Visual C++是一個很好的可視化編程工具,使用 Visual C++環(huán)境來開發(fā)基于 Windows 的應用程序大大縮短了開發(fā)時間,而且它的界面更友好,便于程序員操作。進入 21 世紀以來,隨著多媒體技術和圖像技術的不斷發(fā)展,可視化技術得到廣泛的重視,越來越多的計算機專業(yè)人員和非專業(yè)人員都開始研究并應用可視化技術。Visual C++不僅是 C++語言的集成開發(fā)環(huán)境,而且與 Win32 緊密相連,所以,利用 Visual C++開發(fā)系統(tǒng)可以完成各種各樣的應用程序的開發(fā),從底層軟件直到上層直接面向用戶的軟件。在 Visual Studio 中就有面向 Windows 開發(fā)使用的 Visual C++。是目前最流行的 Windows 平臺應用程序開發(fā)環(huán)境。適合于不同使用開發(fā)方法的編程人員。C++的最重要的特點是支持面向?qū)ο蟮某绦蛟O計,使用 C++編程,編程效率高;由于面向?qū)ο蟮姆椒ǜ咏祟愓J識世界的方法,C++對于問題更容易描述,程序更容易理解與維護;C++的模板對庫代碼的重用提供了支持;C++更有利于大型程序設計。因此,使用 C 語言的程序員能很快學會C++,使用 C++進行編程。C++改善了 C 語言的安全性,比 C 語言更安全。C++從 C 語言發(fā)展而來,保持了 C 語言的簡潔、高效和在某些操作上沿用了匯編語言指令的特點。C++語言的標準化工作從 1989 年開始,于 1994 年制定了 ANSI C++標準草案。C++的另一個目標是支持面向?qū)ο蟮某绦蛟O計,因此在C++中引入了類的機制。T 貝爾實驗室的 Bjarne Stroustrup 博士創(chuàng)建。在國際市場上,2022 年國產(chǎn)軟件出口額為 億美元,僅占全球軟件市場份額的 %。 相比于其他國家,我國的軟件產(chǎn)業(yè)特別是游戲產(chǎn)業(yè)起步較晚,在很多地方上都不及一些軟件大國,但是近年來我國軟件業(yè)發(fā)展迅速,有關統(tǒng)計數(shù)據(jù)顯示,2022 年,軟件產(chǎn)業(yè)銷售收入僅為 796 億元,到了 2022 年年底已經(jīng)達到 4800 億元,5 年增長了 6 倍多。英國列第三,1999年的軟件產(chǎn)值為 億美元,占其 GDP 的 %,出口約 億美元。美國是世界上最大的軟件生產(chǎn)國,1997 年的軟件產(chǎn)值為 億美元,占其當年 GDP 的 %,出口額為 億美元。近年來,主要國家軟件業(yè)平均以 11%以上的增長率快速發(fā)展。 本課題研究的方法采用 Microsoft Visual C++2022 為開發(fā)平臺,在利用已有的開發(fā)包和已有的游戲框架的基礎上,這些開發(fā)包和框架已經(jīng)完美地解決了游戲圖像和音效方面的問題,設計的主要工作就是添加自己所設計的類,用于實現(xiàn)本設計所要實現(xiàn)的功能,在進行類的設計時,運用 C++所具有的繼承和派生功能,使很大一部分代碼能夠得到重用,同時,還要在父類中很好地引入虛函數(shù),為指針能夠子類的同名成員提供方便,最后利
點擊復制文檔內(nèi)容
范文總結(jié)相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1