JAVASCRIPT 代码 下载
- /*:
 -  * 原理:
 -  * 把敌人当成格子,根据纵向绘制横向。
 -  * 缺点:
 -  * 1.每个敌人都需要添加注释,否则这个敌人会失踪……
 -  * 例如:
 -  * 2.在敌群添加敌人时必须恰好填满每列最大格子数。
 -  * 例如:一列规定为4个格子时,依次放一个占1个格子的敌人+一个占2个格子的敌人+一个占1个格子的敌人则视为填满这一列。
 -  *       若依次放三个占1个格子的敌人+一个占2个格子的敌人则超出这列的最大格子数,会发生诡异的排列。
 -  * @author XMJL
 -  * @plugindesc  sort troop as grid.
 -  *
 -  * @param EnemyColGrid
 -  * @default 4
 -  *
 -  * @param EnemyGridWidth
 -  * @default 200
 -  *
 -  * @param EnemyGridHeight
 -  * @default 150
 -  *
 -  * @param ScreenLeft
 -  * @default 100
 -  *
 -  * @param ScreenTop
 -  * @default 100
 -  */
 - (function()
 - {
 -     var param = PluginManager.parameters('XMJL_SortEnemyGrid');
 -     var EnemyColGrid=Number(param['EnemyColGrid']);
 -     var EnemyGridWidth=Number(param['EnemyGridWidth']);
 -     var EnemyGridHeight=Number(param['EnemyGridHeight']);
 -     var ScreenLeft=Number(param['ScreenLeft']);
 -     var ScreenTop=Number(param['ScreenTop']);
 -     var EnemyType;
 -     var FillFull;
 -     var _Game_Enemy_initMembers=Game_Enemy.prototype.initMembers;
 -     Game_Enemy.prototype.initMembers=function()
 -     {
 -         _Game_Enemy_initMembers.call(this);
 -         EnemyType=new Array();
 -         FillFull=0;
 -     }
 -     Game_Enemy.prototype.screenX = function()
 -     {
 -         if($gameSystem.isSideView())
 -         return ScreenLeft+FillFull*EnemyGridWidth;
 -         else
 -         return this._screenX;
 -     };
 -    Game_Enemy.prototype.screenY = function() {
 -           if($gameSystem.isSideView())
 -           {
 -               var index=this.index();
 -               var enemy=this.enemy();
 -               var type= Number(enemy.meta.EnemyGrid);
 -               var lockAnchor=type*EnemyGridHeight/2;
 -               var lastgrid=XMJL_caluEnemyGrid(index,type);
 -               if(lastgrid==0)
 -                   return ScreenTop+lockAnchor;
 -               else
 -                   return ScreenTop+lastgrid*EnemyGridHeight+lockAnchor;
 -           }
 -           else
 -           return this._screenY;
 -     };
 -     var XMJL_caluEnemyGrid=function(index,type)
 -     {
 -         var sum;
 -          if(index==0)
 -          {
 -              sum=0;
 -              EnemyType[index]=type;
 -              return 0;
 -          }
 -          else
 -          {
 -              sum=EnemyType[index-1]+type;
 -              if(sum>=EnemyColGrid)
 -              {
 -                  FillFull++;
 -                  EnemyType[index]=sum%EnemyColGrid;
 -              }
 -              else
 -              EnemyType[index]=sum;
 -              return EnemyType[index-1];
 -          }
 -     }
 - })();
 
  复制代码
说明
 
诡异的排列
 
绘制效果:
  
             本帖来自P1论坛作者夏末渐离,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=388297  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。  |