ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Wed Mar 27 00:00:32 2019 +0000
Revision:
21:0eb394495b8a
Child:
27:f05f4e738ba9
switched all enemies functions into the class system in a separate file. Created a struct for writing sprites more easily. Created a function that resets all values when the game is over. Separated collision, gameObject and constants into new files.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Noximilien 21:0eb394495b8a 1 #ifndef GEOMETRY_H
Noximilien 21:0eb394495b8a 2 #define GEOMETRY_H
Noximilien 21:0eb394495b8a 3
Noximilien 21:0eb394495b8a 4 #include <math.h>
Noximilien 21:0eb394495b8a 5
Noximilien 21:0eb394495b8a 6 struct Point {
Noximilien 21:0eb394495b8a 7 int x;
Noximilien 21:0eb394495b8a 8 int y;
Noximilien 21:0eb394495b8a 9 Point() : x(0), y(0) {}
Noximilien 21:0eb394495b8a 10 Point(int _x, int _y) : x(_x), y(_y) {}
Noximilien 21:0eb394495b8a 11
Noximilien 21:0eb394495b8a 12 Point operator+ (const Point& rhs) const {
Noximilien 21:0eb394495b8a 13 Point result(x + rhs.x, y + rhs.y);
Noximilien 21:0eb394495b8a 14 return result;
Noximilien 21:0eb394495b8a 15 }
Noximilien 21:0eb394495b8a 16 Point operator- (const Point& rhs) const {
Noximilien 21:0eb394495b8a 17 Point result(x - rhs.x, y - rhs.y);
Noximilien 21:0eb394495b8a 18 return result;
Noximilien 21:0eb394495b8a 19 }
Noximilien 21:0eb394495b8a 20 int lengthSquared() {
Noximilien 21:0eb394495b8a 21 return x * x + y * y;
Noximilien 21:0eb394495b8a 22 }
Noximilien 21:0eb394495b8a 23 };
Noximilien 21:0eb394495b8a 24
Noximilien 21:0eb394495b8a 25 class CircleBounds {
Noximilien 21:0eb394495b8a 26 public:
Noximilien 21:0eb394495b8a 27 Point center;
Noximilien 21:0eb394495b8a 28 float radius;
Noximilien 21:0eb394495b8a 29 };
Noximilien 21:0eb394495b8a 30
Noximilien 21:0eb394495b8a 31 inline bool circleCollideTwoObjects(
Noximilien 21:0eb394495b8a 32 const Point& pos_a, const CircleBounds& bounds_a,
Noximilien 21:0eb394495b8a 33 const Point& pos_b, const CircleBounds& bounds_b
Noximilien 21:0eb394495b8a 34 ) {
Noximilien 21:0eb394495b8a 35 Point center_a = pos_a + bounds_a.center;
Noximilien 21:0eb394495b8a 36 Point center_b = pos_b + bounds_b.center;
Noximilien 21:0eb394495b8a 37 Point difference = center_a - center_b;
Noximilien 21:0eb394495b8a 38 return difference.lengthSquared() <= pow(bounds_a.radius + bounds_b.radius, 2);
Noximilien 21:0eb394495b8a 39 }
Noximilien 21:0eb394495b8a 40
Noximilien 21:0eb394495b8a 41
Noximilien 21:0eb394495b8a 42
Noximilien 21:0eb394495b8a 43 #endif