实战开发:新手小白如何用C++制作经典网游DNF

2018 年 3 月 20 日 算法与数据结构

十年前,那时候的网吧还不叫网咖,那时候没有王者荣耀也没有英雄联盟,那时候梦幻西游刚推出珍宝阁系统,那时候巫妖王的灵魂还封闭在冰封王座。


寻仙、穿越火线、征途、天龙八部……同时在线人数超百万的游戏纷纷涌现,那个中国网游群芳斗艳的年代,地下城与勇士无疑是最耀眼的那个。

DNF当年有多火?那年小编还在读初中,跟同学去网吧,一排排全是在玩DNF,当时有人爆了一把双龙魔影光剑,整个网吧都炸了,一个地主家的傻儿子当即把手机押那儿,然后冲回家再取800块,一出门就摔了一跤,滋溜就爬起来继续跑,一边跑一边喊千万别卖给别人……

不过呢,玩游戏不如做游戏,再牛逼的游戏号在程序员的眼里就是一堆代码,所以今天呢,小编要跟大家说说如何进行游戏开发。


作为一款横屏格斗游戏,绚丽的画面和流畅的动作是DNF的精髓,那么我们先从画面和动作着手。


关于GDI的初步认知


什么是GDI,GDI是windows与生俱来的图形设备接口(GraphicsDeviceInterface)的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。


利用它我们可以很轻松的在屏幕上绘制图形了。也能利用它开发一些绘制要求不高的游戏,比如小时候玩的魂斗罗,超级玛丽啊等小游戏,或一些RPG(角色扮演类)小游戏,我们都是可以用GDI制作的。


虽然LOL,DNF,QQ炫舞等这些游戏是DirectX或OpenGL这类图形接口,但对新手小白来说最简单的还是GDI。


准备一张BMP格式的背景图片,创建一个窗体,在窗体上进行绘制,然后通过GetDC函数来获取窗体的设备环境DC

获取设备环境后,还需要在内存中创建一个设备环境,我们在内存中画图,画好以后,直接拷贝到窗体的设备环境上


关于初步动画实现


3D是渲染的艺术,具备动画状态机和混合树的方案在如今基本是标配,如常见的Unity的Mecanim,UE4的Animation Blueprint。


那如何利用GDI在游戏中实现动画效果呢?


2D游戏是贴图的艺术,贴图基本有两种方式,一种采用定时器,一种则是利用消息循环,目前都是采用的第二种绘制方式(消息循环),也就是说游戏中的动画都是一帧一帧的帖上去的,就像放电影一样。


例如这个动画(素材来自DNF),通过一个数组把他们保存起来,然后依次播放。下面是部分代码:

运行效果图:

是不是感觉还不错呢?其实地下城与勇士这类游戏是比较适合新手小白开发的,相比于3D游戏的骨骼动画,2D横版游戏的序列帧更简便。


在这个娱乐化时代,游戏已经融入到我们的生活成为了一种生活方式,游戏开发也是当下和未来绝对热门的行业,但是对于初学者而言呢,缺乏经验和指导往往会举步维艰。


所以今天小编特意给大家带来一堂

C++游戏实战开发直播分享课

在开发过程中,我们会用到C/C++语言、Win32窗口创建、消息机制、GDI三缓冲绘图原理等知识点。


●学习过程中你能学会:

       1.使用API函数创建好Win32窗口。

       2.将准备好的游戏素材加载到程序中。

       3.使用GDI图形设备接口函数绘制地图与角色。

       4.利用C/C++语法结合数据结构与算法算法处理游戏数据。

       5.编写游戏逻辑。


●学习成效:

       1.跳出控制台,在界面编程中去锻炼自己的逻辑思维能力。

       2.了解windows程序设计的基本框架。

       3.可尝试去开发各种界面化的程序,例如雷霆战机,俄罗斯方块,坦克大战等等。


C++游戏开发课程领取方式

长按或扫描识别下方二维码

加入C++学习交流群即可免费获取

C++学习交流群

不定期有Socket编程和Hook(钩子)编程等网络黑客技术、腾讯内部核心技术比如QQ截图系统、编写雷霆战机等经典游戏的免费知识分享课。

登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
102+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
60+阅读 · 2020年6月26日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
77+阅读 · 2020年6月22日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
169+阅读 · 2020年3月27日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
195+阅读 · 2020年3月12日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
142+阅读 · 2020年2月16日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
166+阅读 · 2019年10月28日
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
人脸识别入门实战
人工智能头条
4+阅读 · 2018年12月12日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
刚开始学编程?这几款小工具能让你事半功倍
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
荐书丨Python数据分析从入门到精通
程序人生
18+阅读 · 2018年3月31日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
资源 | 适合AI新手的9款人工智能开源软件
AI100
3+阅读 · 2017年11月13日
Arxiv
4+阅读 · 2018年6月14日
Arxiv
13+阅读 · 2018年1月11日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
102+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
60+阅读 · 2020年6月26日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
77+阅读 · 2020年6月22日
【经典书】数据结构与算法C++,第二版,738页pdf
专知会员服务
169+阅读 · 2020年3月27日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
195+阅读 · 2020年3月12日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
142+阅读 · 2020年2月16日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
166+阅读 · 2019年10月28日
相关资讯
逆向 | C++ 加壳程序的编写思路
计算机与网络安全
9+阅读 · 2019年1月1日
人脸识别入门实战
人工智能头条
4+阅读 · 2018年12月12日
实战 | 用Python做图像处理(二)
七月在线实验室
17+阅读 · 2018年5月25日
刚开始学编程?这几款小工具能让你事半功倍
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
荐书丨Python数据分析从入门到精通
程序人生
18+阅读 · 2018年3月31日
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
资源 | 适合AI新手的9款人工智能开源软件
AI100
3+阅读 · 2017年11月13日
Top
微信扫码咨询专知VIP会员