]> git.localhorst.tv Git - l2e.git/commitdiff
added Entity class
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 30 Sep 2012 14:25:20 +0000 (16:25 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Sun, 30 Sep 2012 14:25:20 +0000 (16:25 +0200)
Debug/src/map/subdir.mk
Release/src/map/subdir.mk
src/map/Entity.cpp [new file with mode: 0644]
src/map/Entity.h [new file with mode: 0644]
src/map/fwd.h

index b90f2b1f7e1bf0b53f03d76eaff0991dd0a4c5ce..fa9307839b8adf843643082a669835e4fcbe54ab 100644 (file)
@@ -5,18 +5,21 @@
 # Add inputs and outputs from these tool invocations to the build variables 
 CPP_SRCS += \
 ../src/map/Area.cpp \
+../src/map/Entity.cpp \
 ../src/map/Map.cpp \
 ../src/map/MapState.cpp \
 ../src/map/Tile.cpp 
 
 OBJS += \
 ./src/map/Area.o \
+./src/map/Entity.o \
 ./src/map/Map.o \
 ./src/map/MapState.o \
 ./src/map/Tile.o 
 
 CPP_DEPS += \
 ./src/map/Area.d \
+./src/map/Entity.d \
 ./src/map/Map.d \
 ./src/map/MapState.d \
 ./src/map/Tile.d 
index 7fa8f6a276b862199c39190894e0c6bbab773a1f..25e2b8204b6418477966718a02c3b31291b47e7f 100644 (file)
@@ -5,18 +5,21 @@
 # Add inputs and outputs from these tool invocations to the build variables 
 CPP_SRCS += \
 ../src/map/Area.cpp \
+../src/map/Entity.cpp \
 ../src/map/Map.cpp \
 ../src/map/MapState.cpp \
 ../src/map/Tile.cpp 
 
 OBJS += \
 ./src/map/Area.o \
+./src/map/Entity.o \
 ./src/map/Map.o \
 ./src/map/MapState.o \
 ./src/map/Tile.o 
 
 CPP_DEPS += \
 ./src/map/Area.d \
+./src/map/Entity.d \
 ./src/map/Map.d \
 ./src/map/MapState.d \
 ./src/map/Tile.d 
diff --git a/src/map/Entity.cpp b/src/map/Entity.cpp
new file mode 100644 (file)
index 0000000..01cbe7f
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Entity.cpp
+ *
+ *  Created on: Sep 29, 2012
+ *      Author: holy
+ */
+
+#include "Entity.h"
+
+namespace map {
+
+Entity::Entity()
+: sprite(0) {
+
+}
+
+
+void Entity::Update(float deltaT) {
+       position += velocity * deltaT;
+}
+
+
+void Entity::Render(SDL_Surface *dest, const geometry::Vector<int> &offset) const {
+       if (animation.Running()) {
+               animation.DrawCenterBottom(dest, offset + position);
+       } else {
+               sprite->DrawCenterBottom(dest, offset + position);
+       }
+}
+
+}
diff --git a/src/map/Entity.h b/src/map/Entity.h
new file mode 100644 (file)
index 0000000..fd91f3e
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Entity.h
+ *
+ *  Created on: Sep 29, 2012
+ *      Author: holy
+ */
+
+#ifndef MAP_ENTITY_H_
+#define MAP_ENTITY_H_
+
+#include "../geometry/Vector.h"
+#include "../graphics/fwd.h"
+#include "../graphics/Animation.h"
+
+#include <functional>
+#include <SDL.h>
+
+namespace map {
+
+class Entity {
+
+public:
+       Entity();
+       ~Entity() { }
+
+public:
+       geometry::Vector<float> &Position() { return position; }
+       const geometry::Vector<float> &Position() const { return position; }
+
+       geometry::Vector<float> &Velocity() { return velocity; }
+       const geometry::Vector<float> &Velocity() const { return velocity; }
+
+       void SetSprite(const graphics::Sprite *s) { sprite = s; }
+       graphics::AnimationRunner &Animation() { return animation; }
+       const graphics::AnimationRunner &Animation() const { return animation; }
+
+       void Update(float deltaT);
+
+       void Render(SDL_Surface *, const geometry::Vector<int> &offset) const;
+
+private:
+       const graphics::Sprite *sprite;
+       graphics::AnimationRunner animation;
+       geometry::Vector<float> position;
+       geometry::Vector<float> velocity;
+
+};
+
+}
+
+#endif /* MAP_ENTITY_H_ */
index 5ff828b886508d968a3c80f3b22cde38f6a0f2ea..a9d1e2ea7bb3f259b3be754ba3cc178499addc3e 100644 (file)
@@ -11,6 +11,7 @@
 namespace map {
 
 class Area;
+class Entity;
 class Map;
 class MapState;
 class Tile;