Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.07.2012, 01:35
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 1  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию Как создать конвеер

Здравствуйте. Есть необходимость создать эффект конвеера с помощью Box2D. Была идея создать два кубика, которые бы изменяли по очереди свое положение. Но в таком случае нужна своего рода "маска", которая бы ограничивала область воздействия такого конвеера. Была идея создать крутящиеся колесика. Но и здесь проблема - тела будут дергаться вверх и вниз при попадании между колесиками. Думал сделать очень много маленьких колесиков, чтобы дергание не было - но это нагрузка на процессор.
Подскажите, пожалуйста как лучше сделать такую "движущуюся ленту".
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 02.07.2012, 05:53
vizgl вне форума Посмотреть профиль Отправить личное сообщение для vizgl Найти все сообщения от vizgl
  № 2  
Ответить с цитированием
vizgl
 
Аватар для vizgl

Регистрация: Jun 2012
Сообщений: 70
http://flashgameblogs.ru/blog/box2d/915.html
Правда там мне не нравится, что изменяется сам box2d. Хотя, если разобраться, то можно сделать и без изменений внутренностей box2d.
__________________
Блог: http://devizgl.blogspot.com/

Старый 07.07.2012, 14:03
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 3  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
vizgl, спасибо за ответ. Я видел эту статью раньше, но мне тоже не понравилась идея.
Как я решил проблему. Просто создал тело (прямоугольник, дальше конвеер), и начал "слушать" столкновения других тел с этим прямоугольником. Если что-то столкнулось с конвеером, то придавал этому (другому телу) силу, чтобы его уносило в сторону:
Вот отрывок из класса унаследованного от b2ContactListener. Кто работал с Box2D должен знать что это - объяснять не буду:
Код AS3:
override public function BeginContact(contact:b2Contact):void {
	var bodyA:b2Body = contact.GetFixtureA().GetBody();
	var bodyB:b2Body = contact.GetFixtureB().GetBody();
	var dataA:Object = bodyA.GetUserData();
	var dataB:Object = bodyB.GetUserData();
	if (bodyA && bodyB) {
		if (dataA == "conveyer") {
			bodyB.GetLinearVelocity().x += 2;
		} else if (dataB == "conveyer") {
			bodyA.GetLinearVelocity().x += 2;
		}
	}
}
Это всего лишь суть. Конечно, можно доработать и создать разную скорость и разные направления для движения ленты конвеера.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 08.07.2012, 11:14
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 4  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
только тут получается "сила" прикладывается не в точке контакта, а в центр масс. Вряд ли это будет нормально выглядеть кода, например, ящик падает на конвейер углом. по идее когда ящик падает углом на движующийся контейнер, в вашем случае, он получит угловую скорость направленную против часовой стрелки... в вашем исходнике, получится наоборот

Старый 08.07.2012, 11:58
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 5  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Возможно вы правы, но, на это можно не обращать внимания. Вот наглядный пример, красиво и реалистично смотрится:
Вложения
Тип файла: zip NewProject1.zip (139.0 Кб, 269 просмотров)
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 08.07.2012, 14:09
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 6  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
я в играх такие вещи сразу замечаю =) главное - это мелочи

Старый 08.07.2012, 14:34
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 7  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
К стати! Только что заметил, что если падающее на конвеер тело изначально имеет скорость по "х" то, находясь на конвеере - силы суммируются, что не очень хорошо. Если будет время и желание попробую что-то похимичить. Если получится - отпишусь.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 13.07.2012, 14:13
gagaga вне форума Посмотреть профиль Отправить личное сообщение для gagaga Найти все сообщения от gagaga
  № 8  
Ответить с цитированием
gagaga

Регистрация: Apr 2012
Сообщений: 239
http://flashgameblogs.ru/blog/box2d/915.html

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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