c++游戲教程使用easyx做出大飛機(jī)
效果圖
這個(gè)打飛機(jī)小游戲素材都很一般,直接網(wǎng)上摳圖下來(lái)的。
但我們應(yīng)該學(xué)習(xí)一下怎么入門(mén)這一款經(jīng)典小游戲。
游戲?qū)ο?/h2>
首先游戲?qū)ο缶瓦@幾個(gè)東西
// 全局畫(huà)板 IMAGE bk; IMAGE BK; IMAGE Plane; IMAGE Diren; IMAGE Zidan;
這個(gè)游戲用到游戲插件easyX,我們想載入這幾個(gè)圖片。
//預(yù)加載資源,需要加載了之后才能用 void loadRes() { loadimage(&bk, _T("res\\bg.png")); loadimage(&BK, _T("res\\bg.png")); loadimage(&Plane, _T("res\\plane.png")); loadimage(&Diren, _T("res\\diren.png")); loadimage(&Zidan, _T("res\\zidan.png")); }
子彈和敵人的結(jié)構(gòu)體先設(shè)計(jì)好,其實(shí)就是用來(lái)控制他們的位置的。
struct ZIDAN { int x; int y; }; struct DIREN { int x; int y; };
子彈和敵人是否碰撞,這里需要寫(xiě)碰撞檢測(cè),其實(shí)就是幾點(diǎn)兩點(diǎn)之間的距離就可以,這是最經(jīng)典的碰撞算法。
bool isPeng(int x2,int y2,int x1,int y1) { int result=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); if(result<2500) { return true; } return false; }
子彈與敵人碰撞之后,敵人就毀滅。這里面只需要把敵人移出屏幕就可以,因?yàn)樽訌椇蛿橙硕际强梢灾貜?fù)利用的,所以最好做一個(gè)對(duì)象池,可以重復(fù)用上。
//判斷子彈和飛機(jī)是否相撞 for(i=0;i<8;i++) { for(int j=0;j<5;j++) { if(isPeng(zidans[j].x,zidans[j].y,direns[i].x+25,direns[i].y+15)) { direns[i].y = -100; } } }
需要wsad進(jìn)行控制搖桿,飛機(jī)飛行
if (_kbhit()) { char ch = _getch(); if (ch == 'w') { planeY-=5; } if(ch == 's') { planeY+=5; } if(ch == 'a') { planeX-=5; } if(ch == 'd') { planeX+=5; } }
以上就是c++游戲教程使用easyx做出大飛機(jī)的詳細(xì)內(nèi)容,更多關(guān)于c++ easyx飛機(jī)游戲的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue組件props屬性監(jiān)聽(tīng)不到值變化問(wèn)題
這篇文章主要介紹了vue組件props屬性監(jiān)聽(tīng)不到值變化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04Vue 使用typescript如何優(yōu)雅的調(diào)用swagger API
這篇文章主要介紹了Vue 使用typescript如何優(yōu)雅的調(diào)用swagger API,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中
這篇文章主要介紹了Nuxt如何實(shí)現(xiàn)將服務(wù)測(cè)數(shù)據(jù)存儲(chǔ)到Vuex中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10el-date-picker默認(rèn)結(jié)束為當(dāng)前時(shí)分秒的操作方法
在element?ui中的日期時(shí)間選擇組件中默認(rèn)是00:00,現(xiàn)在需求是點(diǎn)擊默認(rèn)結(jié)束時(shí)間為當(dāng)前時(shí)分秒,查了很多資料寫(xiě)的都不準(zhǔn)確?,今天給大家分享el-date-picker默認(rèn)結(jié)束為當(dāng)前時(shí)分秒的操作方法,感興趣的朋友一起看看吧2024-01-01Vue前端如何實(shí)現(xiàn)與后端進(jìn)行數(shù)據(jù)交互
這篇文章主要介紹了Vue前端如何實(shí)現(xiàn)與后端進(jìn)行數(shù)據(jù)交互,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行
這篇文章主要介紹了詳解webpack打包vue項(xiàng)目之后生成的dist文件該怎么啟動(dòng)運(yùn)行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09解決Vue2.0 watch對(duì)象屬性變化監(jiān)聽(tīng)不到的問(wèn)題
今天小編就為大家分享一篇解決Vue2.0 watch對(duì)象屬性變化監(jiān)聽(tīng)不到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09VUE3中h()函數(shù)和createVNode()函數(shù)的使用解讀
這篇文章主要介紹了VUE3中h()函數(shù)和createVNode()函數(shù)的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue項(xiàng)目中如何實(shí)現(xiàn)網(wǎng)頁(yè)的截圖功能?(html2canvas)
這篇文章主要介紹了vue項(xiàng)目中如何實(shí)現(xiàn)網(wǎng)頁(yè)的截圖功能?(html2canvas),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02