快捷导航
查看: 321|回复: 0

[技巧] 关于战斗中角色向前移动一步的那些事

[复制链接]
会员等级

积分信息
金币:733
金钱:0
元宝:20
活跃:187
发电:0

荣誉勋章
热心会员优秀版主首批会员最佳新人

TA的角色
UID: 6 发表于 2023-2-17 10:46:30 | 显示全部楼层 |阅读模式
1.JPG 2.JPG

如图所示,MZ和MV在横板战斗中,角色在选择行动和执行行动这两处,会向前移动一步。
以MZ为例,可以在rmmz_sprites.js找到这一段:
[JavaScript] 纯文本查看 复制代码
Sprite_Actor.prototype.shouldStepForward = function() {
    return this._actor.isInputting() || this._actor.isActing();
};

_actor.isInputting即为选择行动时,_actor.isActing即为执行行动时。所以如果只想在行动的时候向前移动只需要改成如下即可:
[JavaScript] 纯文本查看 复制代码
Sprite_Actor.prototype.shouldStepForward = function() {
    return this._actor.isInputting();
};

这样在CTB等模式中,画面就会精简很多,不会角色乱跳了。

再进阶一下,搜索shouldStepForward,可以看到另一处有以下代码:
[JavaScript] 纯文本查看 复制代码
/**更新目标位置 */
Sprite_Actor.prototype.updateTargetPosition = function() {
    if (this._actor.canMove() && BattleManager.isEscaped()) {
        this.retreat();
    } else if (this.shouldStepForward()) {/** 需要前进*/
        this.stepForward();//(左)前进48像素
    } else if (!this.inHomePosition()) {/** 不 是处于本位(SV图初始站立位置)*/
        this.stepBack();//返回本位(4次(右)慢走12像素)
    }
};

继续深挖搜索stepForward,找到以下代码:
[JavaScript] 纯文本查看 复制代码
/**步骤推进 */
Sprite_Actor.prototype.stepForward = function() {
    this.startMove(-48, 0, 12);/** 开始移动*(x坐标,  y坐标,持续时间/帧)*/
};

/**步骤返回 */
Sprite_Actor.prototype.stepBack = function() {
    this.startMove(0, 0, 12);/** 开始移动*(x坐标,  y坐标,持续时间/帧)*/
};

/**撤退 */
Sprite_Actor.prototype.retreat = function() {
    this.startMove(300, 0, 30);/** 开始移动*(x坐标[从当前点开始计算位置,而不是屏幕0,0点],  y坐标,持续时间/帧)*/
};

这些数字就是角色位移距离和持续时间。

继续深挖startMove,找到系统定义的函数:
[JavaScript] 纯文本查看 复制代码
Sprite_Battler.prototype.startMove = function(x, y, duration) {
    if (this._targetOffsetX !== x || this._targetOffsetY !== y) {
        this._targetOffsetX = x;
        this._targetOffsetY = y;
        this._movementDuration = duration;
        if (duration === 0) {
            this._offsetX = x;
            this._offsetY = y;
        }
    }
};

我们可以打开思路,用这个函数照葫芦画瓢,做一个角色移动到画面中心位置,突出重点等等之类的玩法了。

最近访客

回复 论坛版权

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
您需要登录后才可以回帖 登录 | 加入民族

本版积分规则

论坛用工具

蓝凑云 hello图床 聚合图床 TinyPNG remove 代码测试 颜色代码 颜色代码2

Powered by Discuz!

© 2001-2013 Comsenz Inc.

实用工具

AI人工智能图片放大 图片无损放大 Deepl翻译器 百宝箱 孟坤工具箱 在线压缩图片 图片切圆角

您一共访问了本站 加载中...

Archiver|小黑屋|RPG民族

GMT+8, 2024-11-21 21:08 , Processed in 0.166671 second(s), 45 queries .

快速回复 返回顶部 返回列表