![]() |
Как создать конвеер
Здравствуйте. Есть необходимость создать эффект конвеера с помощью Box2D. Была идея создать два кубика, которые бы изменяли по очереди свое положение. Но в таком случае нужна своего рода "маска", которая бы ограничивала область воздействия такого конвеера. Была идея создать крутящиеся колесика. Но и здесь проблема - тела будут дергаться вверх и вниз при попадании между колесиками. Думал сделать очень много маленьких колесиков, чтобы дергание не было - но это нагрузка на процессор.
Подскажите, пожалуйста как лучше сделать такую "движущуюся ленту". |
http://flashgameblogs.ru/blog/box2d/915.html
Правда там мне не нравится, что изменяется сам box2d. Хотя, если разобраться, то можно сделать и без изменений внутренностей box2d. |
vizgl, спасибо за ответ. Я видел эту статью раньше, но мне тоже не понравилась идея.
Как я решил проблему. Просто создал тело (прямоугольник, дальше конвеер), и начал "слушать" столкновения других тел с этим прямоугольником. Если что-то столкнулось с конвеером, то придавал этому (другому телу) силу, чтобы его уносило в сторону: Вот отрывок из класса унаследованного от b2ContactListener. Кто работал с Box2D должен знать что это - объяснять не буду: Код AS3:
|
только тут получается "сила" прикладывается не в точке контакта, а в центр масс. Вряд ли это будет нормально выглядеть кода, например, ящик падает на конвейер углом. по идее когда ящик падает углом на движующийся контейнер, в вашем случае, он получит угловую скорость направленную против часовой стрелки... в вашем исходнике, получится наоборот
|
Вложений: 1
Возможно вы правы, но, на это можно не обращать внимания. Вот наглядный пример, красиво и реалистично смотрится:
|
я в играх такие вещи сразу замечаю =) главное - это мелочи
|
К стати! Только что заметил, что если падающее на конвеер тело изначально имеет скорость по "х" то, находясь на конвеере - силы суммируются, что не очень хорошо. Если будет время и желание попробую что-то похимичить. Если получится - отпишусь.
|
|
| Часовой пояс GMT +4, время: 12:57. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.