Kostadin Chakarov / Mbed 2 deprecated el17kec

Dependencies:   mbed

Committer:
kocemax
Date:
Sat Mar 23 12:07:33 2019 +0000
Revision:
4:0e01cbb95434
Parent:
3:fe856d0890ee
Child:
5:12c179da4788
Added a reset feature, if button A is pressed after the game is over. Need to find a way to draw the targets for the game.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kocemax 0:2f0362fef062 1 /*
kocemax 0:2f0362fef062 2 ELEC2645 Embedded Systems Project
kocemax 0:2f0362fef062 3 School of Electronic & Electrical Engineering University of Leeds
kocemax 0:2f0362fef062 4 Name: Kostadin Chakarov
kocemax 0:2f0362fef062 5 Username: el17kec
kocemax 0:2f0362fef062 6 Student ID Number:201171978 Date:11/03/2019
kocemax 0:2f0362fef062 7 */
kocemax 2:006a2ddfabb6 8 // Breakout++ logo sprite
kocemax 1:b82c4c2de9a8 9 const int breakout[10][75] = {
kocemax 1:b82c4c2de9a8 10 { 1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 11 { 1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1 },
kocemax 1:b82c4c2de9a8 12 { 1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 13 { 1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 14 { 1,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0 },
kocemax 1:b82c4c2de9a8 15 { 1,1,0,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1 },
kocemax 1:b82c4c2de9a8 16 { 1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0 },
kocemax 1:b82c4c2de9a8 17 { 1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 18 { 1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,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,1,0,0,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 19 { 1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0 },
kocemax 1:b82c4c2de9a8 20 };
kocemax 0:2f0362fef062 21
kocemax 1:b82c4c2de9a8 22 ///////// pre-processor directives ////////
kocemax 0:2f0362fef062 23 #include "mbed.h"
kocemax 1:b82c4c2de9a8 24 #include "N5110.h"
kocemax 1:b82c4c2de9a8 25 #include "Gamepad.h"
kocemax 2:006a2ddfabb6 26 #include "PlayerControl.h"
kocemax 2:006a2ddfabb6 27 #include "Ball.h"
kocemax 1:b82c4c2de9a8 28
kocemax 4:0e01cbb95434 29 const int fps = 10; //sets the fps of the game doesn't change
kocemax 4:0e01cbb95434 30
kocemax 1:b82c4c2de9a8 31 /////////////// objects ///////////////
kocemax 1:b82c4c2de9a8 32 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); // K64F - pwr from 3V3
kocemax 1:b82c4c2de9a8 33 Gamepad pad; // Gamepad buttons
kocemax 1:b82c4c2de9a8 34 PlayerControl cont; // Object for player
kocemax 2:006a2ddfabb6 35 Ball ball;
kocemax 1:b82c4c2de9a8 36
kocemax 1:b82c4c2de9a8 37 ///////////// function prototypes ///////////////
kocemax 1:b82c4c2de9a8 38 void init();
kocemax 1:b82c4c2de9a8 39 void welcome();
kocemax 1:b82c4c2de9a8 40 void render();
kocemax 0:2f0362fef062 41
kocemax 1:b82c4c2de9a8 42 ///////////// functions ////////////////
kocemax 1:b82c4c2de9a8 43 int main()
kocemax 1:b82c4c2de9a8 44 {
kocemax 1:b82c4c2de9a8 45 init();
kocemax 1:b82c4c2de9a8 46 welcome(); // waiting for the user to start
kocemax 4:0e01cbb95434 47 render();
kocemax 1:b82c4c2de9a8 48 }
kocemax 1:b82c4c2de9a8 49
kocemax 1:b82c4c2de9a8 50 void init()
kocemax 1:b82c4c2de9a8 51 {
kocemax 1:b82c4c2de9a8 52 // need to initialise LCD and Gamepad
kocemax 1:b82c4c2de9a8 53 lcd.init();
kocemax 1:b82c4c2de9a8 54 pad.init();
kocemax 1:b82c4c2de9a8 55 lcd.setContrast(0.55); // setting contrast to 55% seems good
kocemax 1:b82c4c2de9a8 56 lcd.normalMode(); // normal colour mode
kocemax 1:b82c4c2de9a8 57 lcd.setBrightness(0.5); // put LED backlight on 50%
kocemax 1:b82c4c2de9a8 58 }
kocemax 1:b82c4c2de9a8 59
kocemax 1:b82c4c2de9a8 60 void welcome()
kocemax 0:2f0362fef062 61 {
kocemax 1:b82c4c2de9a8 62 lcd.printString("Welcome to",12,0);
kocemax 1:b82c4c2de9a8 63 // x origin, y origin, rows, cols, sprite
kocemax 1:b82c4c2de9a8 64 lcd.drawSprite(5,15,10,75,(int *)breakout);
kocemax 1:b82c4c2de9a8 65 lcd.printString("Press Start",9,4);
kocemax 1:b82c4c2de9a8 66 lcd.refresh();
kocemax 1:b82c4c2de9a8 67
kocemax 1:b82c4c2de9a8 68 // flash the LEDs until start button is pressed
kocemax 1:b82c4c2de9a8 69 while (pad.check_event(Gamepad::START_PRESSED) == false)
kocemax 1:b82c4c2de9a8 70 {
kocemax 1:b82c4c2de9a8 71 for (int i = 1; i < 7; i++)
kocemax 1:b82c4c2de9a8 72 {
kocemax 1:b82c4c2de9a8 73 pad.led(i,1);
kocemax 1:b82c4c2de9a8 74 wait(0.1);
kocemax 1:b82c4c2de9a8 75 pad.led(i,0);
kocemax 1:b82c4c2de9a8 76 }
kocemax 1:b82c4c2de9a8 77 }
kocemax 1:b82c4c2de9a8 78 }
kocemax 0:2f0362fef062 79
kocemax 1:b82c4c2de9a8 80 void render() {
kocemax 4:0e01cbb95434 81 while(1)
kocemax 4:0e01cbb95434 82 {
kocemax 4:0e01cbb95434 83 lcd.clear(); // initialise the LCD
kocemax 4:0e01cbb95434 84 cont.drawPlayer(lcd);
kocemax 4:0e01cbb95434 85 cont.controlPlayer(pad);
kocemax 4:0e01cbb95434 86 cont.get_padPos(pad);
kocemax 4:0e01cbb95434 87 ball.drawBall(lcd);
kocemax 4:0e01cbb95434 88 ball.get_ballPos(pad);
kocemax 4:0e01cbb95434 89 ball.moveBall();
kocemax 4:0e01cbb95434 90 ball.hitPad(pad);
kocemax 4:0e01cbb95434 91 lcd.refresh();
kocemax 4:0e01cbb95434 92 ball.endCondition(pad, lcd);
kocemax 4:0e01cbb95434 93 wait(1.0f/fps);
kocemax 4:0e01cbb95434 94 }
kocemax 0:2f0362fef062 95 }