Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }