ELEC2645 (2018/19) / Mbed 2 deprecated el17lw

Dependencies:   mbed

Committer:
lewisgw
Date:
Tue May 07 17:21:00 2019 +0000
Revision:
29:bdc4138b5171
Parent:
26:4253656c0755
Final Submission. I have read and agreed with the Statement of Academic Integrity.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lewisgw 18:304700b5d8f8 1 #include "Fire.h"
lewisgw 16:331be5c7ed80 2
lewisgw 16:331be5c7ed80 3 // Define sprite arrays.
lewisgw 18:304700b5d8f8 4 int fire_one[5][8] = {
lewisgw 16:331be5c7ed80 5 { 1,0,1,0,0,1,0,0 },
lewisgw 16:331be5c7ed80 6 { 1,0,0,0,1,1,1,0 },
lewisgw 16:331be5c7ed80 7 { 0,0,0,1,1,1,1,1 },
lewisgw 16:331be5c7ed80 8 { 0,1,0,0,1,1,1,0 },
lewisgw 16:331be5c7ed80 9 { 1,0,0,1,0,1,0,0 },
lewisgw 16:331be5c7ed80 10 };
lewisgw 16:331be5c7ed80 11
lewisgw 18:304700b5d8f8 12 int fire_two[5][8] = {
lewisgw 16:331be5c7ed80 13 { 0,0,1,0,0,1,0,0 },
lewisgw 16:331be5c7ed80 14 { 0,1,0,0,1,1,1,0 },
lewisgw 16:331be5c7ed80 15 { 1,0,1,0,1,1,1,0 },
lewisgw 16:331be5c7ed80 16 { 1,0,0,0,1,1,1,0 },
lewisgw 16:331be5c7ed80 17 { 0,1,0,1,1,0,0,0 },
lewisgw 16:331be5c7ed80 18 };
lewisgw 16:331be5c7ed80 19
lewisgw 16:331be5c7ed80 20 // Constructor and destructor.
lewisgw 18:304700b5d8f8 21 Fire::Fire() {}
lewisgw 16:331be5c7ed80 22
lewisgw 18:304700b5d8f8 23 Fire::~Fire() {}
lewisgw 16:331be5c7ed80 24
lewisgw 18:304700b5d8f8 25 void Fire::init() {
lewisgw 29:bdc4138b5171 26 // Starting position of the fire (Y coord is calculated externally).
lewisgw 26:4253656c0755 27 _x = -10; // Start fire off screen.
lewisgw 18:304700b5d8f8 28 _fire_counter = false;
lewisgw 16:331be5c7ed80 29 }
lewisgw 16:331be5c7ed80 30
lewisgw 21:20478f086bc2 31 void Fire::generate_fire() {
lewisgw 29:bdc4138b5171 32 // Sets the X coord so it moves independently.
lewisgw 21:20478f086bc2 33 _x++; // Keep fire moving from L to R.
lewisgw 21:20478f086bc2 34 _fire_counter = !_fire_counter; // Toggle fire counter to generate different
lewisgw 21:20478f086bc2 35 // sprites each iteration.
lewisgw 21:20478f086bc2 36 if (_x == 90) _x = -10; // If the fire goes off the screen, restart it on the
lewisgw 21:20478f086bc2 37 // other side.
lewisgw 16:331be5c7ed80 38 }
lewisgw 16:331be5c7ed80 39
lewisgw 18:304700b5d8f8 40 int * Fire::get_fire_sprite() {
lewisgw 29:bdc4138b5171 41 // Return different fire sprites for dynamic effect.
lewisgw 18:304700b5d8f8 42 if (_fire_counter) {
lewisgw 18:304700b5d8f8 43 return *fire_one;
lewisgw 16:331be5c7ed80 44 } else {
lewisgw 18:304700b5d8f8 45 return *fire_two;
lewisgw 16:331be5c7ed80 46 }
lewisgw 16:331be5c7ed80 47 }
lewisgw 16:331be5c7ed80 48
lewisgw 18:304700b5d8f8 49 int Fire::get_fire_x() {
lewisgw 16:331be5c7ed80 50 return _x;
lewisgw 16:331be5c7ed80 51 }
lewisgw 16:331be5c7ed80 52
lewisgw 16:331be5c7ed80 53
lewisgw 16:331be5c7ed80 54
lewisgw 16:331be5c7ed80 55
lewisgw 21:20478f086bc2 56