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@17:b4079bd0e551, 2019-04-01 (annotated)
- Committer:
- el17arm
- Date:
- Mon Apr 01 14:59:18 2019 +0000
- Revision:
- 17:b4079bd0e551
- Parent:
- 16:8384e9a480ef
- Child:
- 18:ff0a53dcb862
Keys can now be collected and counted
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 | 15:2bda80896a84 | 16 | void Levelengine::level_one(N5110 &lcd) |
| el17arm | 16:8384e9a480ef | 17 | { |
| el17arm | 3:d27ee2440829 | 18 | //platforms |
| el17arm | 16:8384e9a480ef | 19 | |
| el17arm | 11:61f28e3448d3 | 20 | lcd.drawRect(0,HEIGHT -1,84,1,FILL_BLACK); |
| el17arm | 14:dc3524d11921 | 21 | lcd.drawRect(11,HEIGHT - 9, 38, 2, FILL_TRANSPARENT); |
| el17arm | 16:8384e9a480ef | 22 | lcd.drawRect(65,HEIGHT - 11, 30, 2, FILL_TRANSPARENT); |
| el17arm | 11:61f28e3448d3 | 23 | lcd.drawRect(WIDTH - 9,HEIGHT - 19, 8, 2, FILL_BLACK); |
| el17arm | 11:61f28e3448d3 | 24 | lcd.drawRect(22, 25, 48, 2, FILL_BLACK); |
| el17arm | 11:61f28e3448d3 | 25 | lcd.drawRect(0, 25, 12, 2, FILL_BLACK); |
| el17arm | 11:61f28e3448d3 | 26 | lcd.drawRect(0, 17, 8, 2, FILL_BLACK); |
| el17arm | 16:8384e9a480ef | 27 | lcd.drawRect(0, 9, 27, 2, FILL_BLACK); |
| el17arm | 16:8384e9a480ef | 28 | lcd.drawRect(39, 9, 7, 2, FILL_BLACK); |
| el17arm | 16:8384e9a480ef | 29 | lcd.drawRect(58,9,32,2,FILL_BLACK); |
| el17arm | 16:8384e9a480ef | 30 | |
| el17arm | 16:8384e9a480ef | 31 | } |
| el17arm | 16:8384e9a480ef | 32 | |
| el17arm | 16:8384e9a480ef | 33 | void Levelengine::soft_blocks(int x, int y, N5110 &lcd) |
| el17arm | 16:8384e9a480ef | 34 | { |
| el17arm | 16:8384e9a480ef | 35 | if((lcd.getPixel(x,y))||(lcd.getPixel(x+1,y))||(lcd.getPixel(x+2,y)) |
| el17arm | 16:8384e9a480ef | 36 | ||(lcd.getPixel(x+3,y))||(lcd.getPixel(x+4,y))||(lcd.getPixel(x+5,8)) == 1) { |
| el17arm | 16:8384e9a480ef | 37 | lcd.drawRect(x,y+1,6,1,FILL_WHITE); |
| el17arm | 16:8384e9a480ef | 38 | printf("pixel = %i \n", lcd.getPixel(x,y)); |
| el17arm | 16:8384e9a480ef | 39 | } else { |
| el17arm | 16:8384e9a480ef | 40 | lcd.drawRect(x,y+1,6,1,FILL_BLACK); |
| el17arm | 16:8384e9a480ef | 41 | } |
| el17arm | 10:65a6866d418b | 42 | } |
| el17arm | 8:9bc80e40ac0d | 43 | |
| el17arm | 16:8384e9a480ef | 44 | void Levelengine::draw_solid_block(int x, int y, N5110 &lcd) |
| el17arm | 16:8384e9a480ef | 45 | { |
| el17arm | 16:8384e9a480ef | 46 | lcd.drawSprite(x,y,3,3,(int *)solid_block); |
| el17arm | 16:8384e9a480ef | 47 | lcd.drawSprite(x,y,3,3,(int *)solid_block); |
| el17arm | 16:8384e9a480ef | 48 | } |
| el17arm | 16:8384e9a480ef | 49 | |
| el17arm | 17:b4079bd0e551 | 50 | void Levelengine::draw_key1(int x, int y, N5110 &lcd) |
| el17arm | 16:8384e9a480ef | 51 | { |
| el17arm | 17:b4079bd0e551 | 52 | if(key_collect1 == false) { |
| el17arm | 16:8384e9a480ef | 53 | lcd.drawSprite(x,y,3,4,(int *)key); |
| el17arm | 16:8384e9a480ef | 54 | } |
| el17arm | 17:b4079bd0e551 | 55 | if(lcd.getPixel(x-1,y+2)&& key_collect1 == false) { |
| el17arm | 17:b4079bd0e551 | 56 | key_collect1 = true; |
| el17arm | 17:b4079bd0e551 | 57 | _keys++; |
| el17arm | 17:b4079bd0e551 | 58 | lcd.drawSprite(x,y,3,4,(int *)key_collected); |
| el17arm | 17:b4079bd0e551 | 59 | } |
| el17arm | 17:b4079bd0e551 | 60 | } |
| el17arm | 16:8384e9a480ef | 61 | |
| el17arm | 17:b4079bd0e551 | 62 | void Levelengine::draw_key2(int x, int y, N5110 &lcd) |
| el17arm | 17:b4079bd0e551 | 63 | { |
| el17arm | 17:b4079bd0e551 | 64 | if(key_collect2 == false) { |
| el17arm | 17:b4079bd0e551 | 65 | lcd.drawSprite(x,y,3,4,(int *)key); |
| el17arm | 17:b4079bd0e551 | 66 | } |
| el17arm | 17:b4079bd0e551 | 67 | if(lcd.getPixel(x-1,y+2)&& key_collect2 == false) { |
| el17arm | 17:b4079bd0e551 | 68 | key_collect2 = true; |
| el17arm | 17:b4079bd0e551 | 69 | _keys++; |
| el17arm | 17:b4079bd0e551 | 70 | lcd.drawSprite(x,y,3,4,(int *)key_collected); |
| el17arm | 16:8384e9a480ef | 71 | } |
| el17arm | 16:8384e9a480ef | 72 | } |
| el17arm | 16:8384e9a480ef | 73 | |
| el17arm | 17:b4079bd0e551 | 74 | void Levelengine::draw_key3(int x, int y, N5110 &lcd) |
| el17arm | 17:b4079bd0e551 | 75 | { |
| el17arm | 17:b4079bd0e551 | 76 | if(key_collect3 == false) { |
| el17arm | 17:b4079bd0e551 | 77 | lcd.drawSprite(x,y,3,4,(int *)key); |
| el17arm | 17:b4079bd0e551 | 78 | } |
| el17arm | 17:b4079bd0e551 | 79 | if(lcd.getPixel(x-1,y+2)&& key_collect3 == false) { |
| el17arm | 17:b4079bd0e551 | 80 | key_collect3 = true; |
| el17arm | 17:b4079bd0e551 | 81 | _keys++; |
| el17arm | 17:b4079bd0e551 | 82 | lcd.drawSprite(x,y,3,4,(int *)key_collected); |
| el17arm | 17:b4079bd0e551 | 83 | } |
| el17arm | 17:b4079bd0e551 | 84 | } |
| el17arm | 16:8384e9a480ef | 85 | |
| el17arm | 17:b4079bd0e551 | 86 | void Levelengine::draw_key4(int x, int y, N5110 &lcd) |
| el17arm | 17:b4079bd0e551 | 87 | { |
| el17arm | 17:b4079bd0e551 | 88 | if(key_collect4 == false) { |
| el17arm | 17:b4079bd0e551 | 89 | lcd.drawSprite(x,y,3,4,(int *)key); |
| el17arm | 17:b4079bd0e551 | 90 | } |
| el17arm | 17:b4079bd0e551 | 91 | if(lcd.getPixel(x-1,y+2)&& key_collect4 == false) { |
| el17arm | 17:b4079bd0e551 | 92 | key_collect4 = true; |
| el17arm | 17:b4079bd0e551 | 93 | _keys++; |
| el17arm | 17:b4079bd0e551 | 94 | lcd.drawSprite(x,y,3,4,(int *)key_collected); |
| el17arm | 17:b4079bd0e551 | 95 | } |
| el17arm | 17:b4079bd0e551 | 96 | } |
| el17arm | 17:b4079bd0e551 | 97 | |
| el17arm | 17:b4079bd0e551 | 98 | void Levelengine::draw_key5(int x, int y, N5110 &lcd) |
| el17arm | 17:b4079bd0e551 | 99 | { |
| el17arm | 17:b4079bd0e551 | 100 | if(key_collect5 == false) { |
| el17arm | 17:b4079bd0e551 | 101 | lcd.drawSprite(x,y,3,4,(int *)key); |
| el17arm | 17:b4079bd0e551 | 102 | } |
| el17arm | 17:b4079bd0e551 | 103 | if(lcd.getPixel(x-1,y+2)&& key_collect5 == false) { |
| el17arm | 17:b4079bd0e551 | 104 | key_collect5 = true; |
| el17arm | 17:b4079bd0e551 | 105 | _keys++; |
| el17arm | 17:b4079bd0e551 | 106 | lcd.drawSprite(x,y,3,4,(int *)key_collected); |
| el17arm | 17:b4079bd0e551 | 107 | } |
| el17arm | 17:b4079bd0e551 | 108 | } |
| el17arm | 17:b4079bd0e551 | 109 | |
| el17arm | 17:b4079bd0e551 | 110 | int Levelengine::keys_collected() |
| el17arm | 17:b4079bd0e551 | 111 | { |
| el17arm | 17:b4079bd0e551 | 112 | int k = _keys; |
| el17arm | 17:b4079bd0e551 | 113 | return k; |
| el17arm | 17:b4079bd0e551 | 114 | } |