[置顶] 《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 ...
随机推荐
- java集合框架1
1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...
- 软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] [附加题]
软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] [附加题] 首先,在分组之前,我和室友薛亚杰已经详细阅读了往届学长的博客,认为电梯调度 ...
- mark标签:
mark元素表示页面中需要突出或高亮显示的内容,在搜索结果中也常常出现,比如检索结果中的关键词高亮显示. 案例:[html]<!DOCTYPE HTML><html> & ...
- python 操作 excel
python操作execel主要是读写 读 通过 http://pypi.python.org/pypi/xlrd 写 通过 http://pypi.python.org/pypi/xlwd 下载ta ...
- POJ 2387 Til the Cows Come Home (最短路 dijkstra)
Til the Cows Come Home 题目链接: http://acm.hust.edu.cn/vjudge/contest/66569#problem/A Description Bessi ...
- #elif
http://baike.sogou.com/v72031124.htm?fromTitle=%23elif #else指令用于某个#if指令之后,当前面的#if指令的条件不为真时,就编译#else后 ...
- POJ 3660 Cow Contest (Floyd)
http://poj.org/problem?id=3660 题目大意:n头牛两两比赛经过m场比赛后能判断名次的有几头可转 化为路径问题,用Floyd将能够到达的路径标记为1,如果一个点能 够到达剩余 ...
- Ecshop 学习之路一 2016年6月30日
以前下载ecshop 都是在ecshop官网上下载,前后台模板都很难看.功能也不太齐全,这次在模板堂下载了ecshop 模板 仿小米的.做一个简单的电商网站. 页面结构还是挺简单的.功能也齐全.用ec ...
- MVC神韵---你想在哪解脱!(十)
增加追加数据的方法和视图 现在我们将要在数据库中追加并保存一些数据.我们将要创建一个表单以及一些表单输入控件,用来输入数据信息.当用户提交表单时将把这些用户输入的信息保存在数据库中.我们可以通过在浏览 ...
- OpenStack official programs
What are programs ? The OpenStack project mission is to produce the ubiquitous Open Source Cloud Com ...