Project1

标题: 请教如何调整sv战斗中人物贴图的上下顺序? [打印本页]

作者: sasayoi    时间: 2020-8-3 14:56
标题: 请教如何调整sv战斗中人物贴图的上下顺序?

请教各位大佬,
我用了YEP的ActSeqPack2来设计横版战斗动作和移动角色,比如攻击时会移动人物到目标面前,
现在的问题是一些稍微大一些的贴图移动后与其他贴图有部分覆盖时,会出现图中图层错位的问题,
按道理说应该是最大纵坐标更大的图层在更上层,但是我没有找到相关的可以设置贴图上下顺序的地方,不知道大家有没有遇到过这个问题?

我在rpg_spirits.js里找到了下面这样一段,包含了一段根据y值来调整敌人数组顺序的脚本,但似乎是用在创建战斗时的(?)
我在想,战斗过程中能不能实时调整这个显示的图层顺序,比如在每次onMoveEnd的时候,又到底是哪个值控制了图层的上下顺序..
JAVASCRIPT 代码复制
  1. Spriteset_Battle.prototype.createEnemies = function() {
  2.     var enemies = $gameTroop.members();
  3.     var sprites = [];
  4.     for (var i = 0; i < enemies.length; i++) {
  5.         sprites[i] = new Sprite_Enemy(enemies[i]);
  6.     }
  7.     sprites.sort(this.compareEnemySprite.bind(this));
  8.     for (var j = 0; j < sprites.length; j++) {
  9.         this._battleField.addChild(sprites[j]);
  10.     }
  11.     this._enemySprites = sprites;
  12. };
  13.  
  14. Spriteset_Battle.prototype.compareEnemySprite = function(a, b) {
  15.     if (a.y !== b.y) {
  16.         return a.y - b.y;
  17.     } else {
  18.         return b.spriteId - a.spriteId;
  19.     }
  20. };


作者: sasayoi    时间: 2020-8-11 11:31
解决了……
还在叭叭叭地找代码里的排序方法呢,最后发现原来是BattleEngineCore里的一个特殊的优先级选项影响了重叠时的图层顺序,改成默认无优先级就行了,本来就是按照纵坐标排序的……




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