Karte.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "Karte.h"
  2. #include <Punkt.h>
  3. #include <Rahmen.h>
  4. #include "..\Kamera\Kamera.h"
  5. // Inhalt der Karte Klasse aus Karte.h
  6. // Konstruktor
  7. Karte::Karte()
  8. {
  9. karteId = 0;
  10. map = new Bild();
  11. rahmen = new LRahmen();
  12. rahmen->setFarbe( 0xFFFFFFFF );
  13. rahmen->setRamenBreite( 2 );
  14. ref = 1;
  15. }
  16. // Destruktor
  17. Karte::~Karte()
  18. {
  19. map->release();
  20. rahmen->release();
  21. }
  22. // nicht constant
  23. void Karte::setSize( int br, int hö )
  24. {
  25. map->neuBild( br, hö, 0xFF000000 );
  26. rahmen->setSize( br, hö );
  27. }
  28. void Karte::setId( int id )
  29. {
  30. karteId = id;
  31. }
  32. void Karte::render( Kamera *zKam, Bild &zRObj )
  33. {
  34. rahmen->setPosition( zKam->getRX( 0 ), zKam->getRY( 0 ) );
  35. zRObj.drawBild( rahmen->getX(), rahmen->getY(), map->getBreite(), map->getHeight(), *map );
  36. rahmen->render( zRObj );
  37. }
  38. // constant
  39. int Karte::getId() const
  40. {
  41. return karteId;
  42. }
  43. int Karte::getBreite() const
  44. {
  45. return map->getBreite();
  46. }
  47. int Karte::getHeight() const
  48. {
  49. return map->getHeight();
  50. }
  51. Bild *Karte::zMap() const
  52. {
  53. return ( map->getBreite() != 0 && map->getHeight() != 0 ) ? map : 0;
  54. }
  55. // Reference Counting
  56. Karte *Karte::getThis()
  57. {
  58. ref++;
  59. return this;
  60. }
  61. Karte *Karte::release()
  62. {
  63. ref--;
  64. if( !ref )
  65. delete this;
  66. return 0;
  67. }