查看: 2666|回复: 3

[有事请教] 请问让技能动画大小根据敌人图像大小而改变的方法

[复制链接]
梦石
0
星屑
3662
在线时间
1133 小时
注册时间
2017-4-6
回帖
229

开拓者

发表于 2021-10-24 15:49:34 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
比如我增加了一个保护盾的持续动画,如果该状态应用到角色身上动画大小刚刚好,应用到敌人身上就太小了,请问有什么插件可以解决这一问题吗?
梦石
0
星屑
5649
在线时间
600 小时
注册时间
2020-2-20
回帖
217
发表于 2021-10-24 16:17:54 | 显示全部楼层
给他单独做一个技能……
回复

使用道具 举报

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
回帖
1175
发表于 2021-10-24 16:20:14 | 显示全部楼层
把敌人做得跟我方角色一样大
回复

使用道具 举报

梦石
0
星屑
3053
在线时间
318 小时
注册时间
2015-4-30
回帖
92
发表于 2021-10-28 20:52:19 | 显示全部楼层
仅供参考,不支持战斗画面以外的场景使用。

[pre lang="javascript" file="RMMV_AnimationScaling_v1_6_2.js"]

//        RMMV_AnimationScaling_v1_6_2.js

/*:
@--- 目录 ---
@param 缩放比例

@--- 参数 ---
@param scaling
@parent 缩放比例
@default 25
@desc 调整动画效果在游戏中的贴图比例,大小默认为原图的 25%

@--- 说明 ---
@help
这家伙很懒,什么都不想说。

*/

var MV = MV || {};
var pm = PluginManager.parameters('RMMV_AnimationScaling_v1_6_2');
MV.scaling = Number(pm.scaling);

// 自定义函数:判断动图附身的目标是否为角色单位
Sprite_Animation.prototype.isActor = function(target) {
        var result = [];
        result[0] = target.constructor.name;
        result[1] = target.parent.constructor.name;
        result[2] = 'Sprite_Enemy';
        result[3] = 'Sprite_Actor';
        return result[0] === result[2] ? false : result[1] === result[3];
};

// 原脚本函数: 更新动画帧
Sprite_Animation.prototype.updateCellSprite = function(sprite, cell) {
    var pattern = cell[0];
    if (pattern >= 0) {
        var sx = pattern % 5 * 192;
        var sy = Math.floor(pattern % 100 / 5) * 192;
        var mirror = this._mirror;
                var scale = this.isActor(this._target)? MV.scaling/100 : 1;        //         <<<        插入参数:如果动图目标是角色单位就缩小比列,否则还原比列
        sprite.bitmap = pattern < 100 ? this._bitmap1 : this._bitmap2;
        sprite.setFrame(sx, sy, 192, 192);
        sprite.x = cell[1];
               
                // sprite.y = cell[2];                                                                                                                // 原脚本
                sprite.y = cell[2] * scale;                                                                                                //         <<<        修改
        sprite.rotation = cell[4] * Math.PI / 180;
               
                // sprite.scale.x = cell[3] / 100;                                                                        // 原脚本
                sprite.scale.x = cell[3] * scale/ 100;                                                       //         <<<        修改
        if(cell[5]){
            sprite.scale.x *= -1;
        }
        if(mirror){
            sprite.x *= -1;
            sprite.rotation *= -1;
            sprite.scale.x *= -1;
        }       
                // sprite.scale.y = cell[3] / 100;                                                                        // 原脚本
                sprite.scale.y = cell[3] * scale/ 100;                                                        //         <<<        修改
        sprite.opacity = cell[6];
        sprite.blendMode = cell[7];
        sprite.visible = true;
    } else {
        sprite.visible = false;
    }
};[/pre]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部