【RPG Maker MV 仿新仙剑 战斗场景UI (一)】

战斗场景制作

RPG Maker 中战斗场景的UI是比较经典的日式RPG的UI布局,现在尝试将它变成仙剑这样的布局看看。。。

原版仙剑战斗UI

这里只截图了开始的战斗UI其余部分会在制作时放出
原版仙剑战斗UI

原版RPG Maker MV战斗UI

RMMV战斗UI
初始看着还是挺简陋的,当然现在是没有开启侧视战斗场景的。
侧视战斗
从这里就可以看出需要改的地方有不少了。
有个问题,由于之前法术的菜单已经修改了,因此使用会进行报错,需要进行名称的修改,虽然在法术的场景中是正常的,但在战斗的法术中就会出现错误找不到对应的初始化方法,这应该就是名称导致的解释器找不到对应的方法,因为继承时是按照原有的类进行继承的,所以需要进行名称上的变更,这点也是通过好几次调试发现就是过不去才想起来的!!!
由于涉及到的窗口过多,因此进行分场景及窗口来进行更新吧!

启航

战斗的菜单可以简单划分为战斗指令菜单、额外战斗指令菜单、物品操作菜单、人物状态菜单这几项,另外的物品使用、物品装备、法术使用、物品投掷、人物具体状态菜单等,可以用额外场景进行实现或后期修改对应的菜单项完成UI操作。

战斗菜单

战斗指令菜单中有攻击、合击、法术、其他,这四个选项,其中合击是优先级最高的操作,后期会进行正式战斗的测试时进行完善,现在只会用于普通攻击的操作。
初期完成菜单图片:
战斗指令
战斗场景代码:

function Pal_Scene_Battle() {
   
    this.initialize.apply(this, arguments);
}
Pal_Scene_Battle.prototype = Object.create(Scene_Base.prototype);
Pal_Scene_Battle.prototype.constructor = Pal_Scene_Battle;

Pal_Scene_Battle.prototype.initialize = function() {
   
    Scene_Base.prototype.initialize.call(this);
};
Pal_Scene_Battle.prototype.create = function() {
   
    Scene_Base.prototype.create.call(this);
    this.createDisplayObjects();
};
Pal_Scene_Battle.prototype.start = function() {
   
    Scene_Base.prototype.start.call(this);
    this.startFadeIn(this.fadeSpeed(), false);
    BattleManager.playBattleBgm();
    BattleManager.startBattle();
};
Pal_Scene_Battle.prototype.update = function() {
   
    var active = this.isActive();
    $gameTimer.update(active);
    $gameScreen.update();
    this.updateStatusWindow();
    this.updateWindowPositions();
    if (active && !this.isBusy()) {
   
        this.updateBattleProcess();
    }
    Scene_Base.prototype.update.call(this);
};
/** 更新作战流程
 * 
 */
Pal_Scene_Battle.prototype.updateBattleProcess = function() {
   
    if (!this.isAnyInputWindowActive() || BattleManager.isAborting() ||
            BattleManager.isBattleEnd()) {
   
        BattleManager.update();
        this.changeInputWindow();
    }
};
/** 是否有任何输入窗口处于活动状态
 * 
 */
Pal_Scene_Battle.prototype.isAnyInputWindowActive = function() {
   
    return (this._partyCommandWindow.active ||
            this._actorCommandWindow.active ||
            this._skillWindow.active ||
            this._itemWindow.active ||
            this._actorWindow.active ||
            this._enemyWindow.active);
};
/** 更改输入窗口
 *  
 */
Pal_Scene_Battle.prototype.changeInputWindow = function() {
   
    if (BattleManager.isInputting()) {
   
        if (BattleManager.actor()) {
   
            this.startActorCommandSelection();
        } else {
   
            this.startPartyCommandSelection();
        }
    } else {
   
        this.endCommandSelection();
    }
};

//停止
Pal_Scene_Battle.prototype.stop = function() {
   
    Scene_Base.prototype.stop.call(this);
    if (this.needsSlowFadeOut()) {
   
        this.startFadeOut(this.slowFadeSpeed(), false);
    } else {
   
        this.startFadeOut(this.fadeSpeed(), false);
    }
    this._statusWindow.close();
    this._partyCommandWindow.close();
    this._actorCommandWindow.close();
};
/** 结束战斗
 * 
 */
Pal_Scene_Battle.prototype.terminate = function() {
   
    Scene_Base.prototype.terminate.call(this);
    $gameParty.onBattleEnd();
    $gameTroop.onBattleEnd();
    AudioManager.stopMe();
    ImageManager.clearRequest();
};

//需要慢速淡出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值