十年前,那時候的網(wǎng)吧還不叫網(wǎng)咖,那時候沒有王者榮耀也沒有英雄聯(lián)盟,那時候夢幻西游剛推出珍寶閣系統(tǒng),那時候巫妖王的靈魂還封閉在冰封王座。
尋仙、穿越火線、征途、天龍八部……同時在線人數(shù)超百萬的游戲紛紛涌現(xiàn),那個中國網(wǎng)游群芳斗艷的年代,地下城與勇士無疑是最耀眼的那個。
DNF當年有多火?那年小編還在讀初中,跟同學去網(wǎng)吧,一排排全是在玩DNF,當時有人爆了一把雙龍魔影光劍,整個網(wǎng)吧都炸了,一個地主家的傻兒子當即把手機押那兒,然后沖回家再取800塊,一出門就摔了一跤,滋溜就爬起來繼續(xù)跑,一邊跑一邊喊千萬別賣給別人……
不過呢,玩游戲不如做游戲,再牛逼的游戲號在程序員的眼里就是一堆代碼,所以今天呢,小編要跟大家說說如何進行游戲開發(fā)。
作為一款橫屏格斗游戲,絢麗的畫面和流暢的動作是DNF的精髓,那么我們先從畫面和動作著手。
關于GDI的初步認知
什么是GDI,GDI是windows與生俱來的圖形設備接口(GraphicsDeviceInterface)的英文縮寫,主要任務是負責系統(tǒng)與繪圖程序之間的信息交換,處理所有Windows程序的圖形和圖像輸出。
利用它我們可以很輕松的在屏幕上繪制圖形了。也能利用它開發(fā)一些繪制要求不高的游戲,比如小時候玩的魂斗羅,超級瑪麗啊等小游戲,或一些RPG(角色扮演類)小游戲,我們都是可以用GDI制作的。
雖然LOL,DNF,QQ炫舞等這些游戲是DirectX或OpenGL這類圖形接口,但對新手小白來說最簡單的還是GDI。
準備一張BMP格式的背景圖片,創(chuàng)建一個窗體,在窗體上進行繪制,然后通過GetDC函數(shù)來獲取窗體的設備環(huán)境DC
獲取設備環(huán)境后,還需要在內(nèi)存中創(chuàng)建一個設備環(huán)境,我們在內(nèi)存中畫圖,畫好以后,直接拷貝到窗體的設備環(huán)境上
關于初步動畫實現(xiàn)
3D是渲染的藝術,具備動畫狀態(tài)機和混合樹的方案在如今基本是標配,如常見的Unity的Mecanim,UE4的Animation Blueprint。
那如何利用GDI在游戲中實現(xiàn)動畫效果呢?
2D游戲是貼圖的藝術,貼圖基本有兩種方式,一種采用定時器,一種則是利用消息循環(huán),目前都是采用的第二種繪制方式(消息循環(huán)),也就是說游戲中的動畫都是一幀一幀的帖上去的,就像放電影一樣。
例如這個動畫(素材來自DNF),通過一個數(shù)組把他們保存起來,然后依次播放。下面是部分代碼:
運行效果圖:
是不是感覺還不錯呢?其實地下城與勇士這類游戲是比較適合新手小白開發(fā)的,相比于3D游戲的骨骼動畫,2D橫版游戲的序列幀更簡便。
在這個娛樂化時代,游戲已經(jīng)融入到我們的生活成為了一種生活方式,游戲開發(fā)也是當下和未來絕對熱門的行業(yè),但是對于初學者而言呢,缺乏經(jīng)驗和指導往往會舉步維艱。
-
編程
+關注
關注
88文章
3634瀏覽量
93857 -
C++
+關注
關注
22文章
2113瀏覽量
73743
原文標題:實戰(zhàn)開發(fā):新手小白如何用C++制作經(jīng)典網(wǎng)游DNF
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結構】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論