From 7d00cda9bbba770f9714bd0514d560faed950cab Mon Sep 17 00:00:00 2001 From: Frank DeMarco Date: Mon, 7 Sep 2020 00:14:43 -0400 Subject: [PATCH] added segment constructors for 2 boxes and 2 sprites --- src/Segment.cpp | 7 ++++++- src/Segment.hpp | 9 ++++----- src/Sprite.cpp | 4 +++- src/Sprite.hpp | 2 +- src/Timer.cpp | 3 +++ 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/Segment.cpp b/src/Segment.cpp index 1d60454..3b866ac 100644 --- a/src/Segment.cpp +++ b/src/Segment.cpp @@ -1,10 +1,15 @@ +#include "glm/geometric.hpp" +#include "extension.hpp" +#include "Box.hpp" #include "Segment.hpp" +Segment::Segment(const glm::vec2& start, const glm::vec2& end) : start(start), end(end) {}; + Segment::Segment() : Segment({0, 0}, {0, 0}) {}; Segment::Segment(const glm::vec2& location) : Segment(location, location) {}; -Segment::Segment(const glm::vec2& start, const glm::vec2& end) : start(start), end(end) {}; +Segment::Segment(const Box& start, const Box& end) : Segment(start.get_center(), end.get_center()) {}; glm::vec2 Segment::get_start() const { diff --git a/src/Segment.hpp b/src/Segment.hpp index e4401a0..5de674a 100644 --- a/src/Segment.hpp +++ b/src/Segment.hpp @@ -6,18 +6,20 @@ #include #include "glm/vec2.hpp" -#include "glm/geometric.hpp" struct Box; +struct Sprite; struct Segment { glm::vec2 start, end; + Segment(const glm::vec2&, const glm::vec2&); Segment(); Segment(const glm::vec2&); - Segment(const glm::vec2&, const glm::vec2&); + Segment(const Box&, const Box&); + Segment(const Sprite&, const Sprite&); glm::vec2 get_start() const; void set_start(const glm::vec2&); glm::vec2 get_end() const; @@ -58,7 +60,4 @@ struct Segment std::ostream& operator<<(std::ostream&, const Segment&); -#include "extension.hpp" -#include "Box.hpp" - #endif diff --git a/src/Sprite.cpp b/src/Sprite.cpp index 963f1bf..c8a8392 100644 --- a/src/Sprite.cpp +++ b/src/Sprite.cpp @@ -393,7 +393,7 @@ glm::vec2 Sprite::get_west(int index) return get_box(index).get_west(); } -glm::vec2 Sprite::get_center(int index) +glm::vec2 Sprite::get_center(int index) const { return get_box(index).get_center(); } @@ -1043,3 +1043,5 @@ void Frameset::reverse() Pixels::Pixels(Sprite& sprite) : Pixels(sprite.get_renderer(), sprite.get_current_frame()) {} Pixels::Pixels(Sprite& sprite, const SDL_Rect& rect) : Pixels(sprite.get_renderer(), sprite.get_current_frame(), rect) {} + +Segment::Segment(const Sprite& start, const Sprite& end) : Segment(start.get_center(), end.get_center()) {} diff --git a/src/Sprite.hpp b/src/Sprite.hpp index 1d083a7..6426782 100644 --- a/src/Sprite.hpp +++ b/src/Sprite.hpp @@ -99,7 +99,7 @@ struct Sprite : Node glm::vec2 get_south(int = 0); glm::vec2 get_sw(int = 0); glm::vec2 get_west(int = 0); - glm::vec2 get_center(int = 0); + glm::vec2 get_center(int = 0) const; void set_top(float); void set_right(float); void set_bottom(float); diff --git a/src/Timer.cpp b/src/Timer.cpp index a1f44fe..30e2a44 100644 --- a/src/Timer.cpp +++ b/src/Timer.cpp @@ -19,6 +19,9 @@ void Timer::toggle(bool state) void Timer::reset() { elapsed = 0; + ticks = SDL_GetTicks(); + ticks_previous = ticks; + frame_duration = 0; } float Timer::get_seconds_elapsed()