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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.09.2011, 17:15
JokerDen вне форума Посмотреть профиль Отправить личное сообщение для JokerDen Найти все сообщения от JokerDen
  № 1  
Ответить с цитированием
JokerDen
[+3 17.05.11]
 
Аватар для JokerDen

Регистрация: May 2009
Сообщений: 53
По умолчанию Создание тел в Box2D

Начал осваивать физический движок Box2D для Флеша. В версии движка 2.0 мне без проблем удалось создать тело. Но когда решил реализовать в версии 2.1, то ничего не получилось -- никак не могу освоиться с фикстурами. Помогите кто-нибудь по аналогии старого движка сделать объект в новой версии.

Код AS3:
var wall:b2Body;
var wallDef:b2BodyDef = new b2BodyDef();
var wallShapeDef:b2PolygonDef = new b2PolygonDef();
var wallShape:Sprite = new Sprite();
 
wallShape.graphics.beginFill(color, 1);
wallShape.graphics.drawRect( -10, -200 , 20, 400);
wallShape.graphics.endFill();
wallShape.x = 10;
wallShape.y = 200;
addChild(wallShape);
wallDef.position.Set(10 / 30, 200/ 30);
wallDef.userData = wallShape;
wallShapeDef.SetAsBox(10 / 30, 200 / 30);
wall = world.CreateBody(wallDef);
wall.CreateShape(wallShapeDef);
wall.SetMassFromShapes();

Старый 02.09.2011, 20:56
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Вот пример создания простого статического тела в 2.1а
Код AS3:
public static function create(x:int, y:int, w:int, h:int, world:b2World, ratio:Number, centered:Boolean = false):void {
			var shape:				b2PolygonShape	= new b2PolygonShape();
			var bodyDef:			b2BodyDef 		= new b2BodyDef();
			var body:				b2Body;
			var fixture:			b2FixtureDef	= new b2FixtureDef();
			fixture.shape							= shape;
			if (centered) bodyDef.position.Set(x / ratio, y / ratio);
			else bodyDef.position.Set((x + w / 2) / ratio, (y + h / 2) / ratio);
			shape.SetAsBox(w / 2 / ratio, h / 2 / ratio);
			body = world.CreateBody(bodyDef);
			body.CreateFixture(fixture);
		}

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

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

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


 


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


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