HelloPolycodeApp.cpp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "HelloPolycodeApp.h"
  2. HelloPolycodeApp::HelloPolycodeApp(PolycodeView *view) : EventHandler() {
  3. #ifdef __APPLE__
  4. core = new CocoaCore(view, 640,480,false,0,90);
  5. #else
  6. core = new SDLCore(view, 640,480,false,0,90);
  7. #endif
  8. CoreServices::getInstance()->getResourceManager()->addArchive("Resources/default.pak");
  9. CoreServices::getInstance()->getResourceManager()->addDirResource("default", false);
  10. Screen *screen = new Screen();
  11. image = new ScreenImage("Resources/polycode_logo.png");
  12. image->setPositionMode(ScreenEntity::POSITION_CENTER);
  13. image->setPosition(640/2, 480/2);
  14. screen->addChild(image);
  15. rotationSpeed = 0;
  16. core->getInput()->addEventListener(this, InputEvent::EVENT_KEYDOWN);
  17. core->getInput()->addEventListener(this, InputEvent::EVENT_KEYUP);
  18. }
  19. void HelloPolycodeApp::handleEvent(Event *e) {
  20. if(e->getDispatcher() == core->getInput()) {
  21. InputEvent *inputEvent = (InputEvent*)e;
  22. switch(e->getEventCode()) {
  23. case InputEvent::EVENT_KEYDOWN:
  24. switch (inputEvent->keyCode()) {
  25. case KEY_LEFT:
  26. rotationSpeed = -200;
  27. break;
  28. case KEY_RIGHT:
  29. rotationSpeed = 200;
  30. break;
  31. }
  32. break;
  33. case InputEvent::EVENT_KEYUP:
  34. switch (inputEvent->key) {
  35. case KEY_LEFT:
  36. case KEY_RIGHT:
  37. rotationSpeed = 0;
  38. break;
  39. }
  40. break;
  41. }
  42. }
  43. }
  44. bool HelloPolycodeApp::Update() {
  45. Number elapsed = core->getElapsed();
  46. image->setRotation(image->getRotation() + elapsed * rotationSpeed);
  47. return core->Update();
  48. }