|
[ На главную ] -- [ Список участников ] -- [ Правила форума ] -- [ Зарегистрироваться ] |
On-line: |
Game Maker Форум / Вопросы и Ответы (Для Начинающих) / Помогите решить проблему. |
Страницы: 1 |
Автор | Сообщение |
vaf частый гость Группа: Участники Сообщений: 19 |
Добавлено: 25-11-2005 21:42 |
Помогите решить следующую задачу. Дан объект 80x80 - необходимо сделать проверку на столкновение этого объекта с другими объектами, притом если объект касается другого объекта своей верхней или нижней частью то столкновения происходить не должно, а если передней или задней частью (врезается) - то должно происходить столкновение. я написал следующее: if (collision_line(x-40,y+40,x+40,y+40,all,true,true)) - это у меня означает что столкновения нет, т.к. он столкнулся нижней частью. но почему то не работает. может быть плясать не от объекта который сталкивается, а от объектов с которыми сталкиваются, может кто подскажет ? |
|
Vit бывалый Группа: Сообщество GM Сообщений: 59 |
Добавлено: 26-11-2005 12:04 |
Попробуй сделать этому обьекту потомков , которые будут следовать за родителем каждый со своей стороны (слева сверху или ещё где) , и уже определяй столкновение с этими обьектами |
|
Drake маэстро Группа: Администраторы Сообщений: 666 |
Добавлено: 26-11-2005 14:16 |
Не использовал collision_line, думаю можешь сделать систему повреждений. Копируй спрайт и дорисовывай две жирные линии. Всё остальное стирай. Ставь повреждение на линии и на сам обьект. Конечно collision_line легче, но раз не идёт можешь попробовать этот метод... |
|
Ka1miK Тут могла быть ваша реклама Группа: Сообщество GM Сообщений: 1014 |
Добавлено: 26-11-2005 16:50 |
Или я тупой, что вопрос не понимаю, или вопрос не так задан... Может ошибка в функции collision_line, эта функция возвращает ИД обьект с которым сталкивается линия, а если нет никакого обьекта то она возвращает 0 или <0, я не помню, вощем if collision_line(x,y,argument0.x,argument0.y,argument1,1,1)<0 (это означет что столкновения не с чем нет), у меня работает, приминяю чтобы бот проверял видно ли игрока(мешает ли ему стена) |
|
vaf частый гость Группа: Участники Сообщений: 19 |
Добавлено: 26-11-2005 20:20 |
В общем сделал через collision_line совместно с collision_circle - теперь другой вопрос. Эти функции на выходе имеют ID Объекта, как из ID узнать его имя ? Пытаюсь сделать так object_get_name(ID), где ID то что возвратило collision_line - но мне выдает Unknown (типа объекта с таким ID не существует) как узнать имя объекта с которым сталкиваюсь (мне нужно для анализа), т.к. сталкиваюсь не только с врагами но и с различными бонусами и т.д. Какие будут соображения ? | |
Ka1miK Тут могла быть ваша реклама Группа: Сообщество 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 Форум / Вопросы и Ответы (Для Начинающих) / Помогите решить проблему. |