Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Пролет пули сквозь платформы (http://www.flasher.ru/forum/showthread.php?t=206764)

Vansimar 28.02.2014 16:29

Пролет пули сквозь платформы
 
В игре есть объект , который быстро движется, и постоянно ускоряется. В один момент он достигает такой скорости,что он часто пролетает сквозь платформу, как можно это контроллировать?

Добавлено через 2 минуты
В box2d есть вроде свойство isBullet ,как оно работает?

FlasherEgor 28.02.2014 16:52

Bullet включает режим проверки непрерывных столкновений. Так движение обрабатывается точнее, но занимает больше ресурсов процессора.
Цитата:

bullet : Boolean Это движущееся тело должно быть застраховано от прохождения насквозь через другие движущиеся тела? Игровое моделирование обычно генерирует последовательность изображений-кадров, которые показываются с определенной частотой (Frames Per Second, FPS). В таких условиях твердые тела могут передвигаться на большие расстояния за один шаг расчетов. Если физический движок не предназначен для расчетов больших передвижений, то можно увидеть как одни объекты проходят сквозь другие. Этот эффект получил название туннельного. Для определения столкновений в Box2D задействована технология CCD (continuous collision detection — непрерывное обнаружение столкновений). Суть метода continuous collision detection заключается в том, что проверка столкновений между двумя объектами производится не между ними самими в дискретные моменты времени, а между вытянутыми объемами, которые представляют движение объектов в течение всего временного шага. По умолчанию это система задействована только для проверки столкновений динамических тел со статическими. Чтобы включить эту систему для проверки столкновений одного динамического тела с другим необходимо установить свойство bullet тела в true. Как понятно из названия, технология CCD используется для очень быстро движущихся объектов, таких как пули. Используйте эту возможность с умом, так как использование CCD дорогостоящая операция для CPU.
Цитата отсюда:
redefy.net

zCHESNOKz 01.03.2014 15:08

а проверить расстояние между объектами не вариант?

ZackMercury 02.03.2014 03:07

Что приходит на ум -
1)Увеличить FPS.
2)В обновлении игрового объекта нарисовать линию от предыдущего положения до следующего, проверить её на столкновение с динамическими игровыми объектами, и если пересекается - то засчитать столкновение и вернуть объект на прежние координаты.
Конечно, второй вариант вовсе не оптимизирован, и как мне кажется, быдловат.

FlasherEgor 02.03.2014 10:45

Цитата:

Сообщение от SuriTheAngel (Сообщение 1161000)
Что приходит на ум -
1)Увеличить FPS.
2)В обновлении игрового объекта нарисовать линию от предыдущего положения до следующего, проверить её на столкновение с динамическими игровыми объектами, и если пересекается - то засчитать столкновение и вернуть объект на прежние координаты.
Конечно, второй вариант вовсе не оптимизирован, и как мне кажется, быдловат.

Второй вариант - это вы как-раз и описали какой-то грубый прототип CCD. :)

Hauts 02.03.2014 12:24

SuriTheAngel, "быдловат"-таки первый вариант, а не ккд.


Часовой пояс GMT +4, время: 10:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.