2
0

HelloPolycodeApp.cpp 1.5 KB

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