added segment constructors for 2 boxes and 2 sprites

This commit is contained in:
Frank DeMarco 2020-09-07 00:14:43 -04:00
parent c6341d2bfc
commit 7d00cda9bb
5 changed files with 17 additions and 8 deletions

View File

@ -1,10 +1,15 @@
#include "glm/geometric.hpp"
#include "extension.hpp"
#include "Box.hpp"
#include "Segment.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() : Segment({0, 0}, {0, 0}) {};
Segment::Segment(const glm::vec2& location) : Segment(location, location) {}; 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 glm::vec2 Segment::get_start() const
{ {

View File

@ -6,18 +6,20 @@
#include <cmath> #include <cmath>
#include "glm/vec2.hpp" #include "glm/vec2.hpp"
#include "glm/geometric.hpp"
struct Box; struct Box;
struct Sprite;
struct Segment struct Segment
{ {
glm::vec2 start, end; glm::vec2 start, end;
Segment(const glm::vec2&, const glm::vec2&);
Segment(); Segment();
Segment(const glm::vec2&); 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; glm::vec2 get_start() const;
void set_start(const glm::vec2&); void set_start(const glm::vec2&);
glm::vec2 get_end() const; glm::vec2 get_end() const;
@ -58,7 +60,4 @@ struct Segment
std::ostream& operator<<(std::ostream&, const Segment&); std::ostream& operator<<(std::ostream&, const Segment&);
#include "extension.hpp"
#include "Box.hpp"
#endif #endif

View File

@ -393,7 +393,7 @@ glm::vec2 Sprite::get_west(int index)
return get_box(index).get_west(); 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(); 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) : 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) {} 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()) {}

View File

@ -99,7 +99,7 @@ struct Sprite : Node
glm::vec2 get_south(int = 0); glm::vec2 get_south(int = 0);
glm::vec2 get_sw(int = 0); glm::vec2 get_sw(int = 0);
glm::vec2 get_west(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_top(float);
void set_right(float); void set_right(float);
void set_bottom(float); void set_bottom(float);

View File

@ -19,6 +19,9 @@ void Timer::toggle(bool state)
void Timer::reset() void Timer::reset()
{ {
elapsed = 0; elapsed = 0;
ticks = SDL_GetTicks();
ticks_previous = ticks;
frame_duration = 0;
} }
float Timer::get_seconds_elapsed() float Timer::get_seconds_elapsed()