leopardxp 发表于 2007-8-13 15:09

如何使多关卡游戏各关融合起来??

<P>正在用tc写多关卡的贪食蛇游戏,其中地图使用矩阵表示的(TILE),今天把开始菜单界面(调用鼠标了)与第一关<br>的函数都挪到一个程序里了,怎么把以后的关卡都“封装”起来,满足过关条件直接调如相应关卡?不想都把所有函数都写在main前头,如果把这些函数写成.h头文件,编译总出错(好像原来的全局变量还要在.h文件里再定义?也不知道是不是因为函数的嵌套调用引起的),有没有其它方法?一般通用的方法是什么啊?</P>
[align=right][color=#000066][此贴子已经被作者于2007-8-13 23:11:28编辑过][/color][/align]

jig 发表于 2007-8-13 21:49

我相信应该是你的程序逻辑结构有问题<br><br>那么做为贪食蛇游戏,所谓的关卡,我觉得应该就只要<br><br>1。加快速度<br>2。食物数量增加<br><br>那么像这样的完全可以用全局部变量来代表<br><br>1。时间间隔(决定蛇速度)<br>2。食物数量(决定食物数量)<br><br>那么,你在不同的关卡改变这些全局变量,然后重新开始就可以了,我想不用采用复杂的嵌套结构<br><br><br>再仔细改改看吧
[align=right][color=#000066][此贴子已经被作者于2007-8-13 21:52:05编辑过][/color][/align]

leopardxp 发表于 2007-8-13 21:59

回复:(jig)我相信应该是你的成粗逻辑结构有问题那么...

我的关卡主要是地图改变了,即障碍物的构成上,需要用矩阵来表示。而且加入了一些界面的处理,目前只有第一关和开始菜单就已经1500行代码了~如果继续写下去,代码是不会增加很多了,但是很乱~而且还有一些存储进度,高分排行等功能没有加入~这样写下去可能有点问题吧。。。一些重复性的功能代码我认为还是以函数形式写起来好些吧?但这样就避免不了函数的嵌套啊~呵呵~我也不懂~大家讨论讨论吧~

jig 发表于 2007-8-13 22:09

<P>哦,你是地图形式也改变了是吧<BR><BR>那我给LZ提个建议,你应该把地图做成外部文件读取形式,就是说地图是储存在一个外部文件里的,这样程序结构不仅简单了<BR><BR>而且你可以任意的在外部修改你的地图。<BR><BR>比如这样,我们在一个文本文件里以 0 表示通畅,以 1 表示有障碍。如这样一个图<BR><BR>1 1 1 1 1<BR>1 0 0 0 1<BR>1 1 1 1 1<BR><BR>这样就是一个4周有壁的框<BR><BR>具体的你可以看看这个<BR><a href="http://bbs.bc-cn.net/viewthread.php?tid=81786&amp;star=at" target="_blank" >http://bbs.bc-cn.net/viewthread.php?tid=81786&amp;star=at</A>#<BR><BR>这个是我以前做个小说明游戏,你直接可以去修改 set.txt<BR><BR>的数字,那么重启程序界面就会发生改变。<BR><BR>我想你也可以采用这样的方法来丰富改造你的地图</P>

leopardxp 发表于 2007-8-13 22:35

回复:(jig)哦,你是地图形式也改变了是吧那我给LZ提...

你用的是neo库啊~写的很精炼~呵呵~我要能写那么好就好了~地图我是用的你说的这种方法啊~我的疑问是怎么把地图等做成外部文件读取形式?每一关也能这样做吗?俺没做过,不会啊~麻烦能具体点吗?如果这样,每一部分岂不就清晰多了~呵呵~还有就是怎么保存游戏进度呢?
[align=right][color=#000066][此贴子已经被作者于2007-8-13 22:38:42编辑过][/color][/align]

一笔苍穹 发表于 2007-8-14 13:36

简单的说,关卡用文件应该更科学,你可以制订一套输入输出格式,你的文件以这种格式为内容保存,你的程序应该可以根据格式处理你的文件输入。甚至你可以做一个关卡生成程序,在里面做好关卡后保存后得到的就是你主程序能处理的文件格式,根据文件生成了场景就可以开始游戏主循环了。一般的游戏都是这样来的但会更高级一些,比如说可以将这些都做成脚本,执行程序负责读取脚本文件中的内容并解释再生成场景和人物及至情节。

eakcon 发表于 2007-11-14 10:17

<P>好强呀!</P>
<P><BR>此主题相关图片如下:<BR></P>

页: [1]

编程论坛