猫史档案馆


【RPG游戏教程】杰西本西,在喵帖

用户:JessieCr024JessieCr024查看:2902 回复:51 评论:43 创建时间:2020-04-17T21:17:31


这里还是你们的杰西,大概半年没在社区了

再次为大家带来RPG游戏教程

社区水的不要不要,太*龙门粗口*缺心眼了,希望心有余而力不足的小fo伴得到帮♂助

先贴个视频勾起大家的兴♂趣

这是杰西的RPG游戏框架,链接https://shequ.codemao.cn/work/342喵199

emotion_编程猫_冷漠

因为运行量极大,虽然有些聊胜于无的优化但是依然对配置要求有点高。

RPG游戏的一些其他信息咱也不多说了,大家想知道有如下途径

center_image

那么杰西将从很多小的方面来讲这个东西怎么整

警告:由于以下内容为杰西即兴创作,可能但不一定含有怪梗、个人梗、嘤嘤嘤、cece、哲学,情谨慎阅读

另外讲的顺序很迷

下面是正片

首先RPG游戏的元素多种多样。一个游戏的基础是能动。通常吧,RPG游戏都有角色这里跑那里跑的

RPG的两种移动

杰西个人把RPG游戏的移动归类为两种:主♂动和被动。主动型的指角色移动,场景固定。通过坐标的变化来表现移动。被动型的指场景全部移动,角色位置固定,通过相对运动来表现角色的移动。那么这两种移动方式有什么区别呢?

首先主动型的,因为一个角色满地图跑,很简单很容易做,运算量啥的很小,但是很喵的是这种方式做出来场景不能太大,一般用在游戏大厅这种场景(通天塔大厅为例)。用这种方式做的地图动感不是很强,玩着没那么爽♂

然后被动型的话,就像头顶视频里那样。难做一点,运算量比较大,需要用到一丢丢函数知识。用这种方法做的游戏地图是要多大有多大(卡喵为止),适用于游戏主世界大地图什么的。这样做出来的游戏画面动感交互感比较强,(不得不说很吃优化)

center_image

center_image

(以上是一种被动型的基础实现方法,图中的x和y变量仅用于储存数据,可以不加上去)

RPG游戏的背包系统

RPG游戏可不能缺一个背包系统。包括在社区火到糊的UT等游戏的原作,都会有一个背包系统。这个背包系统实在难做。最好理解的方法是用逻辑积木怼。但是如果用普通的逻辑积木运算堆叠,不仅导致运算量奇大,很容易出bug,加个物品就要改一堆积木,而且还会让你彻夜难眠,满脑子都是“如果……否则”。如果你打算弄一个装很多东西的背包,那不花个半天根本做不到。尤其当你背包里的东西能使用并且有一些效果时,光用逻辑模块给人的感觉就像大脑皮层插满积木然后里面塞满数据。

center_image

(上图是杰西的一个没发布的失败的模板作品,就是用这种HP方法)

这个时候就得学聪明点,不要光靠变量和逻辑积木。这时候,就要让我们的大宝贝儿——列表出来了。

center_image

一个物品,通常有许多数据。例如我们有A、B、C三个东西放在背包里。A吃了回体力,B吃了回水分,C吃了回血。我们首先做一个字典列表,为这些物品编号后整整齐齐的摆进去,然后请个专业团队载歌载舞的……咳咳(做出一副严肃的样子),就像我们学字母时,用字母卡片会有26张找到你头疼,但是用字母表只需要一张而且一目了然(一个字母表才28个字母,一个大型的RPG游戏的物品肯定还更多)。接下来再创建一个或几个数据列表。这些数据列表可以包含很多信息。例如在“回血字典”中,A、B、C对应的值分别为0、0、100。使用物品的时候用函数把这些列表都过一遍,一来方便调用,同时也方便修改,其实和数据库一样(drop警告)。

center_image

center_image

逻辑积木的能力是有极限的!除非……使用列表!逻辑积木!我不要你啦!!!(错乱

这里是核心知识了。其他的界面啊什么的随意就好

(手好累qwq

RPG游戏的战斗系统

接下来嘛,还是继续讲些枯燥无味但是略有p用的东西。虽然不是每个游戏都要打怪,但大多数还是有这种系统的。像社区里现在很火的UT就是这样。战斗系统往往扩展性很强,可以做出一些让人耳目一新的东西。但是在做之前,我们首先要了解它。

战斗系统分为两种,一般分为普通战斗系统和ABS战斗系统。事实上这两种区别是根据RM圈子的说法定义的。这两种系统有什么区别呢?普通战斗系统通常被认为是战斗在其他界面进行的,模式多样的,例如我们的UT,战斗框架也就那样,只是一些敌人的变化。这种战斗模块是可以随意扩展的,例如杰西做的框架里战斗模块是近似UT同人作的。ABS事实上很好实现,所以我们先来说一下普通战斗系统。

普通战斗系统通常会独立制作一个战斗场景,在主世界遇敌时,把敌人数据和玩家数据加载好,然后进行系统设定的操作。需要注意的是,这些模块之间的交互必须很细心的弄,例如遇敌时,主世界的事件都必须停止。否则玩家和敌人战斗的如火如荼时,后台主世界的敌人凑过来,问题就大了

下面先讲一下杰西自己做的战斗系统

center_image

杰西做的战斗系统非常简单,融合了许多UT元素,事实上相当于套了个同人。在这里我们只需要把主世界的进程停止,数据导入,打完以后数据导出就好。这个说实话真的不难,主要是很注重细节

不管做什么一定要注意细节,这是为什么杰西能做出来这个作品的原因(自大

最近看了一下社区很多首页的作品,有bug那些通常都是一些细节不做好。做的时候一定要给自己留debug通道,不然会被bug按在地上☀。例如刚才说到的,从主世界切入战斗系统。如果你刚才看了杰西的作品,可能会发现,若两个敌人同时冲向你,当一个敌人碰到你并处发战斗动画时,另一个敌人会停下来(礼让)。和第一位敌人的战斗结束后,后面的敌人才会追过来。其实只是用一些很简单的变量来达到。假设有一个默认为0的变量a,触发战斗时,我们把a设置为1,那么在其他敌人的源码上加一个逻辑积木,例如敌人移动的源码是“重复执行x坐标增加1”,我们在他头上套一个“如果a=0”,那么很轻松的就能实现。有一些游戏暂停其实也是这样达成。非常简单实用,大家在日常撸代码时一定要多利用这种小技巧。

(下次再讲讲编程中的小技巧?咕咕咕!)

ABS系统基本不用脑,不讲了(懒),最简单是设定一个攻击范围,在范围内点击敌人进行攻击。

好像大概讲完要点了(?)

 

那么RPG游戏的扩展能力是十分的强,大家可以加上好多元素,例如最基础的剧情,还有一些小游戏,像UT里的关卡那样。

(希望这篇帖子能让那些想出大作但是心有余而力不足的人看到啊wwwww)

那么杰西给大家带来的教程先告一段落,有一些补充内容以后再说吧(咕咕咕)


回复

上一页第 1 页 / 共 2 页下一页
JessieCr024JessieCr024

华丽的开头,潦草的收尾√

点赞0


评论


YDSmnxYDSmnx

上去

点赞1


评论

???????????????


Mellin_AmpMellin_Amp

Wryyyyyyyyyyyyyyyyyyyyyyy

点赞0


评论


YDSmnxYDSmnx

捞 

点赞1


评论


一个XXX真萌新一个XXX真萌新

洛阳铲!

点赞0


评论

挖用户的坟=七天

https://shequ.codemao.cn/community/307077

慢慢看

鹅鹅鹅饿


JessieCr024JessieCr024

鸡泡yyds√

点赞1


评论

捕捉


玄武国最最强的暗影刺客玄武国最最强的暗影刺客

挖坟ing

点赞0


评论


LUS圣武士LUS圣武士

emotion_编程猫_厉害了

点赞0


评论


哈迪斯猫哈迪斯猫

666

点赞0


评论


PTG_Little_冷杀PTG_Little_冷杀

666

点赞0


评论


帅气的TT帅气的TT

哇哦,这个教程给我正在做的一个作品极大的灵感,唯一的缺点就是我做出来的东西电脑运行不了(维持在5帧左右😁)

点赞1


评论

哈哈哈哈其实是优化问题,重复执行慎用


ZCH编程小贝壳ZCH编程小贝壳

RPG是个什么

点赞1


评论

俄罗斯RPG-7火箭发射器

hhhc,难道不是游戏类型的一种吗(剧情游戏),算了算了,大佬说的都对

全称是角色扮演游戏哦

大佬说的对!()


LeecLeec

捞一下

点赞1


评论


哈斯迪喵哈斯迪喵

333次浏览……

19条回复……

看来大家对学习……

点赞1


评论


想改个名但都存在了想改个名但都存在了

666,开做

点赞1


评论

这帖子给了我极大的灵感,正在做设置部分,唯一的缺点就是我的笔记本电脑运行的时候可能会崩溃

内存太大了,优化问题,慎用重复执行哦

特别是我家电脑老是蓝屏


YDSmnxYDSmnx

杰西冲冲冲

点赞1


评论

冲 冲 冲……?

???wdn msp杰西


LeecLeec

不过这些特长的代码,真是难为我了

点赞1


评论

模块可以直接抄,但是不能用太多因为会爆卡

欧~收到。顺便捕捉一下

哇哦,小汤

你是在指我?

你的头像啊,你的头像是小汤

看我的头像……也是小汤


时崎狂三qwq时崎狂三qwq

666,我也有灵感了

 

点赞1


评论


想改个名但都存在了想改个名但都存在了

我的脑袋要爆炸了!做了两天才刚开始核心部分!!!啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

点赞1


评论


蓝猫sir诈尸了嗨嘿嗨蓝猫sir诈尸了嗨嘿嗨

可以啊,白嫖教程了,谢谢emotion_doge

点赞1


评论


假编程猫258假编程猫258

信 息 量 过 大

点赞1


评论

全文主旨: ————————♂———— ————♂————————


帅气的TT帅气的TT

kitten3有方便的跨屏广播(各个地图间代码和元素很协调),kitten4有矢量图(kitten3的位图放大后模糊到不能看),好纠结!

点赞0


评论

是啊,最后选择kitten4

I(凑字)

崩坏四:指kitten4经常运行性崩溃


FleroviKumFleroviKum

我的封面作品操作跟这个相似(不打广告),就是人不动背景和NPC动

点赞1


评论

那个作品想法挺好的,但是确实存在一些运行和美化的问题。如果做这种类型的游戏,我觉得你可以参考一下三叶的《猫汤》哦。不过三佬已经把他的作品撤回了,所以我没法附上链接。有待努力呐

呃呃呃,我这辈子能把它做出来就是莫大的成功了


程序猿C6H806程序猿C6H806

简化它不香吗?

点赞0


评论


SHS不是奥尔菲斯而是SHS不是奥尔菲斯而是

太麻烦

点赞0


评论


气人训练师扣子气人训练师扣子

感觉就像大脑皮层插满积木然后里面塞满数据

这个好形象我乖乖摘抄

点赞1


评论

看一下代码有什么可以学习的就行了


TafiTafi

有模板能使用吗emotion_雷电猴_举手

点赞1


评论

https://shequ.codemao.cn/work/34264199

谢\(^o^)/~


咚咚锵哦咚咚锵哦

看看就好了

点赞0


评论


恬酱童屑./恬酱童屑./

没看懂 懒得看

点赞0


评论


YOF冇人GGYOF冇人GG

确定这不是一本书

点赞1


评论

楼主自己即兴写的哦