Столкновение
|
|
Maxat32 | Дата: Среда, 10 Июля 2013, 15:00 | Сообщение # 1 |
частый гость
Сейчас нет на сайте
| Салют всем. Собственно проблемка: есть объект, по нажатию кнопки происходит vspeed=20, при столкновении 0. Но если скорость равна 8, то столкновение нормальное, а если больше 8, то столкновение происходит на пару пикселей до объекта. Собственно показано на картинке.
|
|
| |
BrightSpot | Дата: Среда, 10 Июля 2013, 15:12 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| это происходит из-за просчета колизий в гм... они медленные и при больших скоростях лезут баги... можно проявить фантазию и вывести алгоритм для нормального столкновения...
Более мощный компьютер глючит быстрее и точнее.
|
|
| |
Maxat32 | Дата: Среда, 10 Июля 2013, 15:18 | Сообщение # 3 |
частый гость
Сейчас нет на сайте
| А можно поподробнее о алгоритме, или пример?
|
|
| |
Abel399 | Дата: Четверг, 11 Июля 2013, 06:25 | Сообщение # 4 |
Surpass your limits. Right now.
Сейчас нет на сайте
| В столкновение с другим объектом можно написать так: Код move_contact_solid(direction,abs(vspeed)); //Двигаем объект по директории его движения на модуль вертикальной скорости, пока он не столкнется с твердым объектом или пройдет заданное количество пикселей для движения. Так же можно использовать функцию move_contact_all(с осторожностью), если объект столкновения не твердый. vspeed = 0; //Столкновение прошло, останавливаем объект. Так же можно написать свою функцию столкновения, вместо move_contact_solid или move_contact_all. Вот, например, только что придумал: move_contact_object(direction,max_step,object): Код repeat(argument1) { if(place_meeting(x+cos(argument0),y+sin(argument0),argument2)) break; x-=cos(argument0); y-=sin(argument0); } Правда, из-за неправильного просчета синуса и косинуса в Game Maker, способ наверное не пройдет)
Ninja Slayer - 2D Physics Puzzle [cancelled]
|
|
| |
Cmaujluk | Дата: Четверг, 11 Июля 2013, 09:38 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Странно у меня всё нормально, какая версия gmk?
Не жадный на плюсы. Наши проекты: Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft Angry Bee Evolution - Эволюция с элементами кликера Чего не хватает? - Викторина на логику"
|
|
| |
Maxat32 | Дата: Суббота, 13 Июля 2013, 09:32 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Cmaujluk, gm 8.1
|
|
| |
MasterSambo | Дата: Суббота, 13 Июля 2013, 13:49 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Никогда не сталкивался с такой проблемой.
|
|
| |
HaGe | Дата: Суббота, 13 Июля 2013, 14:23 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Цитата (Maxat32) Салют всем. Собственно проблемка: есть объект, по нажатию кнопки происходит vspeed=20, при столкновении 0. Но если скорость равна 8, то столкновение нормальное, а если больше 8, то столкновение происходит на пару пикселей до объекта. Собственно показано на картинке. поставь галочку над пунктом "точная проверка столкновений", плюс заюзай move_contact_solid, и проблема должна исчезнуть мгновенно.
Цитата (arkady) Никогда не сталкивался с такой проблемой. смотрю все за твоими проказами. ты либо тролль, либо просто упорот: чем ТС может помочь факт того, что ты никогда не сталкивался с этой проблемой?
|
|
| |
Cmaujluk | Дата: Воскресенье, 14 Июля 2013, 01:25 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Цитата (Maxat32) Cmaujluk, gm 8.1 К сожалению не могу подсказать т.к. работаю на 8.0.
Не жадный на плюсы. Наши проекты: Clicker Mine Mania 2 - Увлекательный кликер в стиле Minecraft Angry Bee Evolution - Эволюция с элементами кликера Чего не хватает? - Викторина на логику"
Сообщение отредактировал Cmaujluk - Воскресенье, 14 Июля 2013, 01:30 |
|
| |
Maxat32 | Дата: Воскресенье, 14 Июля 2013, 06:21 | Сообщение # 10 |
частый гость
Сейчас нет на сайте
| Cmaujluk, так вот же, решил 8.1 попробывать..возвращаюсь на 8.0 Добавлено (14.07.2013, 06:21) --------------------------------------------- HaGe, движение до столкновения с твердым объектом не подходит...он практически мгновенно перемещается
|
|
| |