Наложение объектов
|
|
Xageu | Дата: Четверг, 01 Декабря 2011, 15:12 | Сообщение # 1 |
Хадей - Друг Детей
Сейчас нет на сайте
| Как сделать так, чтобы при наложении объектов друг на друга и нажатии на эту кашу мышкой, удалялся только тот, чей спрайт был непосредственно нажат?
|
|
| |
GameMix | Дата: Четверг, 01 Декабря 2011, 16:19 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Загё, в create объекта: Code global.M = 0; // ID проверяемого объекта В событии нажатия ЛКМ: Code with object_index if id > global.M global.M = id
if id = global.M instance_destroy();
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Четверг, 01 Декабря 2011, 16:20 |
|
| |
LunarPixel | Дата: Четверг, 01 Декабря 2011, 16:50 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| GameMix, а разве это будет работать?! Ну если, допустим, сделать больше 2-х объектов в одной кучи?!
|
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 16:56 | Сообщение # 4 |
Хадей - Друг Детей
Сейчас нет на сайте
| Quote (LunarPixel) GameMix, а разве это будет работать?! нет, не будет тут нужна какая-то другая проверка
|
|
| |
GameMix | Дата: Четверг, 01 Декабря 2011, 16:58 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| В событии нажатия ЛКМ: Code with object_index if id > global.M global.M = id
if id = global.M {global.M = 0; instance_destroy()}; Нет. Все-равно с багом работает Голова не варит, однако.
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Четверг, 01 Декабря 2011, 17:01 |
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 17:01 | Сообщение # 6 |
Хадей - Друг Детей
Сейчас нет на сайте
| GameMix, не работает. Плюс в коде, как я понимаю, удаляется объект с наибольшим id, но это не всегда так. Или я не догоняю
|
|
| |
GameMix | Дата: Четверг, 01 Декабря 2011, 17:05 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Quote (Загё) Плюс в коде, как я понимаю, удаляется объект с наибольшим id, но это не всегда так. Или я не догоняю Новый экземпляр объекта всегда будет иметь ID больше предыдущего. Да и создаваться он будет выше предыдущего экземпляра. Вот поэтому я решил так сделать. Мой код, возможно, сойдёт, если его немного допилить .
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
noTformaT | Дата: Четверг, 01 Декабря 2011, 17:08 | Сообщение # 8 |
Ukrainian independent game developer
Сейчас нет на сайте
| ммм, как я понял это как в карточных играх? Тоесть берется последняя верхняя карта из колоды? колода/куча в данном случае это массив....
создаешь массив, например под именем MyArray... Дальше добавляешь объект на сцену и одновременно в массив MyArray. на объект вешаешь событие "удаление" и пишешь в нем обработчик который удалит последний элемент из массива MyArray....
Вроде бы так я вижу решение проблемы...
@noTformaT
|
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 17:10 | Сообщение # 9 |
Хадей - Друг Детей
Сейчас нет на сайте
| Quote (GameMix) Новый экземпляр объекта всегда будет иметь ID больше предыдущего. Это-то понятно, но возможны случаи с заданием разной глубины. В принципе, её тоже проверять. Но твой код у меня пока не работает Посижу, подумаю над ним, куда работать понятно
|
|
| |
GameMix | Дата: Четверг, 01 Декабря 2011, 17:21 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Загё, работает, наверное: Code with object_index { if position_meeting(mouse_x,mouse_y,id) if id > global.M global.M = id; }
if id = global.M {global.M = 0; instance_destroy()};
Steel Standoff - 2D аркада. Мои статьи
Сообщение отредактировал GameMix - Четверг, 01 Декабря 2011, 17:22 |
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 17:29 | Сообщение # 11 |
Хадей - Друг Детей
Сейчас нет на сайте
| Quote (GameMix) Загё, работает, наверное: Спасибо, твой вариант имеет место быть, помог
|
|
| |
Saladin | Дата: Четверг, 01 Декабря 2011, 17:30 | Сообщение # 12 |
заслуженный участник
Сейчас нет на сайте
| Ну во первых это должна быть точная проверка столкновений. Во вторых есть такое специальное событие у обьекта - "клавиша нажата". Выполняется только для текущего обьекта. Экспериментируй, только не с глобальными, не бери дурного в голову.
Анбаннэд. Хэлоу эгин =)
|
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 17:32 | Сообщение # 13 |
Хадей - Друг Детей
Сейчас нет на сайте
| Quote (Saladin) Ну во первых это должна быть точная проверка столкновений. Во вторых есть такое специальное событие у обьекта - "клавиша нажата". Нет никаких столкновений, всё работает.
Добавлено (01.12.2011, 17:32) --------------------------------------------- Quote (Saladin) "клавиша нажата". Выполняется только для текущего обьекта. Текущего объекта, как такового, нет.
Сообщение отредактировал Загё - Четверг, 01 Декабря 2011, 17:32 |
|
| |
Saladin | Дата: Четверг, 01 Декабря 2011, 17:35 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Quote (Загё) Нет никаких столкновений, всё работает. Имеется ввиду маска обьекта. Quote (Загё) Текущего объекта, как такового, нет. Текущий обьект это тот, в котором выполняется код. Собственно тот обьект, который должен удаляться.
Анбаннэд. Хэлоу эгин =)
|
|
| |
Xageu | Дата: Четверг, 01 Декабря 2011, 23:01 | Сообщение # 15 |
Хадей - Друг Детей
Сейчас нет на сайте
| Этот код не работает в ХТМЛ5. ГМ пилить и пилить, печаль ХТМЛ5 ГМ вообще плохо дружит с "глубиной" нажатия, и вообще с глубиной.
|
|
| |