【RPG Maker MZ/MV】自由调整敌人的BUFF显示位置(Y轴部分)

文章介绍了如何通过修改RMMZ的游戏引擎代码,结合数据库中的META属性,为不同敌人设置个性化的BUFF显示位置。通过添加一个可变的偏移量offSetY,允许开发者在敌人备注栏中设定每个敌人的BUFF图标位置,从而优化游玩体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以RMMZ为例,BUFF显示在角色的头顶位置,那如果敌人的图片尺寸过大,那BUFF的图标也会特别靠上。游玩体验就比较差。那如果对于不同的敌人,设置不同的BUFF位置,要如何实现咧?

Sprite_Enemy.prototype.updateStateSprite = function() {
    this._stateIconSprite.y = -Math.round((this.bitmap.height + 40) * 0.9);//图片的高度尺寸+40像素,再成0.9倍,再取整,得到BUFF的Y坐标
    if (this._stateIconSprite.y < 20 - this.y) {
        this._stateIconSprite.y = 20 - this.y;//强制设置Y在一个范围内
    }
};

这个this._stateIconSprite.y就是BUFF的Y坐标。可见默认的公式并不能满足我们所有的敌人图片。但又不能一杆子打翻一船。
于是我们可以借助数据库中敌人的备注栏,也就是META属性。
我们可以对Sprite_Enemy.prototype.updateStateSprite这个函数做以下改动:

Sprite_Enemy.prototype.updateStateSprite = function() {
        const offSetY = Number(this._battler.enemy().meta.MNKR_EnemyStateIconOffset || 0);
//定义一个offSetY变量,而这个变量数值通过enemy备注栏中MNKR_EnemyStateIconOffset后的数字来设置。
//例如在备注栏中<MNKR_EnemyStateIconOffset:200>
    this._stateIconSprite.y = -Math.round((this.bitmap.height + 40) * 0.9)+ offSetY;//向下偏移像素量offSetY
    if (this._stateIconSprite.y < 20 - this.y) {
        this._stateIconSprite.y = 20 - this.y;
    }
};

这个思路来自于MNKR系列插件,函数中MNKR_EnemyStateIconOffset仅仅是个标签名字,大家可以自由设置名称,与备注栏中保持一致即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值