Подкачка изображений через плагин

Больше
10 года 5 мес. назад #87400 от Logan
Обращаюсь за помощью к знающим, так как сам в синтаксисе MV с ЯваСкрипт не очень рублю. Пытаюсь реализовать загрузку дополнительного изображения к каждому предмету, в "Notes" которого указан соответствующий файл, по типу <additional image: some_picture.png>.
Затем вывести кодом, соответствующее имени, изображение и вставить в нужное место инвентаря.
Не подскажете, как реализовать код вывода изображения? Как вставить - разберусь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
10 года 5 мес. назад #87416 от KageDesu
Чтобы вывести изображение, нужно создать Sprite.
var sprite = new Sprite(ImageManager.loadPicture(имя картинки без расширения));
Картинка должна быть в папке img/pictures.

У объекта sprite можно задать x и y. Лучше посмотреть справку по RPG Maker MV.

Теперь необходимо этот спрайт добавить на нашу сцену или окно, в котором мы хотим его показать.
За это отвечает функция addChild().
Пример:
Допустим мы хотим вывести картинку some.png в меню, в окне с золотом.
В конце функции Window_Base.prototype.drawCurrencyValue дописываем следующий код:
Code:
var sprite = new Sprite(ImageManager.loadPicture('some')); sprite.x = 10; sprite.y = 10; this.addChild(sprite);

Метод addChild можно вызывать внутри функций окон (Window) и сцен (Scene).
Спасибо сказали: Logan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
10 года 5 мес. назад - 10 года 5 мес. назад #87436 от Logan
Спасибо большое, отобразить получилось, правда теперь не получается это изображение убрать)

Я модифицирую плагин, поэтому попробую объяснить, какой код редактирую:
Code:
Window_ItemDetail.prototype.refresh = function() { // Эта функция обновляет нужное мне окно, с информацией о предмете, поэтому вношу изменения в нее this.contents.clear(); // Этим мы стираем предыдущую информацию this.drawItemName(this._item,0,0,this.contents.width-24); // Отрисовываем новую иконку и наименование var obj = this._item; // Отсюда пошла модификация плагина. Мы заносим в переменную информацию о предмете var notedata = obj.note.split(/[\r\n]+/); // Отрезаем лишние символы из от того, что мы приписали предмету в Базе Данных, в Note, чтобы на выходе получилось наименование изображения var sprite = new Sprite(ImageManager.loadPicture(notedata)); this.addChild(sprite);

Выходит, что соответствующее предмету доп. изображение появляется, но не исчезает, когда мы выбираем следующий предмет - на него сверху накладывается новое.
Пробовал в начало функции вставить "this.removeChild(sprite);" но он здесь срабатывает только после addChild. :(
Последнее редактирование: 10 года 5 мес. назад пользователем Logan.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Разработчик Программист JavaScript Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Учитель Оратор Ветеран Даритель Стимкея 2 место Программист Ruby Паладин
Больше
10 года 5 мес. назад #87439 от DK
Потому что изображение хранится в локальной переменной. Вместо var sprite попробуй this.sprite.
Спасибо сказали: KageDesu, Logan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
10 года 5 мес. назад #87440 от Logan
Заработало, спасибо!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.093 секунд
Работает на Kunena форум