崔志斌 成榮榮 李珂
摘要:文獻1主要說明了用類Element實現(xiàn)游戲的組件按鈕和計時器,類GamePad進行游戲的布局安排[1]。該文主要闡述用類Plane設定游戲角色的相關內(nèi)容,角色分為我方飛機和敵方飛機。
關鍵詞:Plane;游戲角色;類
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2017)36-0058-02
Abstract: Document 1 mainly describes the use of class components to achieve the game components button and timer, class GamePad is used to layout the game arrangement[1]. This article mainly describes the use of class Plane setting the role of the relevant content of the game,the role is divided into our aircraft and enemy aircraft.
Key words: Plane; the role of game; class
1 設定位置和速度
在實現(xiàn)角色之前,有兩步工作需要完成,第一,需要預先設定好角色出場時所處的位置,簡單的設一個可以返回當前坐標點的函數(shù):
2 設定角色
在基本工作實現(xiàn)之后就是設置角色,導入角色的圖片路徑、圖片繪制的區(qū)域和備選圖形區(qū)域之后繪制角色:
3 移動效果
移動的基本理論是根據(jù)不斷變動的坐標點,將圖片按照坐標所在的位置進行重繪,在控制敵機的移動,需要達到一個隨機路徑的效果,首先定義幾組軌跡函數(shù):
函數(shù)moveForward()分別對飛機移動的四個方向Up、Down、Left、Right的坐標點進行處理,因此當對應鍵盤事件觸發(fā)之后,就可以實現(xiàn)飛機在界面中移動的視覺效果。另外選擇條件switch中還有一個條件 Track,用于規(guī)定敵機移動的隨機路線,四個索引值對應四組路徑軌跡:索引1對應雙曲線,索引2對應拋物線,索引3對應圓形路徑。當路徑是曲線是可以定義曲線的焦點以方便控制曲線的軌跡范圍。
為了使飛機在移動過程中顯示的連貫性,同樣通過計時器處理飛機的移動刷新,假設刷新時間設定為20ms一次,人眼視覺暫留時間約為0.05至0.2秒,因此,在20ms的時間中我們看上去的飛機就是流暢的在移動。游戲運行時界面上飛機移動的動態(tài)感如圖1所示。
為了實現(xiàn)子彈的連發(fā)效果,使用了容器類QList,QList
同類型的多個對象的控制,一般通過鏈表進行控制,其存儲方式與QList一致,在未使用容器控制的情況下,可以采用鏈表方式控制。鏈表(link list)就一些包含數(shù)據(jù)的獨立的數(shù)據(jù)結構的集合,鏈表的實現(xiàn)方法主要使用結構和指針。其每個節(jié)點通過鏈或指針聯(lián)系在一起。通常通過指針訪問鏈表中的節(jié)點,一次程序一般通過指針來遍歷鏈表。[3]
4 爆炸效果
主要通過索引moveingActIndex的遞增,不斷找出索引值對應的爆炸效果區(qū)域,不斷刷新產(chǎn)生爆炸效果動畫。
5 結束語
本文主要闡述類Plane安排游戲的角色,角色分為我方飛機和敵方飛機。用類Plane的不同函數(shù)分別設計了角色、位置和速度、移動效果以及爆炸效果,實現(xiàn)了游戲角色安排。
參考文獻:
[1] 成榮榮,崔志斌, 楊克香. 基于QT的飛行射擊游戲的實現(xiàn)[J]. 電腦知識與技術, 2017, 13(32):89-91
[2] 楊盛毅, 文方, 師嬌. 實時數(shù)據(jù)曲線繪制的Qt編程實現(xiàn)[J]. 四川大學學報:自然科學版, 2008, 45(2):61-64.
[3] 譚浩強. C++程序設計[M]. 北京: 清華大學出版社, 2006.