Fixtures
가장 큰 변화들 중 하나는 어떻게 shape이 동작하는가 이다. density(밀도), friction(마찰) 같은 shape의 제질 속성은 기하 속성(radius, vertice..)들과 분리되었다.

body를 만든 이후, material(재질) 속성을 위한 fixture definition을 생성해야 한다. fixture에 shape를 설정하고 b2Body.CreateFixture 를 호출한다.
1 var fd:b2FixtureDef = new b2FixtureDef();
2 fd.density = 1.0;
3 fd.shape = new b2CircleShape(5.0);
4 var fixture:b2Fixture = myBody.CreateFixture(fd);
편의를 위해서, b2Body.CreateFixture2 함수는 shape와 density를 직접 매개변수로정하여 b2FixtureDef를 생성하는것을 생략할 수 있게 해준다. 
1 var fixture:b2Fixture = myBody.CreateFixture2(newb2CircleShape(5.0), 1.0);
b2CircleShape와 b2PolygonShape는 직접적으로 사용됨을 메모하자. 그것들은 b2ShapeDef가 필요없다.

Body types
2.0 버전에서, static, dynamic 두 종류의 body가 있었다. body가 static인지 아닌지에 따라 질량이 결정되어졌다. 이번 버젼에서는 body가 움직이지만 다른 body에 영향받지 않는 kinematic 이라는 새로운 타잎의 body가 추가되었다. 이를 사용하기 위해서, body의 타입을 b2BodyDef.type 과 b2Body.SetType을 사용하여 정확하게 설정해야만 한다.
1 var bd:b2BodyDef = new b2BodyDef();
2 bd.type = b2Body.b2_dynamicBody;

Events
2.0버전의 충돌 이벤트 시스템은 사용하기 매우 어려웠었고, 이는 새로 교체되었다. 이벤트는 contact point별로가 아닌, contact 단위로 발생된다. 그것들은 contact point를 포함한 많은 정보를 담고있다. BeginContact 와 EndContact는 두 물체의 충돌 시작과 끝의 시점을 쉽게 측정할수 있도록 제공되고, sensor에 의새서 발생되는 유일한 이벤트이다. 자세한 내용은 레퍼런스 문서를 참조하라.

Initialization
2.1버전은 전체적으로 완전히 제작성 되었다. world의 사이즈를 지정할 필요가 없어졌으며, 충분히 커질만큼 커질것이다.

Game loop
최종 버전에서는 변할지도 모르지만, b2World.Step이후 즉시 b2World.ClearForces 를 호출할 필요가 없어졌다. 게임로직상의 한 스탭에 여러번의 b2World.Step을 사용하길 원하는 사용자를 위해서 안정성에 기여하기위한 목적을 가진 기능이다. 또한 디버그 드로잉을 사용하고자 한다면 b2World.DrawBedugDate()를 호출할 필요가 있을지도 모른다.

Restrictions
몇몇 제약사항을 걷어냈다.
  • world 의 바운더리가 없어졌다 
  • polygon의 꼭지점 개수 제한이 없다. 원하는 만큼 얇게 만들 수도 있지만 여전히 convex(역자주:모든 꼭지점의 내각이 180도 미만)여야한다. 좋은 모서리 형태의 shape을 만들기 위해 단 두개의 꼭지점도 유효한 다각형으로 만들 수 있다.
  • 몇몇 내부적 제약도 사라졌다는 말은 더 이상 assertion failure 때문에 당황하지 않아도 된다는 의미이다.

WRITTEN BY
buzzler

,