發(fā)布時(shí)間:2023-11-27 10:40:34 瀏覽量:169次
不關(guān)注我們?那你會(huì)錯(cuò)過(guò)很多哦!
本期《一碳科技》為大家?guī)?lái)一篇關(guān)于“C++小游戲”的教程,此次教程是承接上一篇文章的,上一篇文章講的是“坦克大戰(zhàn)”小游戲,但是只是給大家講了繪制坦克圖形的那一部分,所以今天這篇文章將帶大家繼續(xù)深入學(xué)習(xí)如何制作一個(gè)小游戲。
此次教學(xué)把上一次繪制坦克圖形的方法重新設(shè)計(jì)了一遍,具體實(shí)現(xiàn)方法可以先關(guān)注《一碳科技》,私信“繪制坦克圖形源碼”即可獲取源碼。
在制作C++小游戲的過(guò)程中,相信大家最多的疑問(wèn)是關(guān)于“如何使坦克轉(zhuǎn)向”的吧?其實(shí),實(shí)現(xiàn)這個(gè)功能并不難,只要基礎(chǔ)打得牢的小伙伴都可以實(shí)現(xiàn)。這里面主要設(shè)計(jì)兩個(gè)函數(shù),一個(gè)是kbhit(),一個(gè)是getche()。
kbhit()函數(shù)的功能是檢測(cè)當(dāng)前鍵盤(pán)是否按下,如果鍵盤(pán)被按下了,它就會(huì)返回一個(gè)非零值,反之,則返回一個(gè)0值。getche()函數(shù)用于獲取立即獲取當(dāng)前輸入控制臺(tái)的字符,這兩個(gè)函數(shù)是怎么配合的呢?kbhit()是一個(gè)非都塞函數(shù),這是什么意思呢?就是說(shuō)這個(gè)函數(shù)不論你的鍵盤(pán)有沒(méi)有按下,他都不會(huì)處于等待狀態(tài),例如scanf()函數(shù),如果你沒(méi)有向控制臺(tái)輸入的話,它就會(huì)一直處于等待狀態(tài),知道你的“回車(chē)”按下,才會(huì)繼續(xù)執(zhí)行下一段代碼。
當(dāng)if語(yǔ)句檢測(cè)到kbhit()函數(shù)返回一個(gè)非零值之后,就會(huì)調(diào)用getche()函數(shù)獲取當(dāng)前輸入控制臺(tái)的字符,進(jìn)而使用swicth()語(yǔ)句來(lái)判斷方向。
要繪制我們的坦克,就需要用到EasyX圖形庫(kù),具體安裝方法可以上網(wǎng)查一查,有很多教程。
首先,我們先用畫(huà)圖工具畫(huà)一個(gè)坦克出來(lái),具體怎么畫(huà)依個(gè)人愛(ài)好決定,下面是小編畫(huà)的一個(gè)坦克圖形(有點(diǎn)丑?。?/p>
玩家坦克就是我們操控的坦克,而我們還需要畫(huà)幾個(gè)“敵方坦克”,所以接下來(lái)我們?cè)诋?huà)一個(gè)坦克,這個(gè)坦克要與玩家坦克區(qū)別開(kāi)來(lái),除此之外,我們還需要畫(huà)一個(gè)“炮彈”,小編畫(huà)了一個(gè)正方形充當(dāng)“炮彈”。
加載坦克圖形并顯示,需要用到了兩個(gè)EasyX圖形庫(kù)的函數(shù),分別為loadimage()和putimage()函數(shù),loadimage()將我們的圖片加載到一個(gè)IMGE結(jié)構(gòu)體里面,而putimage()函數(shù)負(fù)責(zé)將IMAGE里面的圖片顯示到繪制區(qū)域中。
loadimage(),可以接收5各參數(shù),在這里小編只使用4個(gè)參數(shù)就可以了,最后一個(gè)參數(shù)可以默認(rèn),第一個(gè)參數(shù)是IMAGE,第二個(gè)是資源的地址,第三個(gè)是圖片的寬,第四個(gè)是圖片的高。
putimage(),接收三個(gè)參數(shù),第一個(gè)是圖片顯示的X坐標(biāo),第二個(gè)是圖片顯示的Y坐標(biāo),第三方個(gè)參數(shù)是IMAGE。
以下是坦克繪制的游戲界面(僅僅是坦克)
我們要如何使坦克移動(dòng)起來(lái)呢,小編這里使用了while()循環(huán),每一次循環(huán)就是我們游戲畫(huà)面的一幀,不斷地再循環(huán)里面判斷坦克移動(dòng)方向,然后通過(guò)對(duì)坦克圖形繪制的X、Y坐標(biāo)的改變,來(lái)使的坦克圖形呈現(xiàn)出不斷移動(dòng)的效果。
以上是示意代碼
先關(guān)注《一碳科技》,然后私信關(guān)鍵字“繪制坦克圖形源碼”即可。
熱門(mén)資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢(xún)報(bào)名。
2. 手機(jī)游戲如何開(kāi)發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說(shuō)明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵?lái)試試!
4. Steam值得入手的武俠游戲盤(pán)點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛(ài)恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)畫(huà)軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫(huà)軟件或動(dòng)畫(huà)工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫(huà)的軟件程序。但是,在3D動(dòng)畫(huà)軟件中還包含了其他類(lèi)型的...
7. 3D動(dòng)漫建模全過(guò)程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫(huà)的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開(kāi)發(fā)一款游戲(游戲開(kāi)發(fā)入門(mén)必看:五大獨(dú)立游戲開(kāi)發(fā)技巧)
?游戲開(kāi)發(fā)入門(mén)必看:五大獨(dú)立游戲開(kāi)發(fā)技巧無(wú)論您是剛剛起步開(kāi)發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開(kāi)發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無(wú)論你對(duì)游戲有著什么樣的概念,都
9. 開(kāi)發(fā)三昧游戲叫什么(三昧動(dòng)漫)
?三昧動(dòng)漫對(duì)于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
最新文章
同學(xué)您好!