Пятница, 27 Декабря 2024, 08:07

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Проверка на "столкновение" - нестандартный признак
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
участник
Сейчас нет на сайте
Невидимый нетвердый годится, но это все же латание дыр wacko , ибо придется не забывать пендюрить его везде, где есть потолколазающие животные.
Опять же, это не решает проблемы ширины дырки...

Про коллижн_лайн сейчас почитаю, не пользовался ею. Работает нормально?


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
заслуженный участник
Сейчас нет на сайте
А что говорится в справке? smile

Новичкам изучающим 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
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг