0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

小白如何用C++制作網(wǎng)游DNF技能特效

算法與數(shù)據(jù)結構 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-27 15:30 ? 次閱讀

十年前,那時候的網(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)驗和指導往往會舉步維艱。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3634

    瀏覽量

    93857
  • C++
    C++
    +關注

    關注

    22

    文章

    2113

    瀏覽量

    73743

原文標題:實戰(zhàn)開發(fā):新手小白如何用C++制作經(jīng)典網(wǎng)游DNF

文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結構】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C++小白自學基礎教程之c++類型類型檢查加強12

    C++
    電子學習
    發(fā)布于 :2023年01月12日 21:19:47

    C++小白自學基礎課之簡單的C++程序helloworld02

    C++
    電子學習
    發(fā)布于 :2023年01月12日 22:27:52

    關于DNF CT寫法

    關于DNF CT寫法關于DNF CT寫法關于DNF CT寫法
    發(fā)表于 05-04 01:25

    何用STM32CubeMX生成底層代碼?代碼中C++的編寫要注意哪些事項?

    何用STM32CubeMX生成底層代碼?單片機代碼如何進行IDE的C++配置?代碼中C++的編寫要注意哪些事項?C++實現(xiàn)時候遇到的情況有哪些?
    發(fā)表于 07-01 06:22

    如何學習C++,如何學好C++

    最近,很多學員都給我發(fā)郵件問我應該如何學習C++,如何學好C++?那么作為一個從C語言小白摸爬滾打、入坑無數(shù)到成長為如今的高級C++游戲開發(fā)
    發(fā)表于 08-20 06:27

    何用C++編寫流水燈程序?

    為什么很少用C++開發(fā)單片機?如何用C++編寫流水燈程序?
    發(fā)表于 09-30 08:27

    請問MDK中如何用C++開發(fā)STM32?

    請問MDK中如何用C++開發(fā)STM32?
    發(fā)表于 10-22 06:03

    C語言C++運用

    。具備C/C++ 開發(fā)技能的工程師在行業(yè)內(nèi)屬于“稀缺”人才,而精通Unix 和Windows 雙系統(tǒng)開發(fā)技能C/
    發(fā)表于 11-25 10:47

    何用C++做一個TCP的服務器進行數(shù)據(jù)觀察及采集呢

    何用C++做一個TCP的服務器進行數(shù)據(jù)觀察及采集呢?有哪些設計步驟?
    發(fā)表于 12-23 09:41

    TuoboC/borland C++用戶界面程序設計

    TuoboC/borland C++用戶界面程序設計從實例入手,詳細介紹了如何用TuoboC/borland C進行用戶界面程序設計的一些技術和技巧。主要包括屏幕色彩的程序設計,點陣漢字及矢量漢字的多種
    發(fā)表于 10-09 16:48 ?126次下載
    TuoboC/borland <b class='flag-5'>C++</b>用戶界面程序設計

    C++的初步入門基礎教程免費下載

    非常詳細通俗易懂的C++學習資料,擁有它你可以從小白到大神實現(xiàn)華麗的變身
    發(fā)表于 03-06 08:00 ?5次下載
    <b class='flag-5'>C++</b>的初步入門基礎教程免費下載

    何用Bazel構建C++項目

    眾所周知,C/C++ 語言具備很強可移植性,作為高級的底層語言能兼容各式各樣的系統(tǒng)環(huán)境或應用。因此很多企業(yè)更偏向于將算法用 C/C++ 實現(xiàn),從而減少不同業(yè)務平臺下的算法維護成本。
    的頭像 發(fā)表于 11-18 17:23 ?5180次閱讀

    C++中如何用虛函數(shù)實現(xiàn)多態(tài)

    01 — C++虛函數(shù)探索 C++是一門面向對象語言,在C++里運行時多態(tài)是由虛函數(shù)和純虛函數(shù)實現(xiàn)的,現(xiàn)在我們看下在C++中如何用虛函數(shù)實現(xiàn)
    的頭像 發(fā)表于 09-29 14:18 ?1718次閱讀

    何用cplusplus來識別CC++編譯器

    C++程序引用過的話。 這與C++有什么關系呢? 看看__cplusplus(注意前面是兩個下劃線) 的名字你就應該知道它與C++有很大關系。__cplusplus是一個C++規(guī)范規(guī)定
    的頭像 發(fā)表于 07-06 14:13 ?2361次閱讀

    何用Arduino制作音樂

    電子發(fā)燒友網(wǎng)站提供《如何用Arduino制作音樂.zip》資料免費下載
    發(fā)表于 10-26 15:28 ?0次下載
    如<b class='flag-5'>何用</b>Arduino<b class='flag-5'>制作</b>音樂