ELEC2645 (2018/19) / Mbed 2 deprecated el17dg

Dependencies:   mbed

Fork of el17dg by Dmitrijs Griskovs

Committer:
Noximilien
Date:
Mon Apr 08 14:41:57 2019 +0000
Revision:
27:f05f4e738ba9
Parent:
21:0eb394495b8a
Child:
28:35af3843de8f
I have created "press START" for the intro pause. Added more comments for the report. Fixed the bug I had in my small star function. Changed some drawsprite functions to new one I made. Slightly simplified the code.

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 27:f05f4e738ba9 27 CircleBounds() {};
Noximilien 27:f05f4e738ba9 28 CircleBounds(Point _center, float _radius): center(_center), radius(_radius) {};
Noximilien 21:0eb394495b8a 29 Point center;
Noximilien 21:0eb394495b8a 30 float radius;
Noximilien 21:0eb394495b8a 31 };
Noximilien 21:0eb394495b8a 32
Noximilien 21:0eb394495b8a 33 inline bool circleCollideTwoObjects(
Noximilien 21:0eb394495b8a 34 const Point& pos_a, const CircleBounds& bounds_a,
Noximilien 21:0eb394495b8a 35 const Point& pos_b, const CircleBounds& bounds_b
Noximilien 21:0eb394495b8a 36 ) {
Noximilien 21:0eb394495b8a 37 Point center_a = pos_a + bounds_a.center;
Noximilien 21:0eb394495b8a 38 Point center_b = pos_b + bounds_b.center;
Noximilien 21:0eb394495b8a 39 Point difference = center_a - center_b;
Noximilien 21:0eb394495b8a 40 return difference.lengthSquared() <= pow(bounds_a.radius + bounds_b.radius, 2);
Noximilien 21:0eb394495b8a 41 }
Noximilien 21:0eb394495b8a 42
Noximilien 21:0eb394495b8a 43
Noximilien 21:0eb394495b8a 44
Noximilien 21:0eb394495b8a 45 #endif