Race around the city collecting the flags while avoiding those that stand in the way of your mission. Make no mistake you will need to be quick to outwit your opponents, they are smart and will try to box you in. I wrote this game to prove that writing a game with scrolling scenery is possible even with the limited 6kB of RAM available. I had to compromise sound effects for features, I wanted multiple opponents, I wanted to be able to drop smoke bombs to trap the opponents but all this required memory so the sound effects had to take a back seat.

Dependencies:   mbed

Committer:
taylorza
Date:
Wed Jan 28 03:26:07 2015 +0000
Revision:
0:d85c449aca6d
Working maze scrolling, pre-maze compression

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taylorza 0:d85c449aca6d 1 #ifndef __RECT_H__
taylorza 0:d85c449aca6d 2 #define __RECT_H__
taylorza 0:d85c449aca6d 3
taylorza 0:d85c449aca6d 4 #include <algorithm>
taylorza 0:d85c449aca6d 5
taylorza 0:d85c449aca6d 6 struct Rect
taylorza 0:d85c449aca6d 7 {
taylorza 0:d85c449aca6d 8 int16_t left;
taylorza 0:d85c449aca6d 9 int16_t top;
taylorza 0:d85c449aca6d 10 int16_t right;
taylorza 0:d85c449aca6d 11 int16_t bottom;
taylorza 0:d85c449aca6d 12
taylorza 0:d85c449aca6d 13 Rect() :
taylorza 0:d85c449aca6d 14 left(0),
taylorza 0:d85c449aca6d 15 top(0),
taylorza 0:d85c449aca6d 16 right(0),
taylorza 0:d85c449aca6d 17 bottom(0)
taylorza 0:d85c449aca6d 18 {
taylorza 0:d85c449aca6d 19 }
taylorza 0:d85c449aca6d 20
taylorza 0:d85c449aca6d 21 Rect(int16_t l, int16_t t, int16_t w, int16_t h) :
taylorza 0:d85c449aca6d 22 left(l),
taylorza 0:d85c449aca6d 23 top(t),
taylorza 0:d85c449aca6d 24 right(l + (w - 1)),
taylorza 0:d85c449aca6d 25 bottom(t + (h - 1))
taylorza 0:d85c449aca6d 26 {
taylorza 0:d85c449aca6d 27 }
taylorza 0:d85c449aca6d 28
taylorza 0:d85c449aca6d 29 Rect Intersection(Rect &rect)
taylorza 0:d85c449aca6d 30 {
taylorza 0:d85c449aca6d 31 uint8_t x1 = max(left, rect.left);
taylorza 0:d85c449aca6d 32 uint8_t y1 = max(top, rect.top);
taylorza 0:d85c449aca6d 33 uint8_t x2 = min(right, rect.right);
taylorza 0:d85c449aca6d 34 uint8_t y2 = min(bottom, rect.bottom);
taylorza 0:d85c449aca6d 35
taylorza 0:d85c449aca6d 36 return Rect(x1, y1, x2, y2);
taylorza 0:d85c449aca6d 37 }
taylorza 0:d85c449aca6d 38
taylorza 0:d85c449aca6d 39 inline int16_t getWidth() const { return right - left; }
taylorza 0:d85c449aca6d 40 inline int16_t getHeight() const { return bottom - top; }
taylorza 0:d85c449aca6d 41 };
taylorza 0:d85c449aca6d 42
taylorza 0:d85c449aca6d 43 #endif //__RECT_H__