// 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;
}
};