Воскресенье, 24 Ноября 2024, 06:11

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Экземпляры в Game Maker Studio 2, объясните
gameshulkerДата: Среда, 17 Февраля 2021, 17:58 | Сообщение # 1
был не раз
Сейчас нет на сайте
Дело в том, что я хотел сделать убийство врагов. При нажатии мышкой на врага он удаляется, это сработало. Но, когда я добавил несколько врагов, при нажатии на одного из них, удалялись все враги. Я пытался мудрить с with, но ни к чему это не привело.
faridunibodulloДата: Среда, 17 Февраля 2021, 19:30 | Сообщение # 2
частый гость
Сейчас нет на сайте
Наверное при нажатии мышки ты использовал mouse_global_left_pressed проверь, если да то используй mouse_left_pressed
gameshulkerДата: Четверг, 18 Февраля 2021, 10:56 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата faridunibodullo ()
Наверное при нажатии мышки ты использовал mouse_global_left_pressed проверь, если да то используй mouse_left_pressed

Нет, 2 объекта на сцене: o_slime, o_player.
В o_slime:
if mouse_check_button_pressed(mb_left)
{
instance_destroy();
}

Удаляются все экземпляры при нажатии, а мне нужно чтобы только тот, на который я нажал.
JAMPERДата: Четверг, 18 Февраля 2021, 13:40 | Сообщение # 4
почетный гость
Сейчас нет на сайте
gameshulker, в каком объекте и каком событии ты используешь этот код?

Zombie Day --- "Без шансов"
Space Conflict --- игра на Gamiron #8
Kill your brain --- игра на Gamiron #10
Eat them all!--- игра на Gamiron #12
gameshulkerДата: Четверг, 18 Февраля 2021, 22:39 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата JAMPER ()
gameshulker, в каком объекте и каком событии ты используешь этот код?


Так, 2 объекта на сцене: o_player, o_slime(он же враг).
Переменные: slm_hp = 100(HP врага)

В o_player/step я написал что:
if mouse_check_button_pressed(mb_left)
{
slm_hp -= 10
}

В o_slime/step я сделал следующее:
if slm_hp <= 0
{
instance_destroy();
}

Итог всего проделанного, хп отнимаются всем копиям врага(o_slime) на сцене, и соответственно удаляются тоже все экземпляры врага(o_slime). Надеюсь всё подробно, я хочу понять как отнимать, удалять и взаимодействовать с конкретным объектом, на который я нажал, а оно применяется ко всем копиям этого объекта.
ДанилаСтержневДата: Четверг, 18 Февраля 2021, 22:46 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Тебе надо спавнить врагов. При этом в событии create записывай id экземпляра в переменную, а в степ пиши
if slm_hp <= 0
{
instance_destroy(переменная);
}


Красочная сюжетно ориентированная игра-головоломка
gameshulkerДата: Четверг, 18 Февраля 2021, 23:40 | Сообщение # 7
был не раз
Сейчас нет на сайте
Цитата ДанилаСтержнев ()
10


В общем, не знаю правильно понял или нет, но
В o_slime/create:
globalvar current_id;
current_id = id;
globalvar slm_hp;
slm_hp = 100;

В o_slime/step:

if slm_hp <= 0
{
instance_destroy(current_id);
}

В o_player/step:
if keyboard_check_pressed(ord("C"))
{
instance_create_depth(mouse_x, mouse_y, 0, o_slime);
}

if mouse_check_button_pressed(mb_left) and (point_distance(o_slime.x, o_slime.y, mouse_x, mouse_y) < 12)
{
slm_hp -= 10;

}

И это не работает, точнее работает некорректно, удаляется один враг(и не тот, на которого я кликал, а вроде бы тот, которого я создал первым) и всё, потом это не работает. И да я пробовал без глобализации переменных


Сообщение отредактировал gameshulker - Четверг, 18 Февраля 2021, 23:40
  • Страница 1 из 1
  • 1
Поиск:

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