Project1

标题: 有5帧行走图插件吗? [打印本页]

作者: q282626598    时间: 2017-9-4 09:50
标题: 有5帧行走图插件吗?
MV 自带的是3帧的行走图,我有5帧的 人物行走动画 删除2帧的话 放进去怪怪的..怎么才能修改成5帧的!
作者: tseyik    时间: 2017-9-4 11:20
https://galvs-scripts.com/2015/12/12/mv-character-frames/


作者: j296196585    时间: 2017-9-5 20:52
本帖最后由 j296196585 于 2017-9-5 20:54 编辑

理论支持 无限幅


JAVASCRIPT 代码复制
  1. //==============================================================================
  2. // Feng_MoveFrame.js
  3. //==============================================================================
  4.  
  5. /*:
  6. * @plugindesc (v1.0)Define Character Sprites on your own.
  7. * 自定义行走图
  8. * @author 风宥雪
  9. *
  10. * @help This plugin does not provide plugin commands.
  11. * Version 1.0
  12. *
  13. *功能:自定义人物移动帧数,如name[s6][m12].png,表示人物6帧图片
  14. *为站立(stand)图,12帧图片为行走(move)图;
  15. *
  16. */
  17. Sprite_Character.prototype.setCharacterBitmap = function() {
  18.     //源代码
  19.     this.bitmap = ImageManager.loadCharacter(this._characterName);
  20.     this._isBigCharacter = ImageManager.isBigCharacter(this._characterName);
  21.     //以下为添加
  22.     this._character._total_frame = 0;
  23.     this._character._change_frame = false;
  24.     var sub_str = String(this._characterName).match(/\[s(\d+)\]/i);
  25.     if (sub_str)
  26.        {
  27.         this._character._frame_s = Number(sub_str[1]);
  28.         this._character._change_frame = true;
  29.         this._character._total_frame += this._character._frame_s;
  30.         }
  31.     else
  32.         this._character._frame_s = 0;
  33.     sub_str = String(this._characterName).match(/\[m(\d+)\]/i);
  34.     if (sub_str)
  35.        {
  36.         this._character._frame_m = Number(sub_str[1]);
  37.         this._character._change_frame = true;
  38.         this._character._total_frame += this._character._frame_m;
  39.         }
  40.     else
  41.         this._character._frame_m = 0;
  42.     if (this._character._total_frame == 0)  //防错处理
  43.         this._character._total_frame = 4;
  44. };
  45.  
  46. Sprite_Character.prototype.characterBlockX = function() {
  47.     if(this._character._change_frame)
  48.         return  0;
  49.     else
  50.         {
  51.          if (this._isBigCharacter) {
  52.             return 0;
  53.             } else {
  54.                 var index = this._character.characterIndex();
  55.                 return index % 4 * 3;
  56.             }
  57.         }
  58. };
  59.  
  60. Sprite_Character.prototype.characterBlockY = function() {
  61.     if(this._character._change_frame)
  62.         return  0;
  63.     else
  64.         {
  65.          if (this._isBigCharacter) {
  66.             return 0;
  67.             } else {
  68.                 var index = this._character.characterIndex();
  69.                 return Math.floor(index / 4) * 4;
  70.             }
  71.         }
  72. };
  73.  
  74. Sprite_Character.prototype.patternWidth = function() {
  75.     if (this._tileId > 0) {
  76.         return $gameMap.tileWidth();
  77.     } else if(this._character._change_frame) {
  78.         return this.bitmap.width / this._character._total_frame;
  79.     } else  {
  80.          if (this._isBigCharacter) {
  81.              return this.bitmap.width / 3;
  82.              } else {
  83.         return this.bitmap.width / 12;
  84.              }
  85.         }
  86.     };
  87.  
  88. Sprite_Character.prototype.patternHeight = function() {
  89.     if (this._tileId > 0) {
  90.         return $gameMap.tileWidth();
  91.     } else if(this._character._change_frame) {
  92.         return this.bitmap.height / 4;
  93.     } else {
  94.         if (this._isBigCharacter) {
  95.         return this.bitmap.height / 4;
  96.         } else {
  97.           return this.bitmap.height / 8;
  98.           }
  99.        }
  100.    };
  101.  
  102. var feng_char_base_initMembers = Game_CharacterBase.prototype.initMembers;
  103. Game_CharacterBase.prototype.initMembers = function() {
  104.     feng_char_base_initMembers.call(this);
  105.     this._moveSpeed = 4;           //在这里可以更改角色移动速度
  106.     this._pattern = 0;
  107.     this._total_frame = 0;
  108.     this._change_frame = false;
  109.     this._frame_s = 0;
  110.     this._frame_m = 0;
  111. };
  112.  
  113.  
  114. Game_CharacterBase.prototype.updateAnimationCount = function() {
  115.     if (this.isMoving() && this.hasWalkAnime()) {
  116.         this._animationCount += 2.0; //在这里可以更改跑步动画刷新速度(默认1.5)
  117.     //静止有动态图时也要更新计数
  118.     } else if (this.hasStepAnime() || !this.isOriginalPattern() || this._frame_s > 1 || this.hasWalkAnime()) {
  119.         this._animationCount++;
  120.     }
  121. };
  122.  
  123. Game_CharacterBase.prototype.updatePattern = function() {
  124.     if(this._change_frame)
  125.     {
  126.     if (!this.hasStepAnime() && this._stopCount > 0) {
  127.         if (this._frame_s == 0)
  128.             this._pattern = (this._pattern + 1) % this._frame_m;
  129.         else
  130.             this._pattern = (this._pattern + 1) % this._frame_s;
  131.     } else {
  132.         if (this._frame_m == 0)
  133.             this._pattern = (this._pattern + 1) % this._frame_s;
  134.         else//有行走图则采用行走图
  135.             {
  136.             var temp = (this._pattern - this._frame_s + 1) % this._frame_m;
  137.             this._pattern= this._frame_s + (temp > 0 ? temp : 0);
  138.             }
  139.         }
  140.     }
  141.     else
  142.     {
  143.       if (!this.hasStepAnime() && this._stopCount > 0) {
  144.         this.resetPattern();
  145.       } else {
  146.         this._pattern = (this._pattern + 1) % this.maxPattern();
  147.       }
  148.     }
  149. };
  150. Game_CharacterBase.prototype.maxPattern = function() {
  151.     return this._total_frame;
  152. };
  153.  
  154. Game_CharacterBase.prototype.pattern = function() {
  155.     if(this._change_frame)
  156.         return this._pattern;
  157.     else
  158.         return this._pattern < 3 ? this._pattern : 1;
  159. };
  160.  
  161. Game_CharacterBase.prototype.setDirection = function(d) {
  162.     if (!this.isDirectionFixed() && d) {
  163.         this._direction = d;
  164.     }
  165. };

1[s15].png (241.62 KB, 下载次数: 11)

1[s15].png

NPC009[m4][s4].png (576.09 KB, 下载次数: 18)

NPC009[m4][s4].png

草药-延年果[s4].png (30.28 KB, 下载次数: 8)

草药-延年果[s4].png

作者: q282626598    时间: 2017-9-11 01:02
j296196585 发表于 2017-9-5 20:52
理论支持 无限幅

谢谢大神!
作者: j296196585    时间: 2017-9-11 22:50
q282626598 发表于 2017-9-11 01:02
谢谢大神!

可惜了 论坛居然倒闭了
作者: camy7602    时间: 2019-10-31 17:54
j296196585 发表于 2017-9-5 20:52
理论支持 无限幅

想問一下有沒有辦法ˋ改站立圖的速度




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