赞 | 0 |
VIP | 0 |
好人卡 | 9 |
积分 | 1 |
经验 | 13328 |
最后登录 | 2023-2-12 |
在线时间 | 278 小时 |
Lv1.梦旅人 尽头
- 梦石
- 0
- 星屑
- 119
- 在线时间
- 278 小时
- 注册时间
- 2010-6-20
- 帖子
- 1280
|
ChaoSword 发表于 2013-3-30 13:41
XAS对我来说比较纠结- -
打算先做事件类ARPG练手- -
不过就是这个类型,不让发图,我把我设置的事件 ...
打开脚本编辑器,查看Game_Event类.
在定义class内加入语句attr_accessor :hp, :sp, :exp
如图
这样做之后,所有事件都有它自己的变量hp, sp, 和exp。
既然现在每个事件有了自己的hp, sp, exp变量,那么,就可以在事件页中使用它。地图-->事件-->执行内容-->脚本
首先,先用脚本获取当前事件的实例。并且用变量@ev来保存获取的结果。 脚本:@ev = $game_map.events[@event_id]
执行该脚本之后,当前事件的信息都会被存在@ev变量中,这样的好处就是不用再获取事件,方便很多。不过要注意的是,@ev是局部变量,它只在本事件中有效,在别的事件中是无效的。
如图
接下来就是进行敌人的设置了,设置它的hp,sp和exp。
为了避免多次设置它的属性,我们做一个条件分歧。条件分歧:脚本:not @ev.hp。勾上当条件不符合的场合时的设置。
分歧好后,在条件中进行变量hp, sp, exp的初始化。
如图
这样,事件就有它自己的hp,sp,exp了。
另外,我建议敌人事件的触发条件设置为并行处理,这样做可以做出敌人在一定条件内会自动实时攻击,而玩家也可以在一定条件内实时攻击。原本一般的纯事件ARPG的缺点就是确定键执行事件,然后自动的主角打一下,敌人回击一下,跟回合制没什么分别。而并行处理,就可以由制作人设置敌人如何攻击,几时攻击;玩家呢也可以决定主角如何攻击、几时攻击。
如图
接下来就是ARPG处理了。在条件分歧:脚本 not @ev.hp的以外的场合里设置敌人的攻击条件。
我在这里示范的是敌人跟主角的坐标差1个格子时敌人就发动攻击,条件分歧:脚本:(@ev.x - $game_player.x).abs < 2 and (@ev.y - $game_player.y).abs < 2
然后在条件分歧内调用公共事件用来处理敌人的行为就可以了。
如图
在执行内容的最下行加上调用公共事件,用来处理主角的行为。
如图
这样一个简单的敌人就设置好了。
最后就是编写公共事件来处理伤害之类的了,这里我就不写复杂的伤害公式了,复杂的伤害波动什么的让up主自己发掘啦。
以下是我简单写的处理主角的公共事件:
然后是敌人的:
好了,一个算比较好的纯事件ARPG搞定了。更多的条件分歧由制作者发挥啦。
设置更多的敌人只需要改改数据,改改发动攻击判定就可以拉。
其实脚本只要大胆去用,没什么难不难可言的。
纯手写。累了2个小时。。。 |
评分
-
查看全部评分
|