| Экземпляры в 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 |  |  |  |  |