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在线咨询功能删除,谢谢。 |