| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #include "HelloPolycodeApp.h"
- HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) {
- core = new POLYCODE_CORE(view, 640,480,false,true,0,0,90, 0, true);
- PhysicsScene2D *scene = new PhysicsScene2D(0.1, 50);
- ScenePrimitive *ceiling = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 2.0, 0.1);
- ceiling->setColor(0.0, 0.0, 0.0, 1.0);
- ceiling->setPosition(0, 0.5);
- scene->addPhysicsChild(ceiling, PhysicsScene2DEntity::ENTITY_RECT, true);
-
- // Revolute Joint
- ScenePrimitive *shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.03, 0.2);
- shape->setAnchorPoint(0.0, 1.0, 0.0);
- shape->setPosition(-0.3, 0.48);
- scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
- scene->createRevoluteJoint(shape, ceiling, 0.0, 0.01);
- scene->applyImpulse(shape, 10, 0);
-
- // Distance Joint
- shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.1, 0.02);
- shape->setPosition(0.0, 0.2);
- scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
- scene->createDistanceJoint(shape, ceiling, false);
- scene->applyImpulse(shape, 2, 0);
-
- SceneLine *line = new SceneLine(shape, ceiling);
- line->setColor(1.0, 0.0, 0.0, 1.0);
- scene->addChild(line);
- // Prismatic Joint
- shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.05, 0.1);
- shape->setPosition(0.3, 0.3);
- scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
- scene->createPrismaticJoint(ceiling, shape, Vector2(0,1), 0,0, false, -0.3, 0, true);
- SceneEntity *lineAnchor = new SceneEntity();
- lineAnchor->setPosition(0.3,0.5);
- line = new SceneLine(shape, lineAnchor);
- line->setColor(0.0, 1.0, 0.0, 1.0);
- scene->addChild(line);
- }
- HelloPolycodeApp::~HelloPolycodeApp() {
- }
- bool HelloPolycodeApp::Update() {
- return core->updateAndRender();
- }
|