Project1

标题: 请问让技能动画大小根据敌人图像大小而改变的方法 [打印本页]

作者: 夏的66rpg    时间: 2021-10-24 15:49
标题: 请问让技能动画大小根据敌人图像大小而改变的方法
比如我增加了一个保护盾的持续动画,如果该状态应用到角色身上动画大小刚刚好,应用到敌人身上就太小了,请问有什么插件可以解决这一问题吗?
作者: nie89    时间: 2021-10-24 16:17
给他单独做一个技能……
作者: 任小雪    时间: 2021-10-24 16:20
把敌人做得跟我方角色一样大
作者: 在野月光族    时间: 2021-10-28 20:52
仅供参考,不支持战斗画面以外的场景使用。

JAVASCRIPT 代码复制下载
  1. //        RMMV_AnimationScaling_v1_6_2.js
  2.  
  3. /*:
  4. @--- 目录 ---
  5. @param 缩放比例
  6.  
  7. @--- 参数 ---
  8. @param scaling
  9. @parent 缩放比例
  10. @default 25
  11. @desc 调整动画效果在游戏中的贴图比例,大小默认为原图的 25%
  12.  
  13. @--- 说明 ---
  14. @help
  15. 这家伙很懒,什么都不想说。
  16.  
  17. */
  18.  
  19. var MV = MV || {};
  20. var pm = PluginManager.parameters('RMMV_AnimationScaling_v1_6_2');
  21. MV.scaling = Number(pm.scaling);
  22.  
  23. // 自定义函数:判断动图附身的目标是否为角色单位
  24. Sprite_Animation.prototype.isActor = function(target) {
  25.         var result = [];
  26.         result[0] = target.constructor.name;
  27.         result[1] = target.parent.constructor.name;
  28.         result[2] = 'Sprite_Enemy';
  29.         result[3] = 'Sprite_Actor';
  30.         return result[0] === result[2] ? false : result[1] === result[3];
  31. };
  32.  
  33. // 原脚本函数: 更新动画帧
  34. Sprite_Animation.prototype.updateCellSprite = function(sprite, cell) {
  35.     var pattern = cell[0];
  36.     if (pattern >= 0) {
  37.         var sx = pattern % 5 * 192;
  38.         var sy = Math.floor(pattern % 100 / 5) * 192;
  39.         var mirror = this._mirror;
  40.                 var scale = this.isActor(this._target)? MV.scaling/100 : 1;        //         <<<        插入参数:如果动图目标是角色单位就缩小比列,否则还原比列
  41.         sprite.bitmap = pattern < 100 ? this._bitmap1 : this._bitmap2;
  42.         sprite.setFrame(sx, sy, 192, 192);
  43.         sprite.x = cell[1];
  44.  
  45.                 // sprite.y = cell[2];                                                                                                                // 原脚本
  46.                 sprite.y = cell[2] * scale;                                                                                                //         <<<        修改
  47.         sprite.rotation = cell[4] * Math.PI / 180;
  48.  
  49.                 // sprite.scale.x = cell[3] / 100;                                                                        // 原脚本
  50.                 sprite.scale.x = cell[3] * scale/ 100;                                                       //         <<<        修改
  51.         if(cell[5]){
  52.             sprite.scale.x *= -1;
  53.         }
  54.         if(mirror){
  55.             sprite.x *= -1;
  56.             sprite.rotation *= -1;
  57.             sprite.scale.x *= -1;
  58.         }       
  59.                 // sprite.scale.y = cell[3] / 100;                                                                        // 原脚本
  60.                 sprite.scale.y = cell[3] * scale/ 100;                                                        //         <<<        修改
  61.         sprite.opacity = cell[6];
  62.         sprite.blendMode = cell[7];
  63.         sprite.visible = true;
  64.     } else {
  65.         sprite.visible = false;
  66.     }
  67. };






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1