从0开始:开发自己的游戏[4]


我是Lem0,自学倡导者,执迷于“不务正业”,被批评“旁门左道”。我注册并使用简书,希望能够记录一些我记不住的事情,或者与大家一起共享知识,共同学习。

往期回顾(点击链接访问):
「从0开始:开发自己的游戏[0]」
「从0开始:开发自己的游戏[1]」
「从0开始:开发自己的游戏[2]」
「从0开始:开发自己的游戏[3]」

有两三天没更新教程,因为时间不允许。但我依然会尽量回复大家的评论和私信,再次对各位的鼓励和欣赏表示感谢。

在上一期教程中,我简单介绍了快速新建特定事件和游戏事件的概念、定义和创建方法。本期教程我将主要讲解事件指令中的“条件控制”部分和“流程控制”部分,制作一个简单的任务剧情。请喜欢本系列教程的朋友们关注我,避免错过更新动态

如果您没有看过之前的教程,或者在阅读本文时发现自己已经记不起以前的一些内容,建议您先查看往期的回顾,再继续本教程以确保效率。

5、线性流程 - 学习游戏开关和变量与事件的配合

条件控制 指令

如果大家还记得怎样新建一个游戏事件,请新建一个并且选择一个合适的图像使这个游戏事件成为一个NPC。我在这里依旧使用上期教程中的士兵形象。我将带领大家进行一个游戏任务的制作,玩家控制的角色可以接受任务并且完成它。这是标准RPG游戏中的流程。

上一期的游戏事件,是一个士兵形象的NPC

在右侧的执行内容中,已经有了一条上期教程中添加的事件指令。若要删除该条指令,选中按下delete键即可。这里我们选中该条指令,按下space键,达到修改该条指令的效果。

注意,几乎任何时候按下space键都能够起到修改作用,例如在事件页中按空格键可以修改当前事件指令的参数;在地图树中按空格键可以修改当前地图的参数。

按下空格建修改这条“显示文字”指令,在弹出的窗口内输入下图所示的文字,然后确定,完成修改。

修改之后的文字显示指令

在这条显示文字的指令中,我使用了转义控制符。和大多数编程语言一样,转义控制符以反斜杠开始,通过不同的规则使文字显示内容变化。比如这条文字显示指令中,我使用了<code>\c[6] \c[0]</code>两个颜色控制符,转换了“皇家塔洛斯守卫军”文字的颜色为黄色。我还使用了<code>\i[192]</code>这个图标绘制控制符,在对话窗口的“生命药剂”文字前绘制了第192号图标(外形是个药瓶的样子)。

在游戏中的预览结果就是下图这样。转义控制符被更换为不同的显示效果。

转义控制符的使用

之后我们为了让玩家能够自由选择是否接受NPC士兵给出的任务,我们需要添加一个“显示选项”指令,让玩家能够根据自己的想法选择回复:

显示选项指令

按照上图设置完成,确定之后会发现事件页的执行内容中出现了显示选项的指令和两个分支。其中,选择第二项(也就是“我没时间”)的情形被默认为取消,选择第一项“我愿意”即为接受任务的回答。

事件指令的执行内容中出现了选择分歧

在玩家选择接受了任务之后,我们需要设置一个开关。什么是开关呢?开关有ON(开)和OFF(关)两个状态,相当于程序设计中布尔值(逻辑值)的TRUE和FALSE。我们常常使用开关的状态来设计游戏进程。

玩家选择接受任务的时候

在“我愿意”的选择分支下,新建一条事件指令,点击事件指令中的开关操作,打开开关操作窗口。我们在这里可以调整游戏中开关的数量。注意的是如果大量使用开关可能造成卡顿。在这里我不更改默认数量,直接在0001号开关的名称框内输入“玩家接受了任务。”

开关的名称相当于注释,不会起任何作用,因此即使是空白也是可以的。但是为了保证我们不会混淆这些开关,我们需要设置名称,且名称需要容易辨认。

为游戏开关合理命名,避免混淆

这里0001号开关的用途是:当开关打开时表示玩家接受了任务,当开关关闭时表示玩家拒绝接受任务。因此我将名称设置为“玩家接受了任务”。点击确定,完成开关的操作。

完成NPC分配任务的环节

注意:为了简便,我将这个任务更改为皇家塔洛斯卫队只需要一个恢复药剂,特此说明

接下来我们需要新建一个事件页。点击游戏事件窗口的新建事件页创建一个新的事件页:

新建一个事件页

新的事件页(事件页2)和旧的事件页(事件页1)仍属于同一个游戏事件。当一个游戏事件内有多个事件页存在的时候,游戏会检测事件页出现的条件,只执行满足出现条件的事件页。如果有多个事件页都符合出现条件, 则按照事件页编号从大到小的顺序开始。因而,这两个事件页都同属于在游戏开发中,我们往往需要使用多个事件页模拟不同时期NPC的表现。

在这个例子中,事件页1的事件指令用于模拟玩家接受任务前NPC的表现,事件页2的事件指令用于模拟玩家接受任务后到完成任务前NPC的表现。也就是说只要玩家不接受任务,则在和NPC对话时事件1会一直执行。当玩家接受了任务之后,则事件1不再执行,玩家和NPC对话的时候执行事件2。

在事件2中我们需要设置事件页2的出现条件。事件页2必须是在玩家接受任务之后才能出现的,所以我们需要将事件页2的出现条件设置为:开关0001:玩家接受了任务 开启时

同时,事件页2的图像也要设置成和事件页1一样,即都设置成士兵的样子。否则玩家接受了任务之后,事件页1不再执行,转而执行事件页2的时候,NPC的样子突然改变,可能会让玩家吓一大跳。

在事件页2中,我们为了检测玩家是否完成了任务,需要引入一个条件判断。我们双击执行内容处的空白,新建一条事件指令,在弹出的事件指令中,我们选择分支条件:

分支条件

分支条件窗口中,你需要设置作为分歧条件的项目。比如这里我选择的分支条件是玩家是否持有生命药剂。如果玩家持有生命药剂,则视为任务完成,否则,视为任务没有完成。

条件判断,用来判断是否满足指定条件

在判定任务完成之后,我们需要在玩家持有恢复药剂的时候减去玩家手中的药剂,作为角色交付给NPC的任务道具。我们在持有恢复剂的条件下新建一条事件指令,找到增减物品操作,进行如图设置:

增减物品的操作

在没有完成任务的场合,我们可以让NPC说一句话提示玩家。设置完成后,事件页2应该如下图所示:

设置完成的事件页2

之后我们需要在前几期教程创建的室内地图中摆放一个游戏事件,用来给玩家增加一个治疗药剂。

在桌子上创建一个游戏事件

创建的游戏事件用来为玩家增加治疗药剂。但是增加或减少物品并不会在游戏中提示,也就是说你对着桌子按下确定键,不会有一个窗口弹出老提示你获得了某某道具。你需要打开背包查看物品列表。

在创建药剂事件时,一定要注意将本事件的优先级设置为与人物同层。

设置游戏事件的事件指令

之后我们创建一个快速事件,选择场所移动,将移动目标设置为室外地图的房屋门口,让玩家在获得了药剂的时候可以回到室外交付任务。

创建一个快速的场所移动事件,让玩家在室内的时候能够走到室外

确认无误后,我们运行游戏进行测试。以下是游戏测试效果图:

游戏测试场景
接受任务但尚未完成时
在小屋里获取“恢复药剂”
获取了恢复药剂
交还了任务

但到这里还有一些BUG。可能在调试过程中大家都发现了一些问题,我们需要在下一节教程的时候修复。

这里我先列出一些存在的错误:

  • 当玩家完成任务后,如果背包内没有药剂,则下次和NPC对话,依然会提示“没有完成任务”。

  • 当玩家完成任务后,如果背包内还有药剂,则下次和NPC对话时,任务会重复交付,玩家依然会被扣除恢复药剂。

  • 在室内地图中,玩家可以重复领取恢复药剂。桌子上药剂这个游戏事件不会消失。

  • ...

请大家尝试利用已经学习的开关和事件页尝试解决这些遗留问题。我将在下节教程进行讲解。

我由于长期加班,拖到今天才完成了本篇教程。时间仓促,如有任何问题都可以私信告知,我将尽快回复。

感谢大家的关注。如您喜欢本系列教程,请关注我以免错过更新动态。

如果您是游戏美术,或者有数位板的美术从业人士、学生等各路大神,对“未来游戏计划”感兴趣,请私信联系我。


我是Lem0,自学倡导者,执迷于“不务正业”,被批评“旁门左道”。与大家分享英语/编程/高效自学的所思所想。

已授权“版权印”进行版权保护。获取授权

<a>TBC 未完待续</a>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • 我是Lem0,自学倡导者,执迷于“不务正业”,被批评“旁门左道”。我注册并使用简书,希望能够记录一些我记不住的事情...
    Lem0阅读 1,775评论 1 8
  • 我是Lem0,自学倡导者,执迷于“不务正业”,被批评“旁门左道”。我注册并使用简书,希望能够记录一些我记不住的事情...
    Lem0阅读 2,042评论 19 10
  • 引言 游戏开发分为客户端和服务端,服务端和客户端的逻辑很相似,但是服务端更多在于数值计算和校验,客户端更多在于面向...
    Geons阅读 957评论 0 8
  • 我是Lem0,自学倡导者,执迷于“不务正业”,被批评“旁门左道”。我注册并使用简书,希望能够记录一些我记不住的事情...
    Lem0阅读 4,901评论 9 83
  • 你说一切都是我情愿 恩 我认 认识你十三年 今天是第四千六百二十天 可我们不是青梅竹马 名字那么普通但就是很撩人 ...
    诛心之最阅读 233评论 0 0