本系列文章由七十一雾央编写,转载请注明出处。

 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游戏开发》笔记一 系列简介的更多相关文章

  1. [置顶] mmog游戏开发之业务篇

    这周不是很忙,因为我们的游戏开发了近一年,由于公司的业务调整,在游戏开第二服的时候,老板果断的把项目停到了. 感觉超级的不爽啊.因为这个游戏项目像我的孩子一样和我一样成长,里边的大概的业务逻辑都是偶实 ...

  2. 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&障碍物判定

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9394465 作者:七十一雾央 新浪微博:http:// ...

  3. 《MFC游戏开发》笔记九 游戏中的碰撞判定初步&怪物运动简单AI

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9374935 作者:七十一雾央 新浪微博:http:// ...

  4. 《MFC游戏开发》笔记八 游戏特效的实现(二):粒子系统

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9360993 作者:七十一雾央 新浪微博:http:// ...

  5. 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...

  6. 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...

  7. 《MFC游戏开发》笔记五 定时器和简单动画

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...

  8. 《MFC游戏开发》笔记四 键盘响应和鼠标响应:让人物动起来

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9327377 作者:七十一雾央 新浪微博:http:// ...

  9. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

    本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...

随机推荐

  1. <Stackoverflow> 如何提问

    如何提问 欢迎来到Stack Overflow! 我们很乐意帮助你,但是实际情况是并非每一个问题都能得到解决.为了提高你的机会,这儿有一些帮助: 1 检索及调查 在提出你的问题之前,你已经通过检索来寻 ...

  2. HDU 4861 Couple doubi (数论 or 打表找规律)

    Couple doubi 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/D Description DouBiXp has a ...

  3. [C语言 - 5] 预处理

    编译之前的处理指令 A.宏定义 a. //Like static constant #define NUM 6 //The truth of macro define is replacing the ...

  4. Codeforces Round #337 (Div. 2) D. Vika and Segments (线段树+扫描线+离散化)

    题目链接:http://codeforces.com/contest/610/problem/D 就是给你宽度为1的n个线段,然你求总共有多少单位的长度. 相当于用线段树求面积并,只不过宽为1,注意y ...

  5. 亲和串(HDU2203)

    http://acm.hdu.edu.cn/showproblem.php?pid=2203 题目意思很简单,求s1串所构成的环中是否有s2这个串 用CMP参考http://s.acmore.net/ ...

  6. 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(一)

    本文转载自 http://blog.csdn.net/cutesource/article/details/6192016 如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下 ...

  7. 基于linux 的2048

    在 debian 下写了一个 2048, 效果如下: 感兴趣的朋友可以在这里(http://download.csdn.net/download/kamsau/7330933)下载. 版权声明:本文为 ...

  8. Hadoop 2.0+YARN启动脚本分析与实战经验

    start-all.sh脚本现在已经废弃,推荐使用start-dfs.sh和start-yarn.sh分别启动HDFS和YARN. 在新一代的Hadoop里面HDFS称为了统一存储的平台,而YARN成 ...

  9. C语言signal处理的小例子

    [pgsql@localhost tst]$ cat sig01.c #include <stdio.h> #include <signal.h> static void tr ...

  10. Spring-AOP和AspectJ的区别和联系

    AOP是Spring框架的重要组成部分.目前我所接触的AOP实现框架有Spring AOP还有就是AspectJ(还有另外几种我没有接触过).我们先来说说他们的区别: AspectJ是一个比较牛逼的A ...