新手小白如何用C++制作经典游戏DNF?
十年前,那时候的网吧还不叫网咖,那时候没有王者荣耀也没有英雄联盟,那时候梦幻西游刚推出珍宝阁系统,那时候巫妖王的灵魂还封闭在冰封王座。
寻仙、穿越火线、征途、天龙八部……同时在线人数超百万的游戏纷纷
十年前,那时候的网吧还不叫网咖,那时候没有王者荣耀也没有英雄联盟,那时候梦幻西游刚推出珍宝阁系统,那时候巫妖王的灵魂还封闭在冰封王座。
寻仙、穿越火线、征途、天龙八部……同时在线人数超百万的游戏纷纷涌现,那个中国网游群芳斗艳的年代,地下城与勇士无疑是最耀眼的那个。
DNF当年有多火?那年大酋还在读初中,跟同学去网吧,一排排全是在玩DNF,当时有人爆了一把双龙魔影光剑,整个网吧都炸了,一个地主家的傻儿子当即把手机押那儿,然后冲回家再取800块,一出门就摔了一跤,滋溜就爬起来继续跑,一边跑一边喊千万别卖给别人……
不过呢,玩游戏不如做游戏,再牛逼的游戏号在程序员的眼里就是一堆代码,所以今天呢,大酋要跟大家说说如何进行游戏开发。
作为一款横屏格斗游戏,绚丽的画面和流畅的动作是DNF的精髓,那么我们先从画面和动作着手。
小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程
关于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横版游戏的序列帧更简便。
在这个娱乐化时代,游戏已经融入到我们的生活成为了一种生活方式,游戏开发也是当下和未来绝对热门的行业,但是对于初学者而言呢,缺乏经验和指导往往会举步维艰。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一个C/C++自学转行者应该具备的素质
之前我在关于C语言的部落里也发过了不少的学习技巧分享的文章,大家可能面熟过我,很多人喊我七哥。从高一开始就接触了C语言,然后学习C++,到win32和MFC,QT框架,到最后进阶Linux,如今也有大概10年了。关于这一块了解的还算透彻,今天聊一下如今在所有行业中,从二十世纪八十年一直到现在老牌语言C语言为什么在中国的市场上依旧这么人才紧缺。 无论是在校的学生也好,还是转行的也好,如今学C的人越来越多,造成了如今新手越来越多。有人说C语言饱和了,因为它发展的历史太久了,有点赶不上时代了,一般说饱和的人,基本是学的不咋地,找不到工作的,怨天尤人说饱和,类似于吃不到葡萄就说葡萄酸。 纵观中国目前整体行业来说,互联网IT行业如今成为了科技创新的领头羊,无论是马云最近提出的电子身份证,还是最近杭州云栖大会,无不在表明时代发展的趋势:科技叩问未来价值,引领前沿。机械行业有点夕阳西下的意思,电子行业几乎被国企垄断,没有关系很难混起来。如果说没有背景,单凭自己的能力的话,在如今这个需要钱的社会,IT互联网程序开发成了靠自己能力可以多挣一点钱,所以各个行业都有人往这方面转。其实互联网不存在...
- 下一篇
MSSQL · 最佳实践 · 使用非对称秘钥实现列加密
摘要 上一篇月报,我们分享了SQL Server使用对称秘钥实现列加密的方法。为了解决对称加密安全性低的问题,本期月报我们分享使用非对称秘钥加密方式实现SQL Server列加密方法,保护用户的关键、核心隐私数据列信息。 场景引入 对称加密是指加密和解密过程使用同一个密钥的加密算法,而非对称加密方法加密和解密过程使用不同的秘钥进行。因此,通常来说对称加密安全性较弱,非对象加密安全性相对较高。以下是关于对称加密和非对称加密的过程介绍。 对称加密过程 对称加密算法使用相同的秘钥对数据进行加密,如下图所示: 对称加密数据整个流转过程包括: 数据发送者使用秘钥将数据明文加密为密文 通过网络将数据密文和秘钥发送给接受者 接受者使用相同秘钥对密文进行解密,获取到最终的明文数据 从数据整个流转过程来看,很可能用于加密的秘钥会被窃取,比如: 网络传输过程中,
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境