Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Levelengine.cpp@18:ff0a53dcb862, 2019-04-01 (annotated)
- Committer:
- el17arm
- Date:
- Mon Apr 01 21:51:08 2019 +0000
- Revision:
- 18:ff0a53dcb862
- Parent:
- 17:b4079bd0e551
- Child:
- 19:4789cb4ca550
Traps added that remove a life from player and return back to start of level
Who changed what in which revision?
| User | Revision | Line number | New 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 | 17:b4079bd0e551 | 37 | if(lcd.getPixel(x-1,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 | 17:b4079bd0e551 | 49 | if(lcd.getPixel(x-1,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 | 17:b4079bd0e551 | 61 | if(lcd.getPixel(x-1,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 | 17:b4079bd0e551 | 73 | if(lcd.getPixel(x-1,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 | 17:b4079bd0e551 | 85 | if(lcd.getPixel(x-1,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 | } |