]> git.localhorst.tv Git - l2e.git/commitdiff
added center positioning for Sprite
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Wed, 8 Aug 2012 20:01:47 +0000 (22:01 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Wed, 8 Aug 2012 20:01:47 +0000 (22:01 +0200)
src/graphics/Sprite.h

index 202b96f3f5a05e2a2eb95ffc2f03b1f8d8c9a08d..4a99af421232e6638e71534944aa1d47ba23fdcd 100644 (file)
@@ -8,7 +8,9 @@
 #ifndef GRAPHICS_SPRITE_H_
 #define GRAPHICS_SPRITE_H_
 
+#include "../geometry/operators.h"
 #include "../geometry/Point.h"
+#include "../geometry/Vector.h"
 
 #include <SDL.h>
 
@@ -24,11 +26,13 @@ public:
        int Width() const { return width; }
        int Height() const { return height; }
        void Draw(SDL_Surface *dest, geometry::Point<int> position, int col = 0, int row = 0) const;
+       void DrawCenter(SDL_Surface *dest, geometry::Point<int> position, int col = 0, int row = 0) const {
+               geometry::Vector<int> offset(-Width() / 2, -Height() / 2);
+               Draw(dest, position + offset, col, row);
+       }
        void DrawCenterBottom(SDL_Surface *dest, geometry::Point<int> position, int col = 0, int row = 0) const {
-               geometry::Point<int> translated(
-                               position.X() - (Width() / 2),
-                               position.Y() - Height());
-               Draw(dest, translated, col, row);
+               geometry::Vector<int> offset(-Width() / 2, -Height());
+               Draw(dest, position + offset, col, row);
        }
 
 private: