HelloPolycodeApp.cpp 1.7 KB

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