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

 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. 《Genesis-3D开源游戏引擎-官方录制系列视频教程:进阶实例篇》

    注:本系列教程仅针对引擎编辑器:v1.2.2及以下版本 G3D进阶实例   第四课<2D编辑与脚本的统一入口> 使用G3D完成一个简单的类飞机大战游戏,介绍了G3D2d游戏制作的流程包括: ...

  2. SCAU 1138 代码等式

    1138 代码等式 时间限制:500MS  内存限制:65536K提交次数:59 通过次数:21 题型: 编程题   语言: 无限制 Description 一个代码等式就是形如x1x2...xi=y ...

  3. 转】Maven学习总结(七)——eclipse中使用Maven创建Web项目

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4054814.html 感谢! 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...

  4. Struts2零碎点整理

    1. 关于 Struts2 请求的扩展名问题 1). org.apache.struts2 包下的 default.properties 中配置了 Struts2 应用的一些常量 2). struts ...

  5. 【转】iOS 硬件授权检测:定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等

    iOS系统版本的不断升级的前提,伴随着用户使用设备的安全性提升,iOS系统对于App需要使用的硬件限制也越来越严格,App处理稍有不妥,轻则造成功能不可用用户还不知道,重则会造成App Crash. ...

  6. Android实例-手机震动(XE8+小米2)

    相关资料:http://blog.csdn.net/laorenshen/article/details/41148843 结果: 1.打开Vibrate权限为True. 2.规律震动我没感觉出来,有 ...

  7. MySQL索引的创建,查看,删除

    在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引. 1.ALTER TABLE ALTER TABLE用来创建普通索引.UN ...

  8. codeforces 630KIndivisibility(容斥原理)

    K. Indivisibility time limit per test 0.5 seconds memory limit per test 64 megabytes input standard ...

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

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

  10. 001_bytearray

    bytearray([source [, encoding [, errors]]]) 中文说明: bytearray([source [, encoding [, errors]]])返回一个byt ...