Dependencies: mbed
Game/Game.cpp@6:09a555c0d997, 2020-05-16 (annotated)
- Committer:
- KaifK
- Date:
- Sat May 16 17:23:17 2020 +0000
- Revision:
- 6:09a555c0d997
- Parent:
- 5:ed71996c0534
- Child:
- 7:2a3b566aedd3
stated game.readInput rebuild :((;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KaifK | 4:08a0ff6668df | 1 | #include "Game.h" |
KaifK | 4:08a0ff6668df | 2 | int grass[7][7] = { |
KaifK | 4:08a0ff6668df | 3 | {0,0,0,0,0,0,0}, |
KaifK | 4:08a0ff6668df | 4 | {0,0,0,0,0,0,0}, |
KaifK | 4:08a0ff6668df | 5 | {0,0,1,0,0,0,0}, |
KaifK | 4:08a0ff6668df | 6 | {0,0,1,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 7 | {0,1,0,1,0,1,0}, |
KaifK | 4:08a0ff6668df | 8 | {0,1,0,1,0,1,0}, |
KaifK | 4:08a0ff6668df | 9 | {1,0,1,0,0,0,1} |
KaifK | 4:08a0ff6668df | 10 | }; |
KaifK | 4:08a0ff6668df | 11 | int grass_small[3][3] = { |
KaifK | 4:08a0ff6668df | 12 | {1,0,1}, |
KaifK | 4:08a0ff6668df | 13 | {0,1,0}, |
KaifK | 4:08a0ff6668df | 14 | {1,1,1}, |
KaifK | 4:08a0ff6668df | 15 | }; |
KaifK | 4:08a0ff6668df | 16 | int goal[24][70] = { |
KaifK | 4:08a0ff6668df | 17 | {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, |
KaifK | 4:08a0ff6668df | 18 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
KaifK | 4:08a0ff6668df | 19 | {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, |
KaifK | 4:08a0ff6668df | 20 | {0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 21 | {0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 22 | {0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 23 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 24 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 25 | {0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 26 | {0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 27 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 28 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 29 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 30 | {0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 31 | {0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 32 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 33 | {0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 34 | {0,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 35 | {0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 36 | {0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 37 | {0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0}, |
KaifK | 4:08a0ff6668df | 38 | {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 39 | {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0}, |
KaifK | 4:08a0ff6668df | 40 | {0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0} |
KaifK | 4:08a0ff6668df | 41 | }; |
KaifK | 4:08a0ff6668df | 42 | Game::Game() {} |
KaifK | 4:08a0ff6668df | 43 | Game::~Game() {} |
KaifK | 4:08a0ff6668df | 44 | |
KaifK | 4:08a0ff6668df | 45 | void Game::init() { |
KaifK | 6:09a555c0d997 | 46 | _level = 1; |
KaifK | 4:08a0ff6668df | 47 | _is_goal = false; |
KaifK | 5:ed71996c0534 | 48 | _lives = 2; |
KaifK | 6:09a555c0d997 | 49 | _score = 22; |
KaifK | 4:08a0ff6668df | 50 | _speed = 1; |
KaifK | 6:09a555c0d997 | 51 | _x_val = WIDTH/2; |
KaifK | 6:09a555c0d997 | 52 | _y_val = 24; |
KaifK | 4:08a0ff6668df | 53 | } |
KaifK | 4:08a0ff6668df | 54 | void Game::displayLevel(int level, N5110 &lcd) { |
KaifK | 5:ed71996c0534 | 55 | _level = level; |
KaifK | 4:08a0ff6668df | 56 | display_background(lcd); |
KaifK | 4:08a0ff6668df | 57 | } |
KaifK | 6:09a555c0d997 | 58 | void Game::readInput(Gamepad &pad, N5110 &lcd) { |
KaifK | 6:09a555c0d997 | 59 | while(!pad.A_pressed()) { |
KaifK | 6:09a555c0d997 | 60 | lcd.drawLine(WIDTH / 2 - 5, 41, _x_val, HEIGHT / 2 + 7, 1); |
KaifK | 6:09a555c0d997 | 61 | lcd.drawLine(WIDTH / 2 + 5, 41, _x_val, HEIGHT / 2 + 7, 1); |
KaifK | 6:09a555c0d997 | 62 | _x_val += _speed; |
KaifK | 6:09a555c0d997 | 63 | switch(_x_val){ |
KaifK | 6:09a555c0d997 | 64 | if(_x_val >= 84) {_speed = abs(_speed); } |
KaifK | 6:09a555c0d997 | 65 | //pointer moves out of screen (right) therefore, switch direction |
KaifK | 6:09a555c0d997 | 66 | if(_x_val <= 0) {_speed = (-1 * _speed); } |
KaifK | 6:09a555c0d997 | 67 | } |
KaifK | 6:09a555c0d997 | 68 | calculate_angle(); |
KaifK | 6:09a555c0d997 | 69 | } |
KaifK | 6:09a555c0d997 | 70 | } |
KaifK | 5:ed71996c0534 | 71 | void Game::updateLives(Gamepad &pad) { |
KaifK | 5:ed71996c0534 | 72 | switch(_lives){ |
KaifK | 5:ed71996c0534 | 73 | case 1: |
KaifK | 5:ed71996c0534 | 74 | pad.leds(0.0); |
KaifK | 5:ed71996c0534 | 75 | pad.led(1,1.0); //red leds only |
KaifK | 5:ed71996c0534 | 76 | pad.led(4,1.0); |
KaifK | 5:ed71996c0534 | 77 | break; |
KaifK | 5:ed71996c0534 | 78 | case 2: |
KaifK | 5:ed71996c0534 | 79 | pad.leds_off(); |
KaifK | 5:ed71996c0534 | 80 | pad.led(1,1.0); //red and yellow leds |
KaifK | 5:ed71996c0534 | 81 | pad.led(2,1.0); |
KaifK | 5:ed71996c0534 | 82 | pad.led(4,1.0); |
KaifK | 5:ed71996c0534 | 83 | pad.led(5,1.0); |
KaifK | 5:ed71996c0534 | 84 | break; |
KaifK | 5:ed71996c0534 | 85 | case 3: |
KaifK | 5:ed71996c0534 | 86 | pad.leds(1.0); |
KaifK | 5:ed71996c0534 | 87 | break; |
KaifK | 5:ed71996c0534 | 88 | default: |
KaifK | 6:09a555c0d997 | 89 | error("Invalid Number of Lives); |
KaifK | 5:ed71996c0534 | 90 | break; |
KaifK | 5:ed71996c0534 | 91 | } |
KaifK | 5:ed71996c0534 | 92 | } |
KaifK | 5:ed71996c0534 | 93 | void Game::updateScore(N5110 &lcd) { |
KaifK | 5:ed71996c0534 | 94 | char buffer[12]; |
KaifK | 5:ed71996c0534 | 95 | sprintf(buffer,"%d",_score); |
KaifK | 5:ed71996c0534 | 96 | lcd.printString(buffer,2,5); |
KaifK | 5:ed71996c0534 | 97 | } |
KaifK | 4:08a0ff6668df | 98 | void display_background(N5110 &lcd){ |
KaifK | 4:08a0ff6668df | 99 | //draw goal |
KaifK | 4:08a0ff6668df | 100 | lcd.drawSprite(7,0,24,70,(int *)goal); |
KaifK | 4:08a0ff6668df | 101 | //draw grass |
KaifK | 4:08a0ff6668df | 102 | lcd.drawSprite(1,17,7,7,(int *)grass); |
KaifK | 4:08a0ff6668df | 103 | lcd.drawSprite(76,17,7,7,(int *)grass); |
KaifK | 4:08a0ff6668df | 104 | lcd.drawSprite(67,26,3,3,(int *)grass_small); |
KaifK | 4:08a0ff6668df | 105 | lcd.drawSprite(67,26,3,3,(int *)grass_small); |
KaifK | 6:09a555c0d997 | 106 | lcd.drawSprite(6,30,3,3,(int *)grass_small); |
KaifK | 4:08a0ff6668df | 107 | lcd.drawSprite(72,32,3,3,(int *)grass_small); |
KaifK | 4:08a0ff6668df | 108 | lcd.drawSprite(69,43,3,3,(int *)grass_small); |
KaifK | 5:ed71996c0534 | 109 | lcd.drawSprite(16,29,3,3,(int *)grass_small); |
KaifK | 4:08a0ff6668df | 110 | //ground line |
KaifK | 4:08a0ff6668df | 111 | lcd.drawLine(0,24,84,24,1); |
KaifK | 5:ed71996c0534 | 112 | //score card |
KaifK | 5:ed71996c0534 | 113 | lcd.drawRect(0,38,15,11,FILL_TRANSPARENT); |
KaifK | 6:09a555c0d997 | 114 | //power meter |
KaifK | 6:09a555c0d997 | 115 | lcd.drawRect(77,27,6,20,FILL_TRANSPARENT); |
KaifK | 6:09a555c0d997 | 116 | // aim triangle base |
KaifK | 6:09a555c0d997 | 117 | lcd.drawLine(WIDTH / 2 + 5, 41, WIDTH / 2 - 5, 41, 1); |
KaifK | 4:08a0ff6668df | 118 | } |