Понедельник, 11 Ноября 2024, 02:50

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Реализация кнопок
LiriantДата: Понедельник, 10 Декабря 2018, 16:57 | Сообщение # 1
был не раз
Сейчас нет на сайте
Кхм, есть объект, при нажатии на него появляются 3 кнопки, при нажатии на каждую из них будут совершатся определённые действия.
Как реализовать это не создавая каждую кнопку как отдельный объект?


Вперёд во тьму.
AlexanderBekkerДата: Понедельник, 10 Декабря 2018, 18:28 | Сообщение # 2
BekkerDev Studio
Сейчас нет на сайте
В Create объекта кнопки:
Код
action = 0;

В событии нажатия мышью:
Код
switch (action) {
   case 0: // Действие 1
      break;
   case 1: // Действие 2
      break;
   case 2: // Действие 3
      break;
}

Затем в Creation Code каждому из объектов кнопки, расположенных в комнате, прописать:
Код
action = номер_действия; // Например, action = 0;


Это первое, что пришло на ум.


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
LiriantДата: Вторник, 11 Декабря 2018, 07:08 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата AlexanderBekker ()
Затем в Creation Code каждому из объектов кнопки, расположенных в комнате, прописать:
Код
action = номер_действия; // Например, action = 0;


Кнопки не присутствуют в комнате до запуска.
Они создаются при нажатии на объект


Вперёд во тьму.
AlexanderBekkerДата: Вторник, 11 Декабря 2018, 15:45 | Сообщение # 4
BekkerDev Studio
Сейчас нет на сайте
Тогда вот так:
Код
button1 = instance_create(x, y, objButton);
button1.action = 0;
button2 = instance_create(x, y, objButton);
button2.action = 1;
button3 = instance_create(x, y, objButton);
button3.action = 2;


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
LiriantДата: Вторник, 11 Декабря 2018, 16:38 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата AlexanderBekker ()
Тогда вот так:
Код
button1 = instance_create(x, y, objButton);
button1.action = 0;
button2 = instance_create(x, y, objButton);
button2.action = 1;
button3 = instance_create(x, y, objButton);
button3.action = 2;


Цитата AlexanderBekker ()
Тогда вот так:
Код
button1 = instance_create(x, y, objButton);
button1.action = 0;
button2 = instance_create(x, y, objButton);
button2.action = 1;
button3 = instance_create(x, y, objButton);
button3.action = 2;


А как сделать чтоб они пропадали когда игрок отойдёт?


Вперёд во тьму.
AlexanderBekkerДата: Вторник, 11 Декабря 2018, 17:16 | Сообщение # 6
BekkerDev Studio
Сейчас нет на сайте
Цитата Liriant ()
А как сделать чтоб они пропадали когда игрок отойдёт?

Покажу на примере. Допустим, игрок стоит рядом с сундуком, при открытии которого создаются элементы интерфейса, посредством которых идёт взаимодействие с сундуком. И чтобы их удалить, нужно проверить дистанцию между игроком и сундуком.
Код
if (distance_to_object(objChest) > расстояние) {
   with (objChestUI) instance_destroy();
}

При таком способе реализации все объекты, отвечающие за интерфейс, должны быть унаследованы от objChestUI.
Возможно, в Game Maker уже появились более рациональные средства для реализации подобных вещей, этого я не могу знать, поскольку давно не работал на нём, но вот в ЯП эта задача решается проще простого.


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
  • Страница 1 из 1
  • 1
Поиск:

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