设为首页收藏本站

最近看过此主题的会员

查看: 61122|回复: 91

[制作教程] 【同步教程向】如何制作养成类游戏【慢更】

  [复制链接]

39

主题

41

好友

21

积分

签约作者

Rank: 16

贡献度
0
彩虹碎片
0
经验
21387
帖子
296
精华
3
在线时间
268 小时
注册时间
2008-2-2

短篇七入围奖 签约作者

发表于 2013-8-8 12:57:28 |显示全部楼层
本帖最后由 唐门草楹 于 2013-8-20 16:50 编辑

以下是后面的帖子中的视频教学录像索引:
高级UI的使用                                      17楼
随机事件及二周目结局的制作               23楼


       笔者正在做类似于“心跳回忆”的恋爱养成类游戏。因为看到论坛里有人问“养成类游戏”怎么做之类的问题,所以同步开了这个帖。实际上我也是在边琢磨边做的,因此用到的方法很可能不是最好的方法。如果有什么意见或者建议,非常欢迎在帖子中回复留言。那么接下来首先分享两天前做的一个DEMO。那个时候橙光还没有“高级UI”,所有的属性展示都是用消息框+变量显示,任务安排用的都是图片按钮。DEMO的链接是:http://www.66rpg.com/Game/2924。比较熟悉橙光的同学可能很快就能熟悉这个DEMO的基本架构和实现方式。它是一个以星期为单位的养成类游戏(安排一个任务然后一整个星期都进行此项任务,这种游戏方式玩过《心跳回忆》的同学应该都不陌生)。

      那么现在开始慢慢更新。今天是8月8日,我准备稍微以我的这款类似于《心跳回忆》的游戏模型讲解一下游戏变量数组以及高级UI的使用。预计在今天晚上午夜前完成这一部分的编辑,感兴趣的同学可以关注此贴哦~这期间大家可以玩玩《心跳回忆》系列的游戏,以对我所制作的游戏的游戏规则有所了解。

=============================基情四射的分割线================================

第一节 变量的使用


      关于变量的使用相信大家都不陌生。但是这里我要着重讲一下数组变量的使用。为什么要用数组呢?因为数组连续的存储方式非常适合计算机进行数据集合的处理。举个例子:如果游戏中,我设计了十个属性,不同的行动对十个属性的影响均不同,因此还有十个变量来存放当天的行动对对应的属性产生的变化。在DEMO中,V[26]~v[35]分别存储主角的学习、艺术、运动、气质、流行、魅力、精力、压力、人气、金钱的数值,v[37]~v[46]分别代表当天的行动对学习、艺术、运动、气质、流行、魅力、精力、压力、人气、金钱属性的影响。如果采用一般的变量修改方法的话,我需要对十个变量做以下修改:
      v[26] += v[37]                        //意思是原来的v[26]加上v[37]得到的新结果存入v[26],就是当天结束后新的学习值。当然v[37]可以是负数,说明学习属性下降了。
      v[27] += v[38]
      v[28] += v[39]
     ……中间省略六个类似的赋值……
      v[35] += v[46]
      类似的编码要写十遍。想象一下,如果你设计的养成类游戏的属性远远不止十个,比如你设计了一个类似于“明星志愿”的游戏,不仅你的角色有十个属性,二十个对手角色每个人也有十个属性,那么你上面的代码还要重复改200遍,是不是很烦?而利用数组和循环的方式,则能大大简化人为的劳动。例如同样是上面十个属性的修改,我们利用数组来做,首先增加两个索引变量48号变量(用于存当前修改的属性是几号变量)和49号变量(用来存对属性影响的变量是几号变量)。
      v[48] = 26
      v[49] = 37
      循环
             v[v[48]] +=v[49]              //在橙光的数值操作中,索引数值选择48号变量,操作选“加法”,操作数选索引数值49号变量
             v[48] += 1
             v[49] += 1
             条件分歧 v[48]=36
                    跳出循环
      以上反复

      通过以上方式,变量数组可以通过循环十次的方式对每条属性进行修改。虽然在十个属性的前提下看起来代码长度没有简化多少,但是这种方式不必让你每复制粘贴一条语句就手动去改其中的参数值,而且当要修改的变量非常大时,比如两百条属性的时候,第一种方法要复制粘贴并修改两百行代码,而数组+循环的方式只需要把跳出循环的条件修改一下就可以了。
      另外,要注意一点:通过数组+循环的方式批量修改变量时,一定要注意这批变量的存储方式是连续的,例如从15~35,从37~46。线性连续存储是数组这一数据结构的重要特点。
      那么接下来,你可以试一下日期系统的编写,我们暂且不考虑闰年的情况:假设每一年都是一月31天,二月28天,三月31天,四月30天,五月31天,六月30天,七月31天,八月31天,九月30天,十月31天,十一月30天,十二月31天,我们用一个变量(例如1号变量)存月份,初始值为1;另一个变量(例如2号变量)存日子,初始值为1。用一个剧情,其中放一个消息框显示“\v[1]月\v[2]日”(那么第一次调用该剧情显示的是1月1日),我们在消息框的后面写一段剧情,让日子加1,然后判断日子的值是否超过了当月的总天数,如果超过了就给月+1然后日子变为1。之后该剧情自调用自己。如果顺利的话,就能看到消息框从1月1日一直按照月历的顺序显示到12月31日了。大家可以动手做一下试试看。(提示:可以开辟一个 连续的数组用来存储1月~12月的天数)
已有 8 人评分经验 VIP 收起 理由
娜娜酱哒哒 + 2 塞糖
小清新13 + 4 塞糖
5395694 + 2 精品文章
阳阳是天才 + 2 精品文章
毛线球滚来滚去 + 2 塞糖

总评分: 经验 + 80  VIP + 2   查看全部评分

哈里草楹亲自录制的柳橙教学视频:
高级UI的用法:http://v.youku.com/v_show/id_XNTk2ODgyNTI4.html
随机事件的生成:http://v.youku.com/v_show/id_XNTk4NTQ2MDg0.html

9

主题

9

好友

35

积分

四年级

Rank: 5Rank: 5

贡献度
0
彩虹碎片
33
经验
35444
帖子
274
精华
0
在线时间
831 小时
注册时间
2008-10-30

我会用橙光

发表于 2013-8-8 13:09:46 |显示全部楼层
本帖最后由 留醉 于 2013-8-8 13:21 编辑

0-0好像很厉害的样子,看一下……高级UI啥的一窍不通……
【不过感觉一个星期……可以先做个7天的循环结构,再插入随机数的子剧情应该可以做到?】

点评

23zhuzhu  http://www.23wenxue.net/流氓艳遇记  发表于 2015-3-13 09:52
不会懂  www.fuheishu.com腹黑小说  发表于 2015-2-5 15:47
金风细雨忽迷天,有桥连云六分半。

0

主题

0

好友

3

积分

一年级

Rank: 2Rank: 2

贡献度
0
彩虹碎片
0
经验
3475
帖子
9
精华
0
在线时间
60 小时
注册时间
2013-7-23
发表于 2013-8-8 13:25:31 |显示全部楼层
坐等更新- -

4

主题

0

好友

1

积分

一年级

Rank: 2Rank: 2

贡献度
0
彩虹碎片
0
经验
1010
帖子
20
精华
0
在线时间
25 小时
注册时间
2013-7-6
发表于 2013-8-8 13:34:00 |显示全部楼层
好复杂,看不懂...

点评

历史让我记住你  我该说内容太复杂还是我脑袋不好使嘞……看不懂哎……  发表于 2015-7-16 11:44
云无心  同看不懂……  发表于 2013-8-13 19:57

53

主题

142

好友

75

积分

超级版主

玉酱爱宠

Rank: 32Rank: 32

贡献度
3
彩虹碎片
1
经验
71914
帖子
3516
精华
1
在线时间
1804 小时
注册时间
2013-7-25

贵宾 指引者 签约作者

发表于 2013-8-8 13:49:44 |显示全部楼层
加油更新0.0俺关注着!抱着一颗三分钟求学的心!

0

主题

2

好友

4

积分

二年级

Rank: 3Rank: 3Rank: 3

贡献度
0
彩虹碎片
0
经验
3627
帖子
6
精华
0
在线时间
38 小时
注册时间
2013-6-9
发表于 2013-8-8 13:53:46 |显示全部楼层
好复杂的样子……看不懂_(:з」∠)_

11

主题

0

好友

5

积分

二年级

Rank: 3Rank: 3Rank: 3

贡献度
0
彩虹碎片
0
经验
5021
帖子
114
精华
1
在线时间
177 小时
注册时间
2013-7-24
发表于 2013-8-8 14:19:43 |显示全部楼层
我也没看懂

4

主题

0

好友

1

积分

一年级

Rank: 2Rank: 2

贡献度
0
彩虹碎片
0
经验
1010
帖子
20
精华
0
在线时间
25 小时
注册时间
2013-7-6
发表于 2013-8-8 14:45:52 |显示全部楼层
能不能附上图片,这样看起来好麻烦

点评

唐门草楹  最简单的只做前景的方法就是把背景的空槽里填充一种颜色。  发表于 2013-8-9 22:47
唐门草楹  好的,晚上回去我就发截图……  发表于 2013-8-8 15:20

64

主题

478

好友

265

积分

超级版主

A Different Story
三千繁华入虚惘
一生荒尘隔云烟
—————————
天隐城 · 叶子执

Rank: 32Rank: 32

贡献度
25
彩虹碎片
10
经验
240052
帖子
4533
精华
12
在线时间
3415 小时
注册时间
2011-6-27

签约作者 UI达人 热心人

发表于 2013-8-8 15:02:24 |显示全部楼层
鼓掌,养成系就是慢工出细活,加油哦

点评

明若晓溪-晴朗。  这签名……我竟无言以对…… 0.0  发表于 2015-9-30 20:33
不经常上线,有事留言板。

39

主题

41

好友

21

积分

签约作者

Rank: 16

贡献度
0
彩虹碎片
0
经验
21387
帖子
296
精华
3
在线时间
268 小时
注册时间
2008-2-2

短篇七入围奖 签约作者

发表于 2013-8-8 15:49:57 |显示全部楼层
本帖最后由 唐门草楹 于 2013-8-8 17:19 编辑

第二节  高级UI的使用


        这是一个新功能,可能在用户体验上可能会有不尽人意的地方。那么我们首先看一下高级UI的编辑界面,如下图所示:

高级UI的使用

高级UI的使用

        我们以养成类游戏中的玩家属性值展示界面为例来展示一下该功能的用处。那么接下来,选中001号界面,单击“编辑”按钮进入编辑界面,如下图所示:

112.png


       现在大家可以看到,我的界面上已经放置了两张图片,分别是做背景与栏目背景容器用。接下来,我要向这个容器中放我的属性名与属性值。
                    在此之前,我需要确定我的角色变量的变量号及其内存的值。这是我之前特意截的变量数值图

113.jpg

        可以看到,我要显示的数据:主角学习,主角艺术,主角运动,主角气质,主角流行,主角魅力,主角精力,主角人气,主角金钱等信息存在于变量26~35中。那么接下来,需要在调用界面时初始化标签信息。我们单击界面编辑上的“界面初始化事件”按钮。
104.png

      我们按照同样的方式,把其余属性的标签都建立好,分别占用“字符串”数值的26~35号。当然,也可以用别的号码,但你要记住是怎样对应的。
      现在我要再界面上展示我的这些变量。单击“添加界面组件”按钮,在弹出的“界面组件”对话框中选择“字符串”。依次添加八个字符串:选择要显示的字符串,选择字符串的颜色以及显示的位置,在预览窗口就能看到大题呈现的样式,如下图所示:

105.png

      因为使用“预览”之后需要输入的变量太多,而且预览的效果像坨屎一样,所以我就不通过预览来展示界面了。直接通过游戏中调用该界面(在调用之前一定不要忘记给所有要用到的变量赋初值)。在游戏中呈现的效果如下图所示:
001.jpg

      完工,这就是一个简单的数值呈现的高级UI。这其中有这样一个可以算作BUG的问题:在界面窗口,我们加载一张图片是加载Other目录下的图片,而游戏运行时则是加载UI目录下的文件。@七夕小雨

      这只是高级UI的一个简单的应用。实际上,利用数值槽等组件还能制作出更优美的界面。但是你需要准备数值槽的背景以及用于填充数值槽的前景图两张图片,以及用一个变量存储你每项属性的最大值。以下是一个利用了数值槽美化的UI界面:
001.jpg

点评

云无心  哇哦,那个标红用什么弄的?求教  发表于 2013-8-13 09:28
丶木木  数值条背景前景的该怎弄  发表于 2013-8-9 21:19
七夕小雨  QAQ确实是个BUG~下版改好,明天更新  发表于 2013-8-8 18:07
哈里草楹亲自录制的柳橙教学视频:
高级UI的用法:http://v.youku.com/v_show/id_XNTk2ODgyNTI4.html
随机事件的生成:http://v.youku.com/v_show/id_XNTk4NTQ2MDg0.html
您需要登录后才可以回帖 登录 | 注册

安全联盟
回顶部