我的游戏之路(5)

来源:互联网 发布:南师大艺考成绩算法 编辑:程序博客网 时间:2024/05/01 13:51

游戏策划

第一步

我想做什么游戏呢?

做一个rpg游戏吧!

结构呢?

我想想,大体上应该分为window窗口,directshow,directinput,,directmusic三部分

设想操作

1、在window窗口上初始化的时候初始化directshow,directinput,,directmusic,把初始化集合成一个函数。

2、集合一个gameInit函数,用于初始化游戏

3、用一个gameMain函数,处理游戏的所有过程

4、用一个delgame函数,用于实现游戏的资源的释放。

难点:

我个人认为做一个游戏有以下难点:

1、做一个游戏首先是有分辨率问题,所以在进入游戏前要游戏把分辨率改正

2、还有就是做视频游戏有一个很容易出现的问题,很容易出现内存泄漏会把使游戏越来越慢,还有可能引起死机现象。明确在游戏开始就检测是否内存泄漏。

3、现在才是真的开始。前面的只是准备工作。

4、一个游戏先要有logo,这代表的是一个团队或个人的荣誉,所以还是要做的。做一个logo说到底就是一堆连续的图片串在一起。可以把它看成一个gif文件。所以我们要做的就是把它们串起来。怎么做呢?个人提供一个思路,用一幅图片把各个连续的画面从头到尾顺序排序,然后根据在画面的固定位置,显示这幅图片的一部分,显示的那部分调节成大小和每一个连续画面大小相同。这样只要改变显示图片的起始坐标,就可以了,每次坐标增长的是连续画面的长或宽就行了

5、做完一个logo就是进入菜单了,当然logo不一定是要看的,所以不看logo时一定要把画面的播放延迟时间去掉,说到这里也许有人会问,延迟是怎么做的,怎么做可以随时把延迟去掉。延迟是通过得到时间,时间增长到一定长度,原来的时间就当做是久时间,而当前时间就是当前时间了,计算所要的单位个时间长度,如果单位个时间长度到了,我们就可以退出循环。呵呵延迟不就实现了。那怎么随时可以不要延迟呢,就是在增加时间长度之前先判断是否按下某代表退出循环的键,如果按下就退出。

6、好了我们现在进入菜单了,菜单应该怎么做呢?一点头绪都没有。怎么办?不要急先从菜单的结构分析开始吧!,菜单是由背景,菜单背景,按键文字,还有就是动作组成的。背景容易,如果是静态的加张图就可以了,如果是动态的按logo的做法就可以了。有人也许会问,如果做静态的还可以,如果做动态的不是有并发运行问题吗?是的,菜单的动作和图片动态是并发的,但这个实际上,计算机真的有并发吗?是没有的,只是它们时间很短所以可以看做并发的。我们大可以在动态图片的循环中加菜单动作啊,一个先变另一个再变就是。

7、好了,真的难点来了,菜单动作怎么做,怎么做先确定菜单背景的位置,然后得到子按钮的相对位置。得到鼠标坐标,如果鼠标在按钮上,则按钮的图片换,如果按下再换。效果就有了。

8、做好菜单后,表面功夫是做了,但按了也没反应啊!那是因为没让游戏在检测到在按钮上且按下,就转移。

9、因此,我们要做几个菜单,新游戏,继续,保存,读取,退出,按键设置,游戏团队(可有无),按下不同的键就转移到不同的枚举条件中。新

10、新游戏很明显是开始游戏了,很复杂,暂时不讨论。

11、那说说继续吧,这个简单按下后转到游戏就可以了。

12、保存,这是一个难点吧!想保存怎么做。我们应该把画面分成很多很多格,每个格有各自的序号。我们先记录每一个格是那个图。做到了地图就有了。是不?除了地图还有其他的吧。呵呵,我们地图不是有了吗,那个地图对应那些事件是一定的吧!范围小了。那我们现在就是对这些事件的状态进行保存。每个事件都有进度,我们保存的独特的状态,就可以了。

13、那哪些是独特的状态呢?我想想!地图上除了,人物,物品,未触发事件,和已触发事件。没了吧!保存物品的当前位置,显示哪张图,物品搞定了,人物呢?也一样,当前位置,显示哪张图,也搞定了。未触发事件,都没触发没必要了。那就剩下最重要的了,已触发事件了。

14、怎么做呢?我们先想想如果保存后如何读取吧。读取时第一步是恢复当时的画面。上面那三步一还原就可以了。但还有接着做什么动作啊!,我们的游戏是有故事吧,都玩到保存了,不可能没有吧!那里才可以保存自己设计的不可能不知道吧!所以我们得到地图的编号。呵呵,剩下可以发生的事件不多了吧,那就是要得到已经触发的事件编号,好了得到了,知道已经发生的事件。一个事件也是有变化的比如主角血到哪就做怎么吧!所以人物的血,蓝,包裹的物品编号,级数(基础攻击力等是固定的,技能也固定的),加的点数,是被攻击状态,和平状态,还是攻击状态。敌人也是一样的,不过没了蓝,加的点。在还原物品编号状态。Ok。保存和读取搞定。

15、退出也很容易,按下退出就是。

16、那就是按键设置了。如果固定按键还容易点,不固定按键,那就不是很容易了。难也要做啊!怎么做?我想想!先设置枚举变量为相应的操作。游戏的操作有上下左右吧,确定键吧,我们就做回合制的吧!就这五个键,呵呵。难度又小了。有了操作键怎么把按键和定义的功能键联系在一起呢?我想想!我们要做的就是把他们一一映射,最简单的方法是在消息函数中写入每个按键的检查,如果确定某键是某功能键那就按下某键就回当前是那个功能键。这样说很不明白。也就是每个按键都给一个特别的变量,它的数值可以是一到六,代表上下左右确定键和没有功能。这样按下那个键就明白它的意思。不过这样太大量太麻烦了。

17、我再想想!刚刚那个想法太麻烦,要在消息函数中写太多东西了,而且我也不想要过多的用消息函数,怎么办呢?我的新想法是搞个结构体,如“按键设置”{int“功能”;int “键”};一个结构体就把他们一一对应了!那接着怎么做呢,我们把哪个按键和功能键用“按键设置结构体一一对应”,那就是按键设置了。

18、用的时候,我们在判断动作的函数中要检测按下那个键,把键值提出来,给“按键设置”中的“键”对比,如果相同,提出对应的功能键看是什么操作。

 

19、最后我们谈谈之前回避的问题,怎么新游戏,菜单新游戏事实上很简单,就是进入游戏主函数,ok;

 

20、但它引出了一个问题,做怎样的游戏。这是我们的最重点和最难点的地方。

21、我想想!想从剧情说起吧!我没什么写剧本的天赋,那游戏的剧情怎样呢?我爱看小说就以网络小说为故事吧!那什么小说呢?太长我做不来,太短没意思。还有是什么类型的好呢!我喜欢玄幻小说,就它吧,那是什么呢?就它了《仙剑奇侠传四》,随便选的剧情都基本忘了。

好了,它只是蓝本,我会改成我自己的故事的。这就是我的策划,呵呵

22、剧本没没成,还要想想,我先看看怎么实现游戏吧!

23、先说说操作吧!我们做的功能键就上下左右和确定键,我们先看看它们用在哪!上下键和确定键组合用于菜单,这前面说过就不多说了,菜单功能就不说了,上下左右,看到这几个键自然而然就想到游戏人物的动作了。人走路可以分解成三到四个动作,我懒点就三个动作了。分别是站立,微伸腿,大伸腿。每个格可以进行2个动作。分别是四个方向(可以是八个方向这里我懒不做了,怎么简单怎么做,第一次做吧),

原创粉丝点击