Притягивание одного объекта к другому

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Притягивание одного объекта к другому

Страницы: 1  новая тема

Автор Сообщение

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 22-09-2006 01:30
Вот проблема. Я делаю игру про Соника (кому интересно Сюда здесь можна и скачать дэмку). Есть объект Электрического щита и объект кольца. Вот мне нужно чтоб объект кольца начинал движение к щиту когда кольца появятся в видимой зоне.Тем кто не понял проще(когда соник получит щит пробежит с ним возле колец они начнут притягиватся к сонику или щиту, но не так чтоб я получил щит и все кольца на уровне начали ко мне притягиватся).
За ранее благодарен.

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 22-09-2006 07:26
в объекте кольца:

if x>viev_xview && x<viev_xview+viev_wview
&& y>viev_yview && y<viev_yview+viev_hview
{
dir=point_direction(x,y1,player.x,player.y)
motion_set(dir,2)//2 - скорость притяжения
}
else speed=0

А можно сделать интересней:

if x>viev_xview && x<viev_xview+viev_wview
&& y>viev_yview && y<viev_yview+viev_hview
{
dir=point_direction(x,y1,player.x,player.y)
motion_add(dir,0.01)//0.01 - ускорение
speed=max(speed,2) // 2 - макс.скорость
friction=0
}
else friction=0.02 // тормозим

Вот так. Можно ещё избавится от dir но так просто понятней.

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 22-09-2006 14:26
Вобщем все хорошо вот только не понятно как оно будет притягиватся к щиту? Его же гдето в коде указывать надо или нет?

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 22-09-2006 15:14
у тебя щит где? вот к этим координатам и притягивай.
Я предполагаю что щит рисуется в объекте player, и соответственно координаты его player.x , player.y .

скрипт надо сувать в СТЕП кольца

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 22-09-2006 16:40
Спасибо огромное у меня получилась вот такая штука

if x>view_xview && x<view_xview+view_wview
&& y>view_yview && y<view_yview+view_hview
{
dir=point_direction(x,y,sonic.x,sonic.y)
motion_set(dir,2)// 2 - скорость притяжения
}
else speed=0

Я ее отнес в степ кольца но только чтобы скрипт срабатывал если объект щита существует.
Но появилась еще проблема у меня соник состоит из нескольких объектов и когда объект Sonic меняется на объект spindash происходит ошибка укольца не могут найти объект sonic.
А вобще тебе реально огромное спасиба, включу в список людей помогавших в создании игры(если не против конечно?).

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 22-09-2006 18:27
zubila, да можешь и включить... на первом месте и по бокам лавровые листочки что были )))))))

Значит сделай пустой объект sonic_par а для всех объектов которые бывают сониками задай Parent-ом (это в окне объекта слева) этот объект sonic_par и координаты бери sonic_par.x .y
Думаю прокатит. Т.о. ты задашь родительский объект через который будешь обращаться с имеющимся соником.
А ещё перед скриптом который ты написал напиши строку
if instance_exists(sonic_par)

это проверка существования объекта.

гроссмейстер
Группа: Сообщество GM
Сообщений: 189
Добавлено: 22-09-2006 20:38
нупский вопрос:
чем плох такой способ:
*Step Кольца*
{if distance_to_object(Sonic)<64
{move_towards_point(Sonic.x,Sonic.y,4)}}
???

магистр
Группа: Сообщество GM
Сообщений: 320
Добавлено: 22-09-2006 21:07
Lex
хороший способ, но это не полный код и нет учёта того что кольцо на экране.
Кстати distance_to_object(Sonic) учитывает так же и маску объектов и как там это всё вычисляется я не знаю, ну уж дольше чем обычное расстояние между двумя точками.

гроссмейстер
Группа: Сообщество GM
Сообщений: 189
Добавлено: 22-09-2006 22:21
спасибо, понял.

магистр
Группа: Сообщество GM
Сообщений: 314
Добавлено: 23-09-2006 11:05
Спасибо за парент. У меня он есть яж обзор комнаты за ни и поставил, я сразу не раздуплил, тупанул немного .

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Притягивание одного объекта к другому

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU