Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

75 строки
1.2 KiB

  1. //
  2. // Deus Hax (working title)
  3. // Copyright (c) 2010 Sam Hocevar <sam@hocevar.net>
  4. //
  5. #if defined HAVE_CONFIG_H
  6. # include "config.h"
  7. #endif
  8. #include <cstdio>
  9. #include "core.h"
  10. #include "debugsprite.h"
  11. /*
  12. * DebugSprite implementation class
  13. */
  14. class DebugSpriteData
  15. {
  16. friend class DebugSprite;
  17. private:
  18. Game *game;
  19. int tiler;
  20. float x, y, z;
  21. };
  22. /*
  23. * Public DebugSprite class
  24. */
  25. DebugSprite::DebugSprite(Game *game)
  26. {
  27. data = new DebugSpriteData();
  28. data->game = game;
  29. data->tiler = Tiler::Register("art/test/character-dress.png");
  30. data->x = 320;
  31. data->y = 206;
  32. data->z = 0;
  33. }
  34. Entity::Group DebugSprite::GetGroup()
  35. {
  36. return GROUP_DEFAULT;
  37. }
  38. void DebugSprite::TickGame(float deltams)
  39. {
  40. Entity::TickGame(deltams);
  41. Float2 axis = Input::GetAxis(0);
  42. data->x += 0.1f * deltams * axis.x;
  43. data->y += 0.1f * deltams * axis.y;
  44. }
  45. void DebugSprite::TickRender(float deltams)
  46. {
  47. Entity::TickRender(deltams);
  48. int x = data->x;
  49. int y = data->y;
  50. int z = data->z;
  51. data->game->GetScene()->AddTile((data->tiler << 16) | 15, x, y, z + 32, 1);
  52. data->game->GetScene()->AddTile((data->tiler << 16) | 31, x, y, z, 1);
  53. }
  54. DebugSprite::~DebugSprite()
  55. {
  56. Tiler::Deregister(data->tiler);
  57. delete data;
  58. }