游戏制作教程(1).doc

游戏制作教程(1).doc

ID:30593580

大小:71.00 KB

页数:7页

时间:2019-01-01

游戏制作教程(1).doc_第1页
游戏制作教程(1).doc_第2页
游戏制作教程(1).doc_第3页
游戏制作教程(1).doc_第4页
游戏制作教程(1).doc_第5页
资源描述:

《游戏制作教程(1).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、游戏制作教程(1)状态机制作programking游戏工作室博客http://blog.csdn.net/programking日期2009年6月目录一、国产游戏现状3二、状态3三、状态机3四、游戏开发流程4五、基本游戏程序结构5六、学习编程的误区:书本唯一6七、游戏状态图6八、附录7programking游戏工作室http://blog.csdn.net/programking一、国产游戏现状看一下《星际2》的宣传片,再看一下号称国产第一的某游戏宣传片,怎么差这么多?虽然中国的计算机产业比西方晚,但从金山公司一统江湖算起,也

2、十几年了。每次看国外的游戏视频,我都怀疑,自己的技术可能相当于国外中学生的水平。有这么烂?电视上,GTV,游戏风云频道,连一个介绍游戏开发的节目都没有。有没有?介绍编程的杂志,总该有吧,全市的报刊亭,没有一个卖《程序员》。我问周围玩游戏的小孩:“想不想知道游戏是怎么做出来的?”“不想。”岂止是小孩,即使玩CS的大学生,也不知道VALVE公司。我和常人不同。我想知道游戏是怎么做的。二、状态什么是状态?不需要定义。BruceEckel在《ThinkinginC++》中有很好的例子:灯泡有两种状态:亮,灭。练习题:1.剑圣的状态怎样

3、划分?正常剑圣,分身的剑圣,隐形的剑圣,挂了的剑圣。2.城镇大厅的状态分几种?建造进行中,一级,二级,三级,被拆。三、状态机从一个状态,跳到另一个状态,称为状态迁移。所有的状态迁移,组成了状态机。练习题:1.灯泡的状态机:初始状态:灭。按开关,亮。按开关,灭。2.城镇大厅的状态机:初始状态:建造进行中。建造时间结束,变为正常状态。(精灵的大树还要增加站,走,落下三个状态)。被攻击,HP减少,减到0,变为拆除状态。1.水元素的状态机:初始状态:正常。遇到敌人,变为攻击状态。生存时间到:消失。二、游戏开发流程游戏只是软件的一种。基

4、本流程图:策划编码美术图片/模型测试发布实际工作中,最头疼的是返工,曾看到一条新闻,《天下贰》返工。玩家只是看新闻“返工”。但在程序员眼中,返工二字,能把人逼疯。所以,实际的流程图是:策划编码美术图片/模型测试发布返工返工返工对于挖金子这样的小游戏,很简单。一、基本游戏程序结构常见的windows游戏程序结构是这样:While(程序没有退出){If(获得鼠标、键盘消息){处理消息;}Else{刷新屏幕;实时检测;}}其实,还有一种基于定时器的方法(我的超级玛丽就是这样做的):定时器WM_TIMER(计时)(实时检测)键盘消息(

5、键盘处理)鼠标消息(鼠标处理)发送WM_PAINT消息发送WM_PAINT消息发送WM_PAINT消息WM_PAINT(刷新屏幕)不断产生WM_TIMER消息,1秒钟25次二、学习编程的误区:书本唯一以上两种程序结构。哪种方法好?哪种方法坏?按照当前的硬件水平来看,玩家是感觉不出来的。这两种程序,反应出编程的乐趣。编程的乐趣,就是灵活,所谓“条条大道通罗马”。任何问题,都有多种解决方法。掌握最基本的3D知识,就可以模仿CS做一个练习作品。学习编程有一个误区?以为书上的例题是唯一解决办法。假设,书上有俄罗斯方块代码,会照着做。而

6、超级玛丽,书上没有,就不会做。书上的俄罗斯方块,用到了链表,没有学过链表,就不会做?不用链表,可以用数组。从超级玛丽,做到CS,我没有用一个链表。我也没看过超级玛丽、CS的代码,书上没有。我用OPENGL做CS,如果没有学OPENGL,用D3D也可以做。因为数学原理相同。如果看了OPENGL程序,却不会用D3D程序模仿重写,说明没有看懂。我会写一个3D教程,大家敬请期待。从红白机,到CS,也说明编程的乐趣:方法灵活,可以无限创造。写UNIX的操作系统是C语言,写OPENGL图形驱动也是C语的分支样的分支、循环、多重循环。编程既

7、可以实现操作系统,也能制造大型设备,也能创造3D游戏。一、游戏状态图状态机,是一种很好的方法,便于编程调试,容易发现BUG、扩充功能,而且代码清晰。对应到程序,一般的状态处理结构如下,很简单:消息处理函数WndProc{绘图消息WM_PAINT:状态1:状态1绘图。状态2:状态2绘图。……计时消息WM_TIMER:状态1:状态1逻辑处理。状态2:状态2逻辑处理。……按键消息WM_KEYDOWNWM_KEYUP:状态1:状态1逻辑处理。状态2:状态2逻辑处理。……}举例:挖金子游戏,一张地图,无购买道具环节。状态图如下:游戏菜单

8、游戏进行中过关失败程序启动即使做大型的3D游戏,基本流程也一样。这是一种简单的划分。实际编程中,却可以千变万化。例如,不区分过关、失败两种状态,直接用一个变量表示胜负。这也可以。需要强调的是,状态机的最大作用是方便编程,方便扩展,代码清晰。接下来的工作,就按照这个框架,完成各

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。