|
|
|||||
[+3 17.05.11]
Регистрация: May 2009
Сообщений: 53
|
Создание тел в Box2D
Начал осваивать физический движок Box2D для Флеша. В версии движка 2.0 мне без проблем удалось создать тело. Но когда решил реализовать в версии 2.1, то ничего не получилось -- никак не могу освоиться с фикстурами. Помогите кто-нибудь по аналогии старого движка сделать объект в новой версии.
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(); |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Вот пример создания простого статического тела в 2.1а
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, время: 04:20. |
|
« Предыдущая тема | Следующая тема » |
|
|