Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 

30 rindas
923 B

  1. #include "config.h"
  2. #include "object.h"
  3. Object::Object() : m_symbol('*'), m_size(1), m_pos(0, 0) {}
  4. Object::Object(Position pos, int size, char symbol)
  5. : m_symbol(symbol), m_size(size), m_pos(pos) {}
  6. char Object::getSymbol() { return m_symbol; }
  7. Object::Position Object::getPosition() { return m_pos; }
  8. int Object::getSize() { return m_size; }
  9. void Object::setPosition(Object::Position p) { m_pos = p; }
  10. void Object::changePosition(double dx, double dy) {
  11. if (m_pos.X + dx + (-(m_size + 1) / 2 + 1) < 0)
  12. dx = -(m_pos.X + (-(m_size + 1) / 2 + 1));
  13. if (m_pos.Y + dy + (-(m_size + 1) / 2 + 1) < 0)
  14. dy = -(m_pos.Y + (-(m_size + 1) / 2 + 1));
  15. if (m_pos.X + dx + m_size / 2 >= WORLD_WIDTH)
  16. dx = (WORLD_WIDTH-1) - (m_pos.X + m_size / 2);
  17. if (m_pos.Y + dy + m_size / 2 >= WORLD_HEIGHT)
  18. dy = (WORLD_HEIGHT-1) - (m_pos.Y + m_size / 2);
  19. m_pos.X += dx, m_pos.Y += dy;
  20. }