Понедельник, 23 Декабря 2024, 18:59

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с коллизиями в GMS с использованием физики
Raven84Дата: Четверг, 08 Мая 2014, 08:14 | Сообщение # 1
старожил
Сейчас нет на сайте
Столкнулся с такой проблемой. Создаю 2 объекта: стена и герой.Оба квадраты размером 48 на 48 пикселей (вру,герой чуть поуже).Включаю для них физику и создаю "маску столкновений" тоже квадраты 48 на 48 (у героя соответственно уже маска).В комнате делаю пол из блоков стены,один к другому подогнан по сетке и не имеет стыков и включив игру появляется проблема.Кубик-герой катаясь по полу иногда застревает (я заметил это происходит когда нижний угол героя совпадает с верхним углом "куска" пола) и дальше не двигается,но стоит подпрыгнуть или отъехать назад и при движении снова в том же направлении он проходит то место где застревал и так происходит периодически: то гладко,плавно катается по полу,то застрянет.В чем проблема понять вообще не могу.В интернете на свой вопрос ответов не нашел: ни на англоязычных ни на русских форумах.Даже на официальном сайте YoYo ответов нет (хотя натыкался на подобные проблемы у других). Для столкновений использую только встроенную библиотеку Box2D,т.е. в объектах вообще ничего не прописываю.Просто присваиваю объекту физические свойства и все.
Может у кого была подобная проблема или кто знает в чем причина и как это решить?
Но скорее всего это баг самой GMS,т.к. код вообще не использовал в этом примере (ну только движение влево/вправо и прыжок прописал).


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland


Сообщение отредактировал Raven84 - Четверг, 08 Мая 2014, 08:15
Dva_KotaДата: Четверг, 08 Мая 2014, 08:45 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Попробуй круглую маску для героя

Новый пример инвентаря! /20.06.2012/

Energy Wars
Raven84Дата: Суббота, 10 Мая 2014, 11:58 | Сообщение # 3
старожил
Сейчас нет на сайте
Dva_Kota, Я знаю,что это поможет и уже собираюсь сделать 2 маски:сверху прямоугольник а снизу круг.Но все же мне интересна сама суть проблемы:почему и как это исправить. А альтернативу я уже и сам нашел.Но все равно спасибо! smile
P.S. Круглая маска не совсем меня устраивает потому,что когда герой подходит к краю пола,то он начинает скатываться и все это смотрится не очень красиво.

Добавлено (10.05.2014, 04:16)
---------------------------------------------
Не поверите,но даже круглая маска не подошла!!! Теперь он не застревает,а просто когда находится на стыке блоков пола как бы пытается провалиться,т.е. включается анимация падения.И все это выглядит как скачки небольшие при движении по полу. Что за беда?! wacko

Добавлено (10.05.2014, 11:58)
---------------------------------------------
Кто столкнется с такой же проблемой,то я нашел такое решение.Поменял параметр "Restitution" у героя и стены с нуля на большее значение.Теперь застреваний почти нет (сложно объяснить почему "почти" smile ),но герой при падении на пол немного подскакивает как мяч.Не критично,но глаз все же мазолит. Но другого решения я пока не нашел. Не знаю с чем именно связана проблема.Оставил описание проблемы на официальном англоязычном сайте GM,но пока и там ответа не дали.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland


Сообщение отредактировал Raven84 - Пятница, 09 Мая 2014, 04:07
inventrixДата: Суббота, 10 Мая 2014, 12:31 | Сообщение # 4
участник
Сейчас нет на сайте
physics_world_update_speed(60)
physics_world_update_iterations(35)
пропиши это, должно не много помочь, мне помогло, цифры можешь увеличить, правда это увеличивает нагрузку...

Добавлено (10.05.2014, 12:31)
---------------------------------------------

Цитата Raven84 ()
Restitution

это упругость, естественно что при увеличении этого числа объекты отпрыгивают...


Сообщение отредактировал inventrix - Суббота, 10 Мая 2014, 12:30
Raven84Дата: Суббота, 10 Мая 2014, 12:41 | Сообщение # 5
старожил
Сейчас нет на сайте
inventrix,
Цитата
это упругость, естественно что при увеличении этого числа объекты отпрыгивают...

Это понятно! biggrin Я знаю что означает эта хар-ка и на что она влияет.Но не думал,что из за нее герой будет застревать на ровном месте.
Цитата
physics_world_update_speed(60)
physics_world_update_iterations(35)
пропиши это, должно не много помочь, мне помогло, цифры можешь увеличить, правда это увеличивает нагрузку...

А где это прописывать? И что это за параметры?
P.S. Полезу в справку узнавать! smile


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
inventrixДата: Суббота, 10 Мая 2014, 12:44 | Сообщение # 6
участник
Сейчас нет на сайте
Цитата Raven84 ()
А где это прописывать? И что это за параметры?
P.S. Полезу в справку узнавать!

в старте у объекта какого нибудь пропиши, эти переменные как я понял увеличивают количество проверок в единице времени, мне в свое время помогло...
Raven84Дата: Суббота, 10 Мая 2014, 12:58 | Сообщение # 7
старожил
Сейчас нет на сайте
inventrix,
Цитата
мне в свое время помогло...

У тебя тоже объект застревал на ровном месте?


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
inventrixДата: Суббота, 10 Мая 2014, 13:29 | Сообщение # 8
участник
Сейчас нет на сайте
не то что бы застревал, столкновение было не очень хорошим...скинь код движения

Добавлено (10.05.2014, 13:29)
---------------------------------------------
сделай объекты твердыми, collision shape поправь...

Raven84Дата: Суббота, 10 Мая 2014, 14:47 | Сообщение # 9
старожил
Сейчас нет на сайте
inventrix,
Цитата
сделай объекты твердыми

Это еще зачем? Когда врубаешь физику,то галочка "твердый" не реагирует ни на что.
Цитата
collision shape поправь...

Как поправить? Он у меня тупо прямоугольный.Там нечего поправлять. smile
Код движения смысла нет скидывать,просто при нажатии клавиши на героя действует сила в сторону движения и все.Буквально одна строчка кода.

P.S.Мне тут другой способ подсказали,странно что я сам не догадался.Просто сделать пол не отдельными блоками,а растягивать один единственный блок по всей длине. smile
Таким образом нет никаких стыков,а значит и нет проблемы! biggrin


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland


Сообщение отредактировал Raven84 - Суббота, 10 Мая 2014, 14:48
inventrixДата: Суббота, 10 Мая 2014, 16:22 | Сообщение # 10
участник
Сейчас нет на сайте
движение не силой задавай и все, не будет проблем, делай через phy_position_x
Raven84Дата: Суббота, 10 Мая 2014, 17:47 | Сообщение # 11
старожил
Сейчас нет на сайте
inventrix,
Цитата
движение не силой задавай и все, не будет проблем, делай через phy_position_x

Не думаю что это что-то изменит...Но так или иначе спасибо за советы.Я воспользовался способом растягивания блока невидимой стены по всей поверхности пола чтобы не было стыков.


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
  • Страница 1 из 1
  • 1
Поиск:

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