最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

不知道C++是如何從代碼到游戲的?以王者榮耀為例,來(lái)看看吧!

2021-01-15 19:35 作者:C語(yǔ)言編程__Plus  | 我要投稿

這個(gè)簡(jiǎn)單啊。

你既然問(wèn)C++了,那我問(wèn)你,現(xiàn)在,我有一個(gè)Student類。C++怎么創(chuàng)建一個(gè)學(xué)生類的對(duì)象?

//?嗯我會(huì)!有兩種方式:

Student?s;

Student?*s2?=newStudent("張三");


那好,現(xiàn)在這學(xué)生的行為有:吃飯,睡覺(jué),上網(wǎng)課?,F(xiàn)在你執(zhí)行個(gè)上網(wǎng)課的行為,怎么做?

//?簡(jiǎn)單啊

s2->upNetworkClass();

通過(guò)對(duì)象調(diào)用成員函數(shù)不就成了么。

嗯,上面的代碼在學(xué)校里都寫過(guò)吧?有這個(gè)基礎(chǔ)就夠了。

那游戲是啥?無(wú)非是一堆圖形堆疊唄,把上面的Student類換成窗體類,換成控件類,換成游戲中不同的元素類,然后再組合起來(lái)不就完了么。

吶現(xiàn)在,我告訴你,有一個(gè)窗體類,叫QWidget,它有一個(gè)行為叫show,可以顯示窗體。你給我生成一個(gè)窗體并顯示出來(lái)。那就照葫蘆畫瓢唄:

QWidget?*w?=newQWidget();

w->show();

來(lái)我們看看效果:


呀,有點(diǎn)意思哈?但是這距離游戲還差遠(yuǎn)呢啊。你這窗體也太丑了不是。

沒(méi)事,窗體丑不要緊,我們給她美化一下!

TDWidget * w = new TDWidget(":/img/welcome.png");

w->show();

QWidget換成了TDWidget,構(gòu)造函數(shù)里傳了一張圖片,沒(méi)超綱吧。再看看效果:


誒?事情好像開(kāi)始變得有趣了起來(lái)?

但還是不夠,我這是游戲,要交互的!你這一張死圖能干啥。

交互嘛!加個(gè)按鈕不完了?我給你一個(gè)按鈕類,這個(gè)類有一個(gè)move()行為,可以把自己移動(dòng)到畫面的任何地方。你知道你想要的按鈕怎么來(lái)了嗎?

QPushButton?*?btn?=newQPushButton("按鈕",w);//第二個(gè)參數(shù)代表它屬于哪個(gè)窗體,如果不寫,它就會(huì)生成在屏幕上而不是窗體里

btn->move(330,450);

瞅瞅:

em.......你這按鈕,有是有,畫風(fēng)有點(diǎn)突兀了吧。


沒(méi)事,再美化一下嘛:

TDPushButton?*btn?=newTDPushButton(

":/img/begin_normal.png",//?常規(guī)圖片

":/img/begin_hover.png",//?鼠標(biāo)懸停的圖片

":/img/begin_press.png",//?鼠標(biāo)按下的圖片

w);//?父控件

btn->move(330,450);

效果:


呀 可以啊。快快快,然后呢,點(diǎn)開(kāi)始游戲,進(jìn)入游戲界面!這個(gè)咋做?

嗯.....其實(shí)界面切換你自己已經(jīng)會(huì)了。

你這個(gè)界面不就是一個(gè)窗體,想切換界面的話.....你把這個(gè)窗體關(guān)了,再換張圖片開(kāi)一個(gè)新的不就完了。

新的窗體用一張傳新的圖片做背景,我再順手給加上四個(gè)按鈕,代碼不貼了,就是上面的代碼復(fù)制粘貼改改坐標(biāo),改改圖片:

接下來(lái)就是游戲的主體部分了,也巨簡(jiǎn)單,有圖就行:

TDMenuButton?*btn1?=newTDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);

btn1->move(100,100);

TDMenuButton?*btn2?=newTDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);

btn2->move(165,100);

TDMenuButton?*btn3?=newTDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);

btn3->move(100,165);

三個(gè)按鈕,和上面的TDPushButton沒(méi)區(qū)別,就是換成了TDMenuButton對(duì)不對(duì),沒(méi)超綱吧。

只要你的圖片夠美,就能生成這樣:


一個(gè)按鈕會(huì)寫,三個(gè)按鈕也會(huì)寫,既然學(xué)了點(diǎn)C++都想做游戲了,循環(huán)總會(huì)寫吧:

for(inti?=0;?i?<11;?i++)

{

for(intj?=0;?j?<6;?j++)

{

TDMenuButton?*?btn?=newTDMenuButton(":/img/1_normal.png",":/img/1_hover.png",":/img/1_selected.png",this);

btn->move(100+i*65,100+j*65);

}

}

效果:(密恐福利)


這.....怎么還有點(diǎn)一言難盡呢......

循環(huán)會(huì)寫,隨機(jī)數(shù)會(huì)寫嗎?隨機(jī)個(gè)頭像行嗎?


嗯......這下終于像點(diǎn)樣了。

最后再加億點(diǎn)點(diǎn)核心邏輯:點(diǎn)擊兩個(gè)相同的圖片,判斷它能不能連通,如果能連通,就把這兩個(gè)按鈕直接delete掉,效果就是醬紫:


就是這樣咯,從你學(xué)過(guò)的C++基礎(chǔ)語(yǔ)法,結(jié)合現(xiàn)有的框架控件,就可以擼這樣一個(gè)簡(jiǎn)單的連連看。

當(dāng)然了,為了點(diǎn)燃你題目里想要的學(xué)習(xí)熱情,我故意避開(kāi)一些以你現(xiàn)有知識(shí)可能聽(tīng)不懂的部分,還有一些邏輯比較繞的部分。比如:

避開(kāi)了注冊(cè)按鈕的回調(diào),

避開(kāi)了隨機(jī)生成圖片的時(shí)候要保證成對(duì)出現(xiàn)的算法,

避開(kāi)了把這些按鈕和數(shù)據(jù)做關(guān)聯(lián),

避開(kāi)了如何通過(guò)數(shù)據(jù)計(jì)算兩點(diǎn)能否連通,

等等

但這都不重要,不妨礙你簡(jiǎn)單體驗(yàn)一下C++是如何從代碼到游戲的這個(gè)過(guò)程。

如果你想更好的提升你的編程能力,好好學(xué)習(xí)C/C++編程知識(shí)成為高薪軟件開(kāi)發(fā)工程師的話!那么你很幸運(yùn)~

UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!

編程學(xué)習(xí)書籍:


編程學(xué)習(xí)視頻:



不知道C++是如何從代碼到游戲的?以王者榮耀為例,來(lái)看看吧!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宜阳县| 永兴县| 阿巴嘎旗| 霸州市| 嘉义县| 共和县| 荥经县| 平谷区| 三门峡市| 福安市| 开封县| 桦甸市| 沁水县| 保康县| 冷水江市| 邢台县| 龙井市| 丹棱县| 喀喇沁旗| 区。| 莱州市| 龙口市| 天峻县| 天气| 竹北市| 中江县| 海南省| 深圳市| 舞阳县| 普宁市| 宁化县| 潮安县| 长治市| 邵阳市| 珠海市| 嘉义市| 漠河县| 保康县| 潼关县| 高平市| 韩城市|