ELEC2645 (2018/19) / Mbed 2 deprecated el17arm

Dependencies:   mbed

Committer:
el17arm
Date:
Mon Apr 01 23:55:24 2019 +0000
Revision:
19:4789cb4ca550
Parent:
18:ff0a53dcb862
Child:
20:78bd235f8caa
Timer added, there is now a 60 second time limit to complete level.; ; Game over screen added, will appear if lives are zero or timer runs out

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17arm 2:725c213b2396 1 #include "Levelengine.h"
el17arm 2:725c213b2396 2
el17arm 2:725c213b2396 3 Levelengine::Levelengine()
el17arm 16:8384e9a480ef 4 {
el17arm 17:b4079bd0e551 5 key_collect1 = false;
el17arm 17:b4079bd0e551 6 key_collect2 = false;
el17arm 17:b4079bd0e551 7 key_collect3 = false;
el17arm 17:b4079bd0e551 8 key_collect4 = false;
el17arm 17:b4079bd0e551 9 key_collect5 = false;
el17arm 2:725c213b2396 10 }
el17arm 2:725c213b2396 11
el17arm 2:725c213b2396 12 Levelengine::~Levelengine()
el17arm 2:725c213b2396 13 {
el17arm 2:725c213b2396 14 }
el17arm 2:725c213b2396 15
el17arm 16:8384e9a480ef 16 void Levelengine::soft_blocks(int x, int y, N5110 &lcd)
el17arm 16:8384e9a480ef 17 {
el17arm 16:8384e9a480ef 18 if((lcd.getPixel(x,y))||(lcd.getPixel(x+1,y))||(lcd.getPixel(x+2,y))
el17arm 16:8384e9a480ef 19 ||(lcd.getPixel(x+3,y))||(lcd.getPixel(x+4,y))||(lcd.getPixel(x+5,8)) == 1) {
el17arm 16:8384e9a480ef 20 lcd.drawRect(x,y+1,6,1,FILL_WHITE);
el17arm 16:8384e9a480ef 21 } else {
el17arm 16:8384e9a480ef 22 lcd.drawRect(x,y+1,6,1,FILL_BLACK);
el17arm 16:8384e9a480ef 23 }
el17arm 10:65a6866d418b 24 }
el17arm 8:9bc80e40ac0d 25
el17arm 16:8384e9a480ef 26 void Levelengine::draw_solid_block(int x, int y, N5110 &lcd)
el17arm 16:8384e9a480ef 27 {
el17arm 16:8384e9a480ef 28 lcd.drawSprite(x,y,3,3,(int *)solid_block);
el17arm 16:8384e9a480ef 29 lcd.drawSprite(x,y,3,3,(int *)solid_block);
el17arm 16:8384e9a480ef 30 }
el17arm 16:8384e9a480ef 31
el17arm 17:b4079bd0e551 32 void Levelengine::draw_key1(int x, int y, N5110 &lcd)
el17arm 16:8384e9a480ef 33 {
el17arm 17:b4079bd0e551 34 if(key_collect1 == false) {
el17arm 16:8384e9a480ef 35 lcd.drawSprite(x,y,3,4,(int *)key);
el17arm 16:8384e9a480ef 36 }
el17arm 19:4789cb4ca550 37 if((lcd.getPixel(x-1,y+2) || lcd.getPixel(x+2,y+2)) && key_collect1 == false) {
el17arm 17:b4079bd0e551 38 key_collect1 = true;
el17arm 17:b4079bd0e551 39 _keys++;
el17arm 17:b4079bd0e551 40 lcd.drawSprite(x,y,3,4,(int *)key_collected);
el17arm 17:b4079bd0e551 41 }
el17arm 17:b4079bd0e551 42 }
el17arm 16:8384e9a480ef 43
el17arm 17:b4079bd0e551 44 void Levelengine::draw_key2(int x, int y, N5110 &lcd)
el17arm 17:b4079bd0e551 45 {
el17arm 17:b4079bd0e551 46 if(key_collect2 == false) {
el17arm 17:b4079bd0e551 47 lcd.drawSprite(x,y,3,4,(int *)key);
el17arm 17:b4079bd0e551 48 }
el17arm 19:4789cb4ca550 49 if((lcd.getPixel(x-1,y+2) || lcd.getPixel(x+2,y+2)) && key_collect2 == false) {
el17arm 17:b4079bd0e551 50 key_collect2 = true;
el17arm 17:b4079bd0e551 51 _keys++;
el17arm 17:b4079bd0e551 52 lcd.drawSprite(x,y,3,4,(int *)key_collected);
el17arm 16:8384e9a480ef 53 }
el17arm 16:8384e9a480ef 54 }
el17arm 16:8384e9a480ef 55
el17arm 17:b4079bd0e551 56 void Levelengine::draw_key3(int x, int y, N5110 &lcd)
el17arm 17:b4079bd0e551 57 {
el17arm 17:b4079bd0e551 58 if(key_collect3 == false) {
el17arm 17:b4079bd0e551 59 lcd.drawSprite(x,y,3,4,(int *)key);
el17arm 17:b4079bd0e551 60 }
el17arm 19:4789cb4ca550 61 if((lcd.getPixel(x-1,y+2) || lcd.getPixel(x+2,y+2)) && key_collect3 == false) {
el17arm 17:b4079bd0e551 62 key_collect3 = true;
el17arm 17:b4079bd0e551 63 _keys++;
el17arm 17:b4079bd0e551 64 lcd.drawSprite(x,y,3,4,(int *)key_collected);
el17arm 17:b4079bd0e551 65 }
el17arm 17:b4079bd0e551 66 }
el17arm 16:8384e9a480ef 67
el17arm 17:b4079bd0e551 68 void Levelengine::draw_key4(int x, int y, N5110 &lcd)
el17arm 17:b4079bd0e551 69 {
el17arm 17:b4079bd0e551 70 if(key_collect4 == false) {
el17arm 17:b4079bd0e551 71 lcd.drawSprite(x,y,3,4,(int *)key);
el17arm 17:b4079bd0e551 72 }
el17arm 19:4789cb4ca550 73 if((lcd.getPixel(x-1,y+2) || lcd.getPixel(x+2,y+2)) && key_collect4 == false) {
el17arm 17:b4079bd0e551 74 key_collect4 = true;
el17arm 17:b4079bd0e551 75 _keys++;
el17arm 17:b4079bd0e551 76 lcd.drawSprite(x,y,3,4,(int *)key_collected);
el17arm 17:b4079bd0e551 77 }
el17arm 17:b4079bd0e551 78 }
el17arm 17:b4079bd0e551 79
el17arm 17:b4079bd0e551 80 void Levelengine::draw_key5(int x, int y, N5110 &lcd)
el17arm 17:b4079bd0e551 81 {
el17arm 17:b4079bd0e551 82 if(key_collect5 == false) {
el17arm 17:b4079bd0e551 83 lcd.drawSprite(x,y,3,4,(int *)key);
el17arm 17:b4079bd0e551 84 }
el17arm 19:4789cb4ca550 85 if((lcd.getPixel(x-1,y+2) || lcd.getPixel(x+2,y+2)) && key_collect5 == false) {
el17arm 17:b4079bd0e551 86 key_collect5 = true;
el17arm 17:b4079bd0e551 87 _keys++;
el17arm 17:b4079bd0e551 88 lcd.drawSprite(x,y,3,4,(int *)key_collected);
el17arm 17:b4079bd0e551 89 }
el17arm 17:b4079bd0e551 90 }
el17arm 17:b4079bd0e551 91
el17arm 17:b4079bd0e551 92 int Levelengine::keys_collected()
el17arm 17:b4079bd0e551 93 {
el17arm 17:b4079bd0e551 94 int k = _keys;
el17arm 17:b4079bd0e551 95 return k;
el17arm 17:b4079bd0e551 96 }
el17arm 18:ff0a53dcb862 97
el17arm 18:ff0a53dcb862 98 int Levelengine::spike1(int x, int y, N5110 &lcd)
el17arm 18:ff0a53dcb862 99 {
el17arm 18:ff0a53dcb862 100 lcd.drawSprite(x,y,3,3,(int *)spike);
el17arm 18:ff0a53dcb862 101
el17arm 18:ff0a53dcb862 102 if (lcd.getPixel(x,y-1) || lcd.getPixel(x+2,y-1) == 1) {
el17arm 18:ff0a53dcb862 103 return 1;
el17arm 18:ff0a53dcb862 104 } else {
el17arm 18:ff0a53dcb862 105 return 0;
el17arm 18:ff0a53dcb862 106 }
el17arm 18:ff0a53dcb862 107 }
el17arm 18:ff0a53dcb862 108
el17arm 18:ff0a53dcb862 109 int Levelengine::spike2(int x, int y, N5110 &lcd)
el17arm 18:ff0a53dcb862 110 {
el17arm 18:ff0a53dcb862 111 lcd.drawSprite(x,y,3,3,(int *)spike);
el17arm 18:ff0a53dcb862 112
el17arm 18:ff0a53dcb862 113 if (lcd.getPixel(x,y-1) || lcd.getPixel(x+2,y-1) == 1) {
el17arm 18:ff0a53dcb862 114 return 1;
el17arm 18:ff0a53dcb862 115 } else {
el17arm 18:ff0a53dcb862 116 return 0;
el17arm 18:ff0a53dcb862 117 }
el17arm 18:ff0a53dcb862 118 }
el17arm 18:ff0a53dcb862 119
el17arm 18:ff0a53dcb862 120 int Levelengine::spike3(int x, int y, N5110 &lcd)
el17arm 18:ff0a53dcb862 121 {
el17arm 18:ff0a53dcb862 122 lcd.drawSprite(x,y,3,3,(int *)spike);
el17arm 18:ff0a53dcb862 123
el17arm 18:ff0a53dcb862 124 if (lcd.getPixel(x,y-1) || lcd.getPixel(x+2,y-1) == 1) {
el17arm 18:ff0a53dcb862 125 return 1;
el17arm 18:ff0a53dcb862 126 } else {
el17arm 18:ff0a53dcb862 127 return 0;
el17arm 18:ff0a53dcb862 128 }
el17arm 18:ff0a53dcb862 129 }
el17arm 18:ff0a53dcb862 130
el17arm 18:ff0a53dcb862 131 int Levelengine::spike4(int x, int y, N5110 &lcd)
el17arm 18:ff0a53dcb862 132 {
el17arm 18:ff0a53dcb862 133 lcd.drawSprite(x,y,3,3,(int *)spike);
el17arm 18:ff0a53dcb862 134
el17arm 18:ff0a53dcb862 135 if (lcd.getPixel(x,y-1) || lcd.getPixel(x+2,y-1) == 1) {
el17arm 18:ff0a53dcb862 136 return 1;
el17arm 18:ff0a53dcb862 137 } else {
el17arm 18:ff0a53dcb862 138 return 0;
el17arm 18:ff0a53dcb862 139 }
el17arm 18:ff0a53dcb862 140 }