diff options
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/animatable.cpp | 27 | ||||
-rw-r--r-- | src/components/animatable.h (renamed from src/components/sprite_renderable.h) | 10 | ||||
-rw-r--r-- | src/components/controllable.cpp | 71 | ||||
-rw-r--r-- | src/components/controllable.h | 36 | ||||
-rw-r--r-- | src/components/droppable.cpp | 11 | ||||
-rw-r--r-- | src/components/droppable.h | 15 | ||||
-rw-r--r-- | src/components/ponderable.cpp | 41 | ||||
-rw-r--r-- | src/components/ponderable.h | 24 | ||||
-rw-r--r-- | src/components/sprite_renderable.cpp | 27 |
9 files changed, 233 insertions, 29 deletions
diff --git a/src/components/animatable.cpp b/src/components/animatable.cpp new file mode 100644 index 0000000..fcd277c --- /dev/null +++ b/src/components/animatable.cpp | |||
@@ -0,0 +1,27 @@ | |||
1 | #include "animatable.h" | ||
2 | |||
3 | AnimatableComponent::AnimatableComponent(const char* filename, int frame_width, int frame_height, int frames_across) | ||
4 | : texture(filename), frame_width(frame_width), frame_height(frame_height), frames_across(frames_across) | ||
5 | { | ||
6 | |||
7 | } | ||
8 | |||
9 | int AnimatableComponent::getFrame() const | ||
10 | { | ||
11 | return frame; | ||
12 | } | ||
13 | |||
14 | void AnimatableComponent::setFrame(int frame) | ||
15 | { | ||
16 | this->frame = frame; | ||
17 | } | ||
18 | |||
19 | const Texture& AnimatableComponent::getTexture() const | ||
20 | { | ||
21 | return texture; | ||
22 | } | ||
23 | |||
24 | Rectangle AnimatableComponent::getFrameRect() const | ||
25 | { | ||
26 | return {frame_width * (frame % frames_across), frame_height * (frame / frames_across), frame_width, frame_height}; | ||
27 | } | ||
diff --git a/src/components/sprite_renderable.h b/src/components/animatable.h index b4465c3..cf6ee54 100644 --- a/src/components/sprite_renderable.h +++ b/src/components/animatable.h | |||
@@ -3,10 +3,11 @@ | |||
3 | 3 | ||
4 | #include "component.h" | 4 | #include "component.h" |
5 | #include "renderer.h" | 5 | #include "renderer.h" |
6 | #include "direction.h" | ||
6 | 7 | ||
7 | class SpriteRenderableComponent : public Component { | 8 | class AnimatableComponent : public Component { |
8 | public: | 9 | public: |
9 | SpriteRenderableComponent(const char* filename, int frame_width, int frame_height, int frames_across); | 10 | AnimatableComponent(const char* filename, int frame_width, int frame_height, int frames_across); |
10 | 11 | ||
11 | int getFrame() const; | 12 | int getFrame() const; |
12 | void setFrame(int frame); | 13 | void setFrame(int frame); |
@@ -14,6 +15,11 @@ class SpriteRenderableComponent : public Component { | |||
14 | const Texture& getTexture() const; | 15 | const Texture& getTexture() const; |
15 | Rectangle getFrameRect() const; | 16 | Rectangle getFrameRect() const; |
16 | 17 | ||
18 | void setDirection(Direction dir) {}; | ||
19 | void setWalking(bool w) {}; | ||
20 | void setJumping(bool w) {}; | ||
21 | void setCrouching(bool w) {}; | ||
22 | |||
17 | private: | 23 | private: |
18 | Texture texture; | 24 | Texture texture; |
19 | int frame_width; | 25 | int frame_width; |
diff --git a/src/components/controllable.cpp b/src/components/controllable.cpp new file mode 100644 index 0000000..a4d45f2 --- /dev/null +++ b/src/components/controllable.cpp | |||
@@ -0,0 +1,71 @@ | |||
1 | #include "controllable.h" | ||
2 | |||
3 | int ControllableComponent::getLeftKey() const | ||
4 | { | ||
5 | return leftKey; | ||
6 | } | ||
7 | |||
8 | void ControllableComponent::setLeftKey(int k) | ||
9 | { | ||
10 | leftKey = k; | ||
11 | } | ||
12 | |||
13 | int ControllableComponent::getRightKey() const | ||
14 | { | ||
15 | return rightKey; | ||
16 | } | ||
17 | |||
18 | void ControllableComponent::setRightKey(int k) | ||
19 | { | ||
20 | rightKey = k; | ||
21 | } | ||
22 | |||
23 | int ControllableComponent::getJumpKey() const | ||
24 | { | ||
25 | return jumpKey; | ||
26 | } | ||
27 | |||
28 | void ControllableComponent::setJumpKey(int k) | ||
29 | { | ||
30 | jumpKey = k; | ||
31 | } | ||
32 | |||
33 | int ControllableComponent::getDropKey() const | ||
34 | { | ||
35 | return dropKey; | ||
36 | } | ||
37 | |||
38 | void ControllableComponent::setDropKey(int k) | ||
39 | { | ||
40 | dropKey = k; | ||
41 | } | ||
42 | |||
43 | bool ControllableComponent::isFrozen() const | ||
44 | { | ||
45 | return frozen; | ||
46 | } | ||
47 | |||
48 | void ControllableComponent::setFrozen(bool f) | ||
49 | { | ||
50 | frozen = f; | ||
51 | } | ||
52 | |||
53 | bool ControllableComponent::isHoldingLeft() const | ||
54 | { | ||
55 | return holdingLeft; | ||
56 | } | ||
57 | |||
58 | void ControllableComponent::setHoldingLeft(bool f) | ||
59 | { | ||
60 | holdingLeft = f; | ||
61 | } | ||
62 | |||
63 | bool ControllableComponent::isHoldingRight() const | ||
64 | { | ||
65 | return holdingRight; | ||
66 | } | ||
67 | |||
68 | void ControllableComponent::setHoldingRight(bool f) | ||
69 | { | ||
70 | holdingRight = f; | ||
71 | } | ||
diff --git a/src/components/controllable.h b/src/components/controllable.h new file mode 100644 index 0000000..317d68d --- /dev/null +++ b/src/components/controllable.h | |||
@@ -0,0 +1,36 @@ | |||
1 | #ifndef CONTROLLABLE_H_4E0B85B4 | ||
2 | #define CONTROLLABLE_H_4E0B85B4 | ||
3 | |||
4 | #include "component.h" | ||
5 | #include "renderer.h" | ||
6 | |||
7 | class ControllableComponent : public Component { | ||
8 | public: | ||
9 | int getLeftKey() const; | ||
10 | void setLeftKey(int k); | ||
11 | int getRightKey() const; | ||
12 | void setRightKey(int k); | ||
13 | int getJumpKey() const; | ||
14 | void setJumpKey(int k); | ||
15 | int getDropKey() const; | ||
16 | void setDropKey(int k); | ||
17 | |||
18 | bool isFrozen() const; | ||
19 | void setFrozen(bool f); | ||
20 | bool isHoldingLeft() const; | ||
21 | void setHoldingLeft(bool f); | ||
22 | bool isHoldingRight() const; | ||
23 | void setHoldingRight(bool f); | ||
24 | |||
25 | private: | ||
26 | int leftKey = GLFW_KEY_LEFT; | ||
27 | int rightKey = GLFW_KEY_RIGHT; | ||
28 | int jumpKey = GLFW_KEY_UP; | ||
29 | int dropKey = GLFW_KEY_DOWN; | ||
30 | |||
31 | bool frozen = false; | ||
32 | bool holdingLeft = false; | ||
33 | bool holdingRight = false; | ||
34 | }; | ||
35 | |||
36 | #endif /* end of include guard: CONTROLLABLE_H_4E0B85B4 */ | ||
diff --git a/src/components/droppable.cpp b/src/components/droppable.cpp new file mode 100644 index 0000000..534fd9a --- /dev/null +++ b/src/components/droppable.cpp | |||
@@ -0,0 +1,11 @@ | |||
1 | #include "droppable.h" | ||
2 | |||
3 | void DroppableComponent::setDroppable(bool can) | ||
4 | { | ||
5 | droppable = can; | ||
6 | } | ||
7 | |||
8 | bool DroppableComponent::isDroppable() const | ||
9 | { | ||
10 | return droppable; | ||
11 | } | ||
diff --git a/src/components/droppable.h b/src/components/droppable.h new file mode 100644 index 0000000..1f5608b --- /dev/null +++ b/src/components/droppable.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef DROPPABLE_H_5DB254EF | ||
2 | #define DROPPABLE_H_5DB254EF | ||
3 | |||
4 | #include "component.h" | ||
5 | |||
6 | class DroppableComponent : public Component { | ||
7 | public: | ||
8 | void setDroppable(bool can); | ||
9 | bool isDroppable() const; | ||
10 | |||
11 | private: | ||
12 | bool droppable = false; | ||
13 | }; | ||
14 | |||
15 | #endif /* end of include guard: DROPPABLE_H_5DB254EF */ | ||
diff --git a/src/components/ponderable.cpp b/src/components/ponderable.cpp new file mode 100644 index 0000000..2cfa6a6 --- /dev/null +++ b/src/components/ponderable.cpp | |||
@@ -0,0 +1,41 @@ | |||
1 | #include "ponderable.h" | ||
2 | |||
3 | double PonderableComponent::getVelocityX() const | ||
4 | { | ||
5 | return velocityX; | ||
6 | } | ||
7 | |||
8 | void PonderableComponent::setVelocityX(double v) | ||
9 | { | ||
10 | velocityX = v; | ||
11 | } | ||
12 | |||
13 | double PonderableComponent::getVelocityY() const | ||
14 | { | ||
15 | return velocityY; | ||
16 | } | ||
17 | |||
18 | void PonderableComponent::setVelocityY(double v) | ||
19 | { | ||
20 | velocityY = v; | ||
21 | } | ||
22 | |||
23 | double PonderableComponent::getAccelX() const | ||
24 | { | ||
25 | return accelX; | ||
26 | } | ||
27 | |||
28 | void PonderableComponent::setAccelX(double v) | ||
29 | { | ||
30 | accelX = v; | ||
31 | } | ||
32 | |||
33 | double PonderableComponent::getAccelY() const | ||
34 | { | ||
35 | return accelY; | ||
36 | } | ||
37 | |||
38 | void PonderableComponent::setAccelY(double v) | ||
39 | { | ||
40 | accelY = v; | ||
41 | } | ||
diff --git a/src/components/ponderable.h b/src/components/ponderable.h new file mode 100644 index 0000000..5aab4b3 --- /dev/null +++ b/src/components/ponderable.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef TANGIBLE_H_746DB3EE | ||
2 | #define TANGIBLE_H_746DB3EE | ||
3 | |||
4 | #include "component.h" | ||
5 | |||
6 | class PonderableComponent : public Component { | ||
7 | public: | ||
8 | double getVelocityX() const; | ||
9 | void setVelocityX(double v); | ||
10 | double getVelocityY() const; | ||
11 | void setVelocityY(double v); | ||
12 | double getAccelX() const; | ||
13 | void setAccelX(double v); | ||
14 | double getAccelY() const; | ||
15 | void setAccelY(double v); | ||
16 | |||
17 | private: | ||
18 | double velocityX = 0.0; | ||
19 | double velocityY = 0.0; | ||
20 | double accelX = 0.0; | ||
21 | double accelY = 0.0; | ||
22 | }; | ||
23 | |||
24 | #endif /* end of include guard: TANGIBLE_H_746DB3EE */ | ||
diff --git a/src/components/sprite_renderable.cpp b/src/components/sprite_renderable.cpp deleted file mode 100644 index 4c61111..0000000 --- a/src/components/sprite_renderable.cpp +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | #include "sprite_renderable.h" | ||
2 | |||
3 | SpriteRenderableComponent::SpriteRenderableComponent(const char* filename, int frame_width, int frame_height, int frames_across) | ||
4 | : texture(filename), frame_width(frame_width), frame_height(frame_height), frames_across(frames_across) | ||
5 | { | ||
6 | |||
7 | } | ||
8 | |||
9 | int SpriteRenderableComponent::getFrame() const | ||
10 | { | ||
11 | return frame; | ||
12 | } | ||
13 | |||
14 | void SpriteRenderableComponent::setFrame(int frame) | ||
15 | { | ||
16 | this->frame = frame; | ||
17 | } | ||
18 | |||
19 | const Texture& SpriteRenderableComponent::getTexture() const | ||
20 | { | ||
21 | return texture; | ||
22 | } | ||
23 | |||
24 | Rectangle SpriteRenderableComponent::getFrameRect() const | ||
25 | { | ||
26 | return {frame_width * (frame % frames_across), frame_height * (frame / frames_across), frame_width, frame_height}; | ||
27 | } | ||