Пятница, 29 Марта 2024, 15:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » X, Y спрайта плохо считываются при переходе на др. локацию (Положение спрайта относительно X и Y координат)
X, Y спрайта плохо считываются при переходе на др. локацию
EvgenZloiДата: Вторник, 16 Января 2018, 22:50 | Сообщение # 1
был не раз
Сейчас нет на сайте
У меня есть следующий код для считывания положений оружия, взятого из скрипта (массив оружий)
В событии Create:
Код

x_offset = global.weaponArray[global.weapon,5];
y_offset = global.weaponArray[global.weapon,6];
my_gun = instance_create_depth(x + x_offset, y + y_offset, 0 , ob_gun);
my_melee = instance_create_depth(x + x_offset, y + y_offset, 0 , ob_katana);

В событии Step:
Код

x_offset = global.weaponArray[global.weapon,5];
y_offset = global.weaponArray[global.weapon,6];

В событии End Step:
Код

my_melee.x = x + x_offset;
my_melee.y = y + y_offset;
my_gun.x = x + x_offset;
my_gun.y = y + y_offset;

По-моему, это весь код связанный с проблемой.
Сама проблема заключается в том, что когда я перехожу в другую комнату (локацию), у меня выскакивает ошибка, в которой написано о том, что либо
Код

Unable to find any instance for object index '100049'
at gml_Object_ob_pers_Step_2 (line 9) -  my_gun.y = y + y_offset;

либо
Код

Unable to find any instance for object index '100050'
at gml_Object_ob_pers_Step_2 (line 6) -        my_melee.y = y + y_offset;

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


Сообщение отредактировал EvgenZloi - Среда, 17 Января 2018, 19:29
ДанилаСтержневДата: Среда, 17 Января 2018, 00:36 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Потому что оружие у вас "закинуто" в редактор первой комнаты и ему присвоены номера экземляров. Совершенно логично, что при переходе в другую комнату, там нет этих экземпляров. Либо оружию нужно присвоить свойство persistant в редакторе объекта, либо сохранять выбранное оружие в переменную. Мне такие решения приходят в голову

А, в переменную вы сохраняете. Попробуйте первый вариант


Красочная сюжетно ориентированная игра-головоломка

Сообщение отредактировал ДанилаСтержнев - Среда, 17 Января 2018, 00:38
EvgenZloiДата: Среда, 17 Января 2018, 00:49 | Сообщение # 3
был не раз
Сейчас нет на сайте
Persistent что у катаны, что у пушки активно.

Сообщение отредактировал EvgenZloi - Среда, 17 Января 2018, 00:50
ДанилаСтержневДата: Среда, 17 Января 2018, 15:25 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
В каком объекте событие создания? Он постоянный?

Красочная сюжетно ориентированная игра-головоломка
EvgenZloiДата: Среда, 17 Января 2018, 18:11 | Сообщение # 5
был не раз
Сейчас нет на сайте
В ob_pers, т.е. в персонаже, который и переходит из комнаты в комнату. У него так же включен Persistent

Добавлено (17 Января 2018, 18:11)
---------------------------------------------
Вот что я пропустил. Может это важно.
В событии Room Start

Код

x = player_x;
y = player_y;

И при прикосновении с коллизией двери
Код

player_x = other.target_x;
player_y = other.target_y;

Код двери
Код

target_x = 890;
target_y = 160;
ДанилаСтержневДата: Четверг, 18 Января 2018, 19:37 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
В событии Room Start создавай экземпляры нужного оружия как в Криэйт

Красочная сюжетно ориентированная игра-головоломка
EvgenZloiДата: Пятница, 19 Января 2018, 16:37 | Сообщение # 7
был не раз
Сейчас нет на сайте
Если что, проблема решена. Я немного подкорректировал код и всё в порядке. Можно сказать, я сам накосячил и всё работало исправно.
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » X, Y спрайта плохо считываются при переходе на др. локацию (Положение спрайта относительно X и Y координат)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг