|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Самонаведение на ближайшую цель |
Страницы: 1 |
Автор | Сообщение |
NEED for KILL мастер Группа: Сообщество GM Сообщений: 78 |
Добавлено: 31-01-2007 09:44 |
Для самонаведения я придумал вот это: { enemy=furiya enemy=vrag ...(и тд) if distance_to_object(enemy)<100 direction=point_direction(x,y,enemy.x,enemy.y); } Но как сделать чтобы ракета летела к ближайшему enemy?! Что то в голове крутица, а осмыслить не могу! |
|
SatanClaws мастер Группа: Участники Сообщений: 70 |
Добавлено: 01-02-2007 15:56 |
Попробуй так: у каждого врага в крейте заведи переменную ItIsAnEmemy=true; Процесс нацеливания ракеты (напиши его в крейте ракеты или в степе, если хочешь чтобы она могла перенацеливаться, но не запускай его в каждом кадре, все-таки процедура длинная) rasst=1000; target=0; global.missile=id; with all if ItIsAnEnemy { a=point_distance(x,y,global.missile.x,global.missile.y); if a<global.missile.rasst { global.missile.target=id; global.missile.rasst=a; } } После этого переменная target будет показывать тебе ID ближайшего на данным момент врага. |
|
design_geek Группа: Участники Сообщений: 9 |
Добавлено: 01-02-2007 17:59 |
не знаю, может я по ламерски это сделал, но гораздо проще все: есть обьект parent_enemy - все враги его child'ы при выстреле создаю missile в обьекте missile в криэйте прописано target=instance_nearest(parent_enemy) (дословно не помню, ф-я которая возвращает id ближайшего обьекта) а потом по алармам move to point target.x , target.y ну вот так. кстати долго парился, вообще не представлял в начале как это сделать)) |
|
Nka Володька Группа: Сообщество GM Сообщений: 1648 |
Добавлено: 01-02-2007 21:58 |
var ii; ii=instance_nearest(x,y,o_enemy); if ii!=noone { direction=point_direction(x,y,ii.x,ii.y); } Это у того, кто наводится Если врагов много, то делаешь у всех врагов общего parent'a под названием o_enemy. (код тот же) |
|
SatanClaws мастер Группа: Участники Сообщений: 70 |
Добавлено: 02-02-2007 10:00 |
Можно и так... просто я не сторонник плодить лишние объекты, стараюсь вместо этого вводить лишние переменные. | |
design_geek Группа: Участники Сообщений: 9 |
Добавлено: 02-02-2007 10:11 |
в каком смысле - лишние объекты? есть player, enemy, missile - кто лишний? :))) | |
SatanClaws мастер Группа: Участники Сообщений: 70 |
Добавлено: 02-02-2007 10:15 |
Лишний - parent_enemy. У тебя как я понял это просто указатель на то, что такой-то объект - враг. В моем примере таким указателем является переменная it_is_an_enemy. | |
design_geek Группа: Участники Сообщений: 9 |
Добавлено: 02-02-2007 10:20 |
а, понял тебя. но у меня parent_enemy - не только для идентификации. это как бы "болванка", прописаны основные переменные, общие для всех врагов, и, самое главное, столкновения со всеми видами выстрелов. а их более 150. тоесть каждый раз, создавая врага не вариант это все загонять в него - легче присвоить ему parent'a | |
NEED for KILL мастер Группа: Сообщество GM Сообщений: 78 |
Добавлено: 04-02-2007 09:23 |
О всё проблема решена,спасибо всем.Блин как я забыл про id объектов !Спасибо всем! | |
WertyXBOCT магистр Группа: Сообщество GM Сообщений: 453 |
Добавлено: 06-02-2007 14:15 |
Про лишние объекты. У меня трех ботов охначает один объект, и уних парент объект солид. Все столкновения с ним просчитывются. |
Страницы: 1 |
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Самонаведение на ближайшую цель |