| Цепная молния |
|
DanielC
| Дата: Среда, 25.01.2012, 01:23 | Сообщение # 1 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Есть такая задумка - сделать цепную молнию, и всякий раз когда берешься за что-то новое, не знаешь с какого конца ухватится. Задача осложняется 6 разными объектами по 50-60 экземпляров каждого в комнате, работать с функцией instance_nearest будет довольно сложно, в этом наверное и заключается самый гвоздь. В общем-то всё сводится к тому чтобы определить ближайший из шести объектов и наградить его ударом молнии, после чего запустить цепочку, отсчитывая удары.
Музыка
Сообщение отредактировал DanielC - Среда, 25.01.2012, 01:26 |
| |
| | |
|
Йакуд
| Дата: Среда, 25.01.2012, 16:59 | Сообщение # 2 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 503
Статус: Offline
|
Вот, держи примерчик.. В настройках главного объекта можешь менять параметры. Зажми лев.кн.мыши и вылей всю мощь Зевса, в виде молний, на эти бездушные существа.. Урон рисуется на них
Второе рождение .blanco
Сообщение отредактировал Йакуд - Среда, 25.01.2012, 17:19 |
| |
| | |
|
sun
| Дата: Среда, 25.01.2012, 17:21 | Сообщение # 3 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 256
Статус: Offline
|
а для 8 а не 8.1 есть код.
xxxyyyzzzed Ed Gorod
|
| |
| | |
|
Йакуд
| Дата: Среда, 25.01.2012, 17:24 | Сообщение # 4 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 503
Статус: Offline
|
Вот, держи для 8.0
Второе рождение .blanco
|
| |
| | |
|
sun
| Дата: Среда, 25.01.2012, 17:50 | Сообщение # 5 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 256
Статус: Offline
|
it is real круто.
xxxyyyzzzed Ed Gorod
|
| |
| | |
|
DanielC
| Дата: Среда, 25.01.2012, 19:56 | Сообщение # 6 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Прикольно, только немного не то, как я написал выше, задача сильно усложняется наличием 6 объектов, то-есть нужно найти ближайший экземпляр из 6 объектов примерно так: Code if distance_to_object(instance_nearest(x,y,o_enemy_a)) < distance_to_object(instance_nearest(x,y,o_enemy_b)) && ... {} А дальше дело техники Ещё как вариант можно, под каждый объект, создать невидимый объект пустышку, управляющий молнией, но это мне кажется слишком ресурсоёмко и малоэффективно
Музыка
|
| |
| | |
|
Йакуд
| Дата: Среда, 25.01.2012, 20:21 | Сообщение # 7 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 503
Статус: Offline
|
Провел небольшую оптимизацию, а так же показал, как сделать с несколькими объектами.. Все просто. Создаешь одного объекта-родителя и присваиваешь его тем, которые будут "участвовать" в цепочке)
Второе рождение .blanco
|
| |
| | |
|
DanielC
| Дата: Среда, 25.01.2012, 22:27 | Сообщение # 8 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
|
Спасибо! То что нужно! Я сделал немного по своему, это кстати отличная идея обращаться напрямую к родителю! Code target = o_parent_enemy if instance_number(target) > 0 { _x = x; _y = y; //Координаты для отрисовки молнии x = instance_nearest(x,y,target).x //Перемещаем молнию к сл. объекту y = instance_nearest(x,y,target).y alarm[0] = random(3)+1 //Разгружаем процессор live -= 1 //Количество ударов 5-10 if live <= 0 {instance_destroy()} }else{alarm[0]=1; live -= 1} Ну из кода понятно что молния - объект, урон рассчитывается от оставшихся жизней вот и всё
Музыка
|
| |
| |
|
|