Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Box2D Bodies – Fixture. Konstruktor struktury b2BodyDef.

Podobne prezentacje


Prezentacja na temat: "Box2D Bodies – Fixture. Konstruktor struktury b2BodyDef."— Zapis prezentacji:

1 Box2D Bodies – Fixture

2

3

4 Konstruktor struktury b2BodyDef

5 Typy ciała sztywnego: b2_dynamicBody b2_staticBody b2_kinematicBody

6 b2_dynamicBody Posiada masę Podlega działaniom sił Może zostać wprawione w ruch liniowy i rotacyjny Koliduje z ciałami dynamicznymi i statycznymi

7 b2_staticBody Nie posiada masy Nie podlega działaniom sił Nie może zostać wprawione w ruch liniowy ani rotacyjny Kolidują z nim ciała dynamiczne

8 b2_kinematicBody Nie podlega działaniom sił Może zostać wprawione w ruch liniowy i rotacyjny Może kolidować z ciałami dynamicznymi, nie koliduje z innymi ciałami kinetycznymi

9 Właściwości ciała i metody klasy b2Body Pola struktury b2BodyDefPrzykładMetody klasy b2Body.positionbodyDef.position.Set(0.0f, 2.0f);b2Body::GetPosition().anglebodyDef.angle = 0.25f * b2_pi;b2Body::GetAngle().linearVelocitybodyDef.linearVelocity = b2Vec2(6.f,0.f);b2Body::GetLinearVelocity().angularVelocitybodyDef.angularVelocity = 50.f;b2Body::GetAngularVelocity().linearDampigbodyDef.linearDamping = 0.0f;b2Body::GetLinearDampig().angularDampingbodyDef.angularDamping = 0.01b2Body::GetAngularDamping().typebodyDef.type = b2_dynamicBody;b2Body::GetType().fixedRotationbodyDef.fixedRotation = true;b2Body::GetFixedRotation()

10 Sleep Każde ciało może zrobić sobie drzemkę bodyDef.allowSleep = true or false; bodyDef.awake = true or false; b2Body::SetAwake(true or false);b2Body::IsAwake();

11 CCD - continuous collision detection Ustawiając parametr.bullet na true (wartość domyślna) mówimy, że kolizje mają podlegać CCD bodyDef.bullet = true or false; b2Body::IsBullet(); b2Body::SetBullet(true or false);

12 Parametr.active Określa czy ciało ma brać udział w symulacji b2Body::IsActive(); b2BodySetActive(bool parameters); bodyDef.active = true or false;

13

14 Jak tworzymy te „fikstury” ? Metoda CreateFixture i jej dwa oblicza: myBody->CreateFixture(&fixtureDef); myBody->CreateFixture(&shape, 1.0f);

15 Fikstura – jako część ciała b2FixtureDef fixtureDef; // definicja struktury myBody->CreateFixture(&fixtureDef); // przypisanie naszej fikstury do ciała b2FixtureDef fixtureDef; b2Fixture* myFixture = myBody->CreateFixture(&fixtureDef); myBody->DestroyFixture(myFixture); // niszczenie fikstury

16 Konstruktor struktury b2FixtureDef

17 Właściwości ciała i metody klasy b2Fixture Pola struktury b2FixtureDef PrzykładMetody klasy b2Fixture.shapefixtureDef.shape = &Shape;b2Fixture::GetShape().frictionfixtureDef.friction = 0.0f; b2Fixture::GetFriction() b2Fixture::SetFriction(float friction).restitutionfixtureDef.restitution = 0.6f; b2Fixture::GetRestitution() b2Fixture::SetRestitution(float restitution).densityfixtureDef.density = 1.f; b2Fixture::GetDensity() b2Fixture::SetDensity(float density).isSensorfixtureDef.isSensor = true; b2Fixture::IsSensor() b2Fixture::SetSensor(bool sensor)

18 Parametr.filter filtrowanie kolizji Pola klasy b2FilterOpis.categoryBitsBit naszego obiektu b2Fixture.maskBitsMaska bitowa obiektów, z którymi będzie kolidował nasz obiekt.groupIndexIndex grupowy obiektów

19 Parametr.filter filtrowanie kolizji playFixD..filter.categoryBits = 0x0000; // A ma kategorię 0 playFixD.filter.maskBits = 0x0002; // i może kolidować z kategorią 2 (C) playFixD..filter.categoryBits = 0x0001; // B ma kategorię 1 playFixD..filter.maskBits = 0x0002; // i może kolidować z kategorią 2 (C) playFixD..filter.categoryBits =0x0002; // C ma kategorię 2 playFixD..filter.maskBits = 0x0000 | 0x0001; // i może kolidować z kategoriami 1 (B) oraz 0 (A)

20 „Filtrowanie dynamiczne” b2Fixture::GetFilterData(); b2Fixture::SetFilterData(const b2Filter& filter);

21 Czas na projekt


Pobierz ppt "Box2D Bodies – Fixture. Konstruktor struktury b2BodyDef."

Podobne prezentacje


Reklamy Google