设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

横版格斗战斗脚本使用教学 Part.1(人物创建篇)

2009-3-15 15:42| 发布者: ONEWateR| 查看: 10998| 评论: 0|原作者: 我爱龙|来自: 点此进入发布帖

摘要: 第二篇教程(必杀技制作篇)地址:http://bbs.66rpg.com/forumTopicRead.asp?id=117333第三篇教程(飞行道具、AI篇)地址:http://bbs.66rpg.com/forumTopicRead.asp?id=117455想做出如《幻想传说》那样的横板战斗吗?

第二篇教程(必杀技制作篇)地址:
http://bbs.66rpg.com/forumTopicRead.asp?id=117333
第三篇教程(飞行道具、AI篇)地址:
http://bbs.66rpg.com/forumTopicRead.asp?id=117455

想做出如《幻想传说》那样的横板战斗吗?想DIY一个属于自己的格斗RPG吗?用RMXP实现并不是梦想。而实现的方法,就是樱雅开发的Full-Move BattleSystem

原版范例下载
http://bbs.66rpg.com/UP_PIC/200801/Full-Move_Battle_System.rar

简化版脚本下载地址:(此脚本已经过我的修改,增强了一些格斗感,本教程也是以此版本为标准)
http://bbs.66rpg.com/UP_PIC/200801/我爱龙_横板格斗脚本.rar

使用说明:这个脚本文件是直接从我工程里拿出来的。各位要把分割线之内的Window_EquipItem和Full CBS 的几个Part一起拷到自己的工程里,其他的不要复制,否则直接用会出错。

很多网友说不会用这个脚本,由于在下近日正在用这个脚本做游戏,所以略微了解了一些皮毛,目前将我所知的部分向大家做些解释,相信看懂了之后,要做出自己的格斗RPG也不是那么困难了。

首先,这个脚本的作用是完全改变原来的战斗方式,从回合制变成了横板即时格斗。操作方式:上下左右控制方向,双击左或右是加速跑;C键(以下皆以键盘上的按键为准)为普通攻击,连按三下是三连击;X键是必杀技,X、前X、上X和下X分别是四种不同的必杀技,需要事先在技能窗口设定好;A键是跳跃;S键是防御;D键是暂停游戏,同时打开战斗选项窗口,第一个选项是使用道具,第二个选项是设定技能,第三个选项是逃跑;W键是换人,作用是当共同战斗的角色有2人以上时,按此键可以切换自己操纵的角色。

理解了基本的操作方式,接下来就是制作自己的角色人物了。由于战斗是横板格斗,因此需要各种各样的动作,包括待机、行走、攻击等等。这里我用从KOF游戏中提取出来的gif图片为例说明一下制作方法。

前期的准备:在Battlers文件夹中放一张图片,命名为weapon_001,图片内容为空也没关系,但一定要有这张图片。

万事开头难,首先我们要知道如何创建一个人物。先在游戏工程的数据库里新建一个角色,行走图可以随便设,但战斗图先不要设。然后我们打开脚本,在“FullCBS part-5 (Reflex)”里面,找到34行的case actor_id,这里就是设置一个人物的各种基本属性,大多数属性的旁边都有注释,不难看懂。我来解释一下@stand_body_rect、 @sit_body_rect和 @down_body_rect分别是人物站立、下蹲和倒地时的判定范围。相当于人物的坐标和大小。= Rect.new(X坐标, Y坐标, 人物宽度, 人物高度)设完之后我们可能对这些数字没有概念,不知道到底人物坐标在哪儿,到底有多大,别急,后面会慢慢讲到。后面的战技设定是规定了这个人物可以使用多少基本的攻击动作。比如@forte_ids[ 1]        = 121 # 弱攻撃 意思是使用弱攻击就等于使用121号特技。以下依此类推。

我们再把脚本往下拉,在设定完actor之后,会看到def setup_enemy_reflexes(enemy_id)和case enemy_id,这里是设定敌人的,方法和设定角色一样,别忘了在数据库中先建好一个敌人再到脚本中这个位置进行设置。

设定好人物之后没有战斗图怎么办?首先我们需要一张默认的战斗图,比如我要做一个二阶堂红丸,那就选一张红丸的战斗图,取名叫BENIMARU。注意这个BENIMARU一旦确定,就不要随意更改,因为后面的一系列图片都要以这个作为基础。同时在数据库中为角色设置好这张战斗图,也可以顺带新建一个敌人,也用这张战斗图,用以测试。

接下来看这张照片

为什么会有这么多红丸呢?其实这就是他的动作图。请大家搜索脚本中的“def do_stand”,会找到下面这段话
 def do_stand
   return if @me.now_form_id/10 == 0 and !@attack_motion_plan.empty?
   @dashing = false
   @attack_motion_plan = [1,nil,nil,2,nil,nil,...
 end
这里面的1,nil,nil,2,nil,nil,...就是人物站立时的动作编号。看一下,最大的数字是10,就表示人物站立待机的动作需要10帧。那么我们就需要10张战斗图,分别代表这10帧的动作。而图片的来源很简单,下载一张红丸站立时的gif图片,用gif movie gear打开,看看是不是有10帧的内容,多了就删掉重复的,少了就复制几帧贴在后面,总之补足10帧就行。然后选“另存为”,保存类型PNG,风格为“独立图像”,选“所有的”,在左边的白框中键入文件名范例“BENIMARU_00”,这时会看到下面的“文件名范例”会出现“BENIMARU_001”和“BENIMARU_002”。不错,这样保存的话,他就会自动在文件名前缀后面编号,从而得到从“_001”到“_010”的10张图片,当然,_010这张名字得改一下,默认的是_0010。

改完之后将这10张图片也都放进Battlers文件夹里。此时进入战斗测试,看看,是不是红丸在站立待机时已经会动了呢?

以此类推,其他的动作也可以通过相同的方法完成,我就不一一赘述了,只把动作对应的编号讲一下。
站立:001-010
行走:011-020
奔跑:021-026
下蹲:031
跳起上升阶段:041
跳起下降阶段:051
防御:061
挨打:071-074
倒地(或曰死亡图):091
战斗胜利动作:901-950(可以自己改得更多)
战斗险胜动作:801-850(同上)
普通攻击(第一下和第二下是一样的):111-113
普通攻击(第三下):116-120
冲跑攻击(在奔跑中按攻击键):121-130
前强攻击、上强攻击(按住前或上再按攻击键):131-140
下蹲攻击(按住下和攻击键):141-150
空中攻击:152
空中强攻击:151

以上是一个人物的基本动作。编号161-800目前都处于空闲状态,可以日后用来做必杀技。

那么,现在一个人物就算做完了吗?在战斗中攻击试试,是不是会脚本出错?那是因为虽然在脚本中设定了战技,但在数据库中还没有设定过。刚才说到的弱攻击就是121号特技,那么就在数据库的“特技”一栏中设一个121号特技,名字就叫弱攻击。同理122-127都要设好,是地面上的攻击技,而131-135是空中的攻击技。

最后,关于人物坐标,如何确定自己设置的坐标和高宽是合理的呢?其实打开脚本,在FullCBS part-8的第9行,将ENABLE_RECTLINE_WINDOW = false改成= true,这样在战斗中就会把人物设定的坐标和长宽矩形给画出来,一目了然,但是游戏速度被大幅降低,只是用于测试之用。

说了这么多,如果您能自己试着做出一个人物出来了,那我写这篇东西就没白费。如果大家支持,我会再继续介绍如何制作必杀技以及如何设定敌人AI等方法。

欢迎拍砖

8

鲜花

刚表态过的朋友 (8 人)

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 02:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部