[置顶] 《MFC游戏开发》笔记一 系列简介
本系列文章由七十一雾央编写,转载请注明出处。
http://blog.csdn.net/u011371356/article/details/9299121
作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5&mod=personinfo
鉴于有同学需要代码学习,我以后会把代码整体的粘贴出来,以方便大家参考,但是还是建议大家自己动手写一遍。在笔记二中调整窗口的代码写完后,在本系列教程中大家就只用关注CChildView.h和CChildView.cpp这两个文件,所以我会每次贴出这两个文件的全部代码。
by雾央 2013.7.14
对于内容较多的章节,为了方便大家自己尝试,我会上传工程文件,大家可以下载回去自己感受一下。
by雾央 2013.7.15
看到大家对于游戏开发都比较热情,从笔记三之后,雾央都上传了源代码,并且都是0积分下载,大家可以参考着源代码看博文。
by雾央 2013.7.18
从笔记十一开始,雾央将系列名称更新为《C++游戏开发》,原因是这个教程并没有多么深入MFC,只是借用了MFC的框架和贴图,原来名称可能误导一些同学,而且雾央更希望讲解的是游戏开发的一些思想,而不局限于MFC。
by雾央 2013.7.22
一、我的游戏开发学习之路
很多人走上计算机道路最初的原因就是怀揣着游戏开发的梦想,至少我是这样的。最初学习的日子是极度痛苦的,对于游戏开发充满着热情,但是却只能每天在控制台黑乎乎的窗口下写程序,不知道怎么样才能写出图形界面的游戏程序,我记得我当时在网上四处搜索资料得到的结果大都是说要去学习一门图形库,比如DirectX、OpenGL或者学习WIN32 API,再古老的就是graphic库了。DirectX和OpenGL对于一个新手来说真的太难了,一大堆复杂的名词和概念,对于数学的要求都让人望而退却;WIN32
API函数太多,讲解游戏开发的资料太少,至少当时我是没怎么搜索到,而graphic库是TC专用的,大概已经没有人用了,当时一度感觉开发一个好看的游戏太艰难了,好在后来在网上搜到了EasyX图形库(http://www.easyx.cn/),这个是由yangw80先生利用windows编程开发的一个图形库,接口和graphic基本一样,且配有详细的chm文档说明,建议刚接触编程的同学可以去了解一下,至少它可以让你快速开发出一个图形程序,很感谢BestAns写的Easyx图形开发教程http://www.easyx.cn/skills/View.aspx?id=45,当时我刚学完了C语言,看着这个教程,做出了自己的图形界面的学生成绩管理系统和贪吃蛇、扫雷游戏。这个图形库支持的功能不是很多,比如实现输入框就是蛮困难的一个事情,但是利用它,实现一个像样的游戏demo已经不是问题了,也可以告别控制台窗口了。
后来我们学校进行了专业实训,实训的内容是MFC开发,做的是游戏,截图如下:
先来一张城镇地图:
再来一张野外地图:
做的是一个像冒险岛那样的横版游戏,虽然不是很完善,但是游戏最基本的东西基本都具有了,当然要非常感谢我的美工队友的付出,事实上,我个人认为,游戏基本就是美术+if/else堆起来的。
一直以来,自己对于3D游戏充满了兴趣,后来在CSDN看到浅墨大神的专栏《Visual C++游戏开发》后,开始看着浅墨的教程,自学3D游戏,到现在算是刚入门吧,可惜浅墨由于非常忙,停止了博客的更新。
上面大概就是自己在游戏开发道路上的学习过程,到现在,我仍然是初学者,但是我很佩服浅墨的分享精神,对过去自己所走的弯路、经历的痛苦也记忆犹新,希望可以把自己所学习到的知识分享出来,帮助那些曾和我一样怀有游戏开发梦想的少年们。
二、关于《MFC游戏开发》系列
1.面向对象
我文笔不好,技术也一般,因此这个《MFC游戏开发》系列面向的对象是游戏初学者,有什么问题,路过的高手请指出,在此表示感谢。
2.学习基础
学习的要求是掌握了C语言,对于C++只需要知道最基础的类的概念就好,不熟并不妨碍你写游戏。游戏采用MFC单文档开发,如果不会MFC也没有什么问题,我会从第 一步手把手进行图文教程,我的开发环境是VS2010,WIN7。
3.更新
现在是暑假期间,我时间比较多,会尽快更新。我保证,在教程结束的时候,大家至少可以写出我上面贴出的截图中的游戏,即一个2D游戏demo。
4.反馈
大家有什么问题欢迎在博客评论中留言或者新浪微博私信我,我新浪微博叫七十一雾央,我会及时回答(如果我知道的话,呵呵)。
说明:在网上很多人不建议使用MFC开发游戏,它封装了很多使用不到的东西,GDI绘图效率低下,但是我觉得,游戏开发的思想是一样的,MFC只是一种工具,只要利用它能方便我们做出自己的游戏,实现自己的梦想,又有何不可呢?况且,上面我做的2D动作角色扮演游戏,FPS可以达到60帧,不会产生一点点的卡,也就是说,我们做的是简单的游戏,效率这方面我觉得暂时可以不用考虑MFC带来的影响。
另外,我知道很多怀有游戏开发梦想的同学,选择了去学习一个游戏引擎。确实,利用游戏引擎可以快速的开发出自己的游戏,甚至利用RPG Maker这样的工具,连一行代码都不用写,就可以拖出一个像样的RPG游戏,但是这样对于我们自己的成长,又有多大的帮助呢?从最基础的部分学习起,我们可以认识到游戏引擎的实现原理,甚至写出自己的游戏引擎,雾央现在就打算慢慢写一个自己的游戏引擎。我觉得,在学习阶段,大家还是自己从底层写代码做游戏比较好,工作阶段,大家利用游戏引擎开发游戏才是最正确的选择。
《MFC游戏开发》笔记一到这里就结束了,更多精彩请关注下一篇。如果您觉得文章对您有帮助的话,请留下您的评论,点个赞,能看到你们的留言是我最高兴的事情,因为这让我知道我正在帮助曾和我一样迷茫的少年,你们的支持就是我继续写下去的动力,愿我们一起学习,共同努力,复兴国产游戏。
对于文章的疏漏或错误,欢迎大家的指出。
[置顶] 《MFC游戏开发》笔记一 系列简介的更多相关文章
- [置顶] mmog游戏开发之业务篇
这周不是很忙,因为我们的游戏开发了近一年,由于公司的业务调整,在游戏开第二服的时候,老板果断的把项目停到了. 感觉超级的不爽啊.因为这个游戏项目像我的孩子一样和我一样成长,里边的大概的业务逻辑都是偶实 ...
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9394465 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9360993 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...
- 《MFC游戏开发》笔记五 定时器和简单动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...
- 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现
本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...
随机推荐
- 新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法 -摘自网络
新建虚拟目录使用UNC共享文件夹(即:虚拟目录使用UNC共享文件夹)的方法1.UNC路径:\\192.168.1.2\test\,假设连接该UNC路径的用户名为:web,密码为:123 2.在原web ...
- oracle 字符集转换:AL32UTF8->ZHS16GBK
select userenv('language') from dual; --修改Oracle数据库字符集为ZHS16GBK : SQL>conn / as sysdba; SQL>sh ...
- 第二百三十八天 how can I 坚持
最近睡觉,老是梦到死亡,多么可怕啊.感觉好虚幻. spring事务管理,框架搭建. 看着没多少事,最起来感觉好多啊. 梳理下最近爬过的山,时间久了会忘,反正上周没爬,下雪了. 10月18号-香山,11 ...
- PHP网站简单架构 – 单独跑php-fpm
这个架构比较简单,不做过多的说明 前端1台Nginx:负载均衡+nfs 中间2台php:php-fpm 后端1台数据库:MySQL 安装略,参考<lnmp最新源码一键安装包> 192.16 ...
- html5 标签
按字母顺序排列的标签列表 4: 指示在 HTML 4.01 中定义了该元素 5: 指示在 HTML 5 中定义了该元素 标签 描述 4 5 <!--...--> 定义注释. 4 5 < ...
- HIVE删除表数据
HIVE只有INSERT,没有UPDATE跟DELETE,所以通过其他的语句产生DETELE效果. 在HDFS上或者本地服务器上新建空的文件XXXXX, 然后执行: LOAD DATA LOCAL I ...
- jps用法
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上 ...
- Autofac介绍
原帖:http://www.cnblogs.com/xupng/archive/2011/07/12/2104766.html Autofac为何物?它是.NET世界里现存的几种IOC框架其中之一,传 ...
- 提高Scrum站会效率的一个小工具
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:提高Scrum站会效率的一个小工具.
- java中的定时器
所有类型的 Java 应用程序一般都需要计划重复执行的任务.企业应用程序需要计划每日的日志或者晚间批处理过程.一个 J2SE或者 J2ME 日历应用程序需要根据用户的约定计划闹铃时间.不过,标准的调度 ...