HelloPolycodeApp.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "HelloPolycodeApp.h"
  2. HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) {
  3. core = new POLYCODE_CORE(view, 640,480,false,true,0,0,90, 0, true);
  4. PhysicsScene2D *scene = new PhysicsScene2D(0.1, 50);
  5. ScenePrimitive *ceiling = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 2.0, 0.1);
  6. ceiling->setColor(0.0, 0.0, 0.0, 1.0);
  7. ceiling->setPosition(0, 0.5);
  8. scene->addPhysicsChild(ceiling, PhysicsScene2DEntity::ENTITY_RECT, true);
  9. // Revolute Joint
  10. ScenePrimitive *shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.03, 0.2);
  11. shape->setAnchorPoint(0.0, 1.0, 0.0);
  12. shape->setPosition(-0.3, 0.48);
  13. scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
  14. scene->createRevoluteJoint(shape, ceiling, 0.0, 0.01);
  15. scene->applyImpulse(shape, 10, 0);
  16. // Distance Joint
  17. shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.1, 0.02);
  18. shape->setPosition(0.0, 0.2);
  19. scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
  20. scene->createDistanceJoint(shape, ceiling, false);
  21. scene->applyImpulse(shape, 2, 0);
  22. SceneLine *line = new SceneLine(shape, ceiling);
  23. line->setColor(1.0, 0.0, 0.0, 1.0);
  24. scene->addChild(line);
  25. // Prismatic Joint
  26. shape = new ScenePrimitive(ScenePrimitive::TYPE_VPLANE, 0.05, 0.1);
  27. shape->setPosition(0.3, 0.3);
  28. scene->addPhysicsChild(shape, PhysicsScene2DEntity::ENTITY_RECT, false);
  29. scene->createPrismaticJoint(ceiling, shape, Vector2(0,1), 0,0, false, -0.3, 0, true);
  30. SceneEntity *lineAnchor = new SceneEntity();
  31. lineAnchor->setPosition(0.3,0.5);
  32. line = new SceneLine(shape, lineAnchor);
  33. line->setColor(0.0, 1.0, 0.0, 1.0);
  34. scene->addChild(line);
  35. }
  36. HelloPolycodeApp::~HelloPolycodeApp() {
  37. }
  38. bool HelloPolycodeApp::Update() {
  39. return core->updateAndRender();
  40. }