Помогите решить проблему.

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

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

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

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

частый гость
Группа: Участники
Сообщений: 19
Добавлено: 25-11-2005 21:42
Помогите решить следующую задачу.
Дан объект 80x80 - необходимо сделать проверку на столкновение этого объекта с другими объектами, притом если объект касается другого объекта своей верхней или нижней частью то столкновения происходить не должно, а если передней или задней частью (врезается) - то должно происходить столкновение.
я написал следующее:
if (collision_line(x-40,y+40,x+40,y+40,all,true,true)) - это у меня означает что столкновения нет, т.к. он столкнулся нижней частью. но почему то не работает. может быть плясать не от объекта который сталкивается, а от объектов с которыми сталкиваются, может кто подскажет ?

бывалый
Группа: Сообщество GM
Сообщений: 59
Добавлено: 26-11-2005 12:04
Попробуй сделать этому обьекту потомков , которые будут следовать за родителем каждый со своей стороны (слева сверху или ещё где) ,
и уже определяй столкновение с этими обьектами

маэстро
Группа: Администраторы
Сообщений: 666
Добавлено: 26-11-2005 14:16
Не использовал collision_line,
думаю можешь сделать систему повреждений.
Копируй спрайт и дорисовывай две жирные линии.
Всё остальное стирай.
Ставь повреждение на линии и на сам обьект.
Конечно collision_line легче, но раз не идёт можешь
попробовать этот метод...

Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 26-11-2005 16:50
Или я тупой, что вопрос не понимаю, или вопрос не так задан...
Может ошибка в функции collision_line, эта функция возвращает ИД
обьект с которым сталкивается линия, а если нет никакого обьекта то она возвращает 0 или <0, я не помню, вощем
if collision_line(x,y,argument0.x,argument0.y,argument1,1,1)<0 (это означет что столкновения не с чем нет), у меня работает, приминяю чтобы бот проверял видно ли игрока(мешает ли ему стена)

частый гость
Группа: Участники
Сообщений: 19
Добавлено: 26-11-2005 20:20
В общем сделал через collision_line совместно с collision_circle - теперь другой вопрос. Эти функции на выходе имеют ID Объекта, как из ID узнать его имя ? Пытаюсь сделать так object_get_name(ID), где ID то что возвратило collision_line - но мне выдает Unknown (типа объекта с таким ID не существует) как узнать имя объекта с которым сталкиваюсь (мне нужно для анализа), т.к. сталкиваюсь не только с врагами но и с различными бонусами и т.д. Какие будут соображения ?

Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 26-11-2005 22:11
Додумался, хотя за скорость я не отвечаю, но работае, рациональные пути ищи сам... ну вот:
Значит узнал ты ИД етого обьекта, присваиваешь допустим global.id1
и теперь в каконить обьекте пишишь
допустим у тебя два обекта и надо узнать с каким происходит столкновение(stena,zabor) пишем в степе(или ещё где-нить)
with(stena)
if id=global.id1 then obj=stena
with(zabor)
if id=global.id1 then obj=zabor , obj имя обьекта с которым сталкиваемся
ЗЫ как говорю за скорость не отвечаю, но работает

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

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

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

KXK.RU