Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Text Pop Over Events VS Параллакс

Text Pop Over Events VS Параллакс 8 года 9 мес. назад #90275

  • Logan
  • Logan аватар
  • Вне сайта
  • Познающий
  • Сообщений: 11
  • Спасибо получено: 3
Снова обращаюсь за помощью к опытным!

Пользуя плагин, что отображает текст над эвентами и персонажами:
http://forums.rpgmakerweb.com/index.php?/topic/49393-nasty-text-pop-over-events

получил глюк со своим параллаксом (на изображении MV, с графикой из Ace, если это вызовет вопросы):



Откуда ноги ростут у проблемы, вобщем, понятно:
Плагин берет свою функцию:
Sprite_Character.prototype.start_namepop = function(){
    if (this.namepop === "") return;
    var b_width = (this.namepop.length * (this.char.namepop_size/2) + 24)+this.char.namepop_width;
    var b_height = (this.char.namepop_size + 28) + this.char.namepop_height;
    var x = (0 - b_width/2) + this.char.namepop_ox;
    var y = (0 - b_height - 34) - this.char.namepop_oy;
    this.namepop_sprite = new Window_CharacterPop(x,y,b_width,b_height,this.char);
    this.namepop_sprite.opacity = this.char.windowOpacity; //Nel Add
    //###Change Font, Font Size, Color, and Time based off Character values##
    this.namepop_sprite.contents.textColor = this.char.namepop_color;
    this.namepop_sprite.contents.outlineColor = this.char.namepop_outlineColor;
    this.namepop_sprite.contents.outlineWidth = this.char.namepop_outlineWidth;
    this.namepop_sprite.contents.fontSize = this.char.namepop_size;
    this.namepop_sprite.contents.fontFace  = this.char.namepop_font;
    this.namepop_sprite.contents.fontItalic = this.char.namepop_ital;
    this.namepop_sprite.drawTextEx(this.namepop, 0, 0);//, b_width, b_height, 'center');
    this.text_timer = this.char.namepop_time;
    this.namepop_time = this.char.namepop_time;
    this.addChild(this.namepop_sprite);
};

и модернизирует ее вызовом ту, что отображает персонажа:
var Nasty_sprCharacterTxtPop_update_alias = Sprite_Character.prototype.update;
Sprite_Character.prototype.update = function() {
    Nasty_sprCharacterTxtPop_update_alias.call(this);
    if (this.text_timer > 0 && this.char.textpop_flag === false){
      this.text_timer -=1;
      if (this.text_timer <= 0){
        this.removeChild(this.namepop_sprite);
        this.tmer_rat = undefined; //Reset ratio, just to avoid issues
      }
      else if (this.text_timer < 60){
        this.namepop_sprite.contentsOpacity-= 4;
        this.namepop_sprite.opacity -= 4;
      }
    }
    if (this.char.textpop_flag === true){
      this.namepop = this.char.namepop;
      this.removeChild(this.namepop_sprite);
      this.start_namepop();
      this.char.textpop_flag = false; //Release from update
    }
};

То есть, выходит, что вызываемый текст становится частью персонажа, и реагирует на верхние слои параллакса соответствуя.

Повысить высоту текста через комманду this.namepop_sprite.z = 999; из функции Sprite_Character.prototype.start_namepop = function() результата не дает - если я правильно понял - для текста персонаж - это сцена, за рамки которой он не выходит. Попытки добавить ось z к чему-либо вызываемого в функции с обработкой персонажа Sprite_Character.prototype.update = function() {, тоже безуспешны. Работает, разве что this.z = 999;, но она поднимает и текст и персонажа.

Наверное, тут опять можно решить проблему правильным обращением к команде, которого я не знаю.

Не подскажете, как здесь поступить?
Последнее редактирование: 8 года 9 мес. назад от Logan.
Администратор запретил публиковать записи гостям.

Text Pop Over Events VS Параллакс 8 года 9 мес. назад #90291

  • Logan
  • Logan аватар
  • Вне сайта
  • Познающий
  • Сообщений: 11
  • Спасибо получено: 3
Забыл добавить, что выводить отображение текста за функцию обработки персонажа - не вариант. Плагин подразумевает, что вызванный текст будет следовать за персонажем, что необходимо оставить.
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.179 секунд