Проверка на "столкновение" - нестандартный признак
|
|
Randall | Дата: Воскресенье, 30 Января 2011, 23:40 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Есть такая проблема. Объект-монстр движется по потолку. Его движение ограничивается твердыми объектами справа и слева (стены). Реализовано, это просто. Вопрос - как реализовать проверку пустот в потолке по ходу движения - то есть, как запрограммировать проверку того, что перед монстром дыра? И второй вопрос вдогонку - как осуществить проверку того, что эта дыра слишком длинная (например, полкорпуса и больше) и монстру через нее не перелезть???
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Понедельник, 31 Января 2011, 00:37 |
|
| |
Made_In_USSR | Дата: Понедельник, 31 Января 2011, 03:45 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| 1. Ну во первых можно делать проверку на столкновение в точке с обьектом потолка в событии шага. Монстр двигается до тех пор пока есть столкновение. Во вторых можно создать невидимую стену на месте дыры, при столкновении с которой монстр начинает двигаться обратную сторону. 2. Проверять столкновение в двух точках. Если x1y2 и х1-(половина ширины спрайта)у2 сталкиваются с потолком значит монстр может пройти. Иначе не может. Возможно есть способ попроще, у меня придумать не получилось.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Понедельник, 31 Января 2011, 03:46 |
|
| |
NeZnayu | Дата: Понедельник, 31 Января 2011, 04:44 | Сообщение # 3 |
__танцуй!__
Сейчас нет на сайте
| Вместо двух точек надежнее проверять линию. collision_line();
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Понедельник, 31 Января 2011, 05:44 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| А вот теперь мне не понятно. Каким образом проверять линию?
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
LibertyClaw | Дата: Понедельник, 31 Января 2011, 05:52 | Сообщение # 5 |
Недо-программист
Сейчас нет на сайте
| а не проще двигать объект вверх и горизонтально одновременно? Если встретил пустоту - он САМ туда полезет. И все... А если нужно просто проверку - поставить там невидимый нетврердый объект и записать действия какие надо?
Постараюсь быть хорошим
|
|
| |
GameMix | Дата: Понедельник, 31 Января 2011, 14:09 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| NeZnayu, у меня collision_line() глючит по-страшному - проверка столкновения запаздывает.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Made_In_USSR | Дата: Понедельник, 31 Января 2011, 15:32 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Пересмотри код вдумчиво. Найдешь ошибку - перестанет запаздывать.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Понедельник, 31 Января 2011, 20:03 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Невидимый нетвердый годится, но это все же латание дыр , ибо придется не забывать пендюрить его везде, где есть потолколазающие животные. Опять же, это не решает проблемы ширины дырки... Про коллижн_лайн сейчас почитаю, не пользовался ею. Работает нормально?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Понедельник, 31 Января 2011, 20:56 |
|
| |
LibertyClaw | Дата: Понедельник, 31 Января 2011, 20:05 | Сообщение # 9 |
Недо-программист
Сейчас нет на сайте
| Randall, а если так: сделать как я сказал и если монстр влез в дырку, то делать необходимые действия и возращать его обратно...
Постараюсь быть хорошим
|
|
| |
NeZnayu | Дата: Понедельник, 31 Января 2011, 20:28 | Сообщение # 10 |
__танцуй!__
Сейчас нет на сайте
| collision_line() работает отлично.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
LibertyClaw | Дата: Понедельник, 31 Января 2011, 20:38 | Сообщение # 11 |
Недо-программист
Сейчас нет на сайте
| NeZnayu, [spoiler=ОФФТОП]А как твой "выбери мне аватар!" работает? Кто-то нажал кнопку и у тебя сразу сменился аватар
Постараюсь быть хорошим
|
|
| |
FixR | Дата: Понедельник, 31 Января 2011, 21:52 | Сообщение # 12 |
частый гость
Сейчас нет на сайте
|
|
|
| |
Randall | Дата: Суббота, 19 Февраля 2011, 00:51 | Сообщение # 13 |
участник
Сейчас нет на сайте
| Не совсем пойму, как в коллижн лайн задать все твердые объекты? просто вписать солид? или для каждого писать отдельную проверку коллижн лайн? подскажите момент и не вполне ясны параметры prec и notme
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
Made_In_USSR | Дата: Суббота, 19 Февраля 2011, 01:19 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Да, просто вписать солид. Про аргументы prec и notme отлично написано в справке. Что конкретно не ясно?
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Воскресенье, 20 Февраля 2011, 21:13 | Сообщение # 15 |
участник
Сейчас нет на сайте
| объект шириной 262 имеет центр в точке (131,0). Проверяю столкновение с потолком и перед и после спрайта, линия длиной 30пикс. collision_line(x-131,y-5,x-160,y-5,solid,true,true) в отладчике все время возвращает "-4", и когда в данном месте есть твердые объекты, и когда их нет, вообще всегда... почему? для наглядности линии прорисованы в Draw, все равно там ничего не происходит, значение не меняется. Что вообще должна возвращать эта функция? Код объекта столкновения?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
FixR | Дата: Понедельник, 21 Февраля 2011, 09:50 | Сообщение # 16 |
частый гость
Сейчас нет на сайте
| Randall, хз
|
|
| |
Made_In_USSR | Дата: Понедельник, 21 Февраля 2011, 11:50 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
| Кинь исходник, а то я твоя не понимать.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Понедельник, 21 Февраля 2011, 18:09 | Сообщение # 18 |
участник
Сейчас нет на сайте
| if collision_line(x-131,y,x-100,y,solid,true,true)=<???чему равно???> then stopmarker=0 else stopmarker=1; мониторю результат этой функции он всегда у меня равен -4 и когда столкновение есть и когда столкновения нет что вообще должна возвращать эта функция?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
Made_In_USSR | Дата: Понедельник, 21 Февраля 2011, 18:51 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| А что говорится в справке?
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Понедельник, 21 Февраля 2011, 19:15 | Сообщение # 20 |
участник
Сейчас нет на сайте
| All these functions return either the id of one of the instances that collide, or they return a negative value when there is no collision. Так вот отрицательное значение там всегда, и оно равно -4.
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |