ELEC2645 (2017/18) / Mbed 2 deprecated el16a2t

Dependencies:   mbed

Committer:
el16a2t
Date:
Mon Apr 30 23:29:45 2018 +0000
Revision:
2:a48df109588e
Parent:
1:a3c9025e0dad
Child:
3:124a5eb55c77
got score working. This included integrating sprintf function to print value held by "score" variable into a string and then printing on the lcd. also minor adjustments to sprite and score placements/positioning

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el16a2t 1:a3c9025e0dad 1 /*
el16a2t 1:a3c9025e0dad 2 ELEC2645 Embedded Systems Project
el16a2t 1:a3c9025e0dad 3 School of Electronic & Electrical Engineering
el16a2t 1:a3c9025e0dad 4 University of Leeds
el16a2t 1:a3c9025e0dad 5 Name: Adam Thompson
el16a2t 1:a3c9025e0dad 6 Username: el16a2t
el16a2t 1:a3c9025e0dad 7 Student ID Number: 201047832
el16a2t 1:a3c9025e0dad 8 Date: 17/4/18
el16a2t 1:a3c9025e0dad 9 */
el16a2t 1:a3c9025e0dad 10 #include "mbed.h"
el16a2t 1:a3c9025e0dad 11 #include "Gamepad.h"
el16a2t 1:a3c9025e0dad 12 #include "N5110.h"
el16a2t 1:a3c9025e0dad 13 #include "sprites.h"
el16a2t 1:a3c9025e0dad 14 #include "main.h"
el16a2t 1:a3c9025e0dad 15
el16a2t 1:a3c9025e0dad 16
el16a2t 1:a3c9025e0dad 17 N5110 lcd(PTC9, PTC0, PTC7, PTD2, PTD1, PTC11);
el16a2t 1:a3c9025e0dad 18 Gamepad pad;
el16a2t 1:a3c9025e0dad 19
el16a2t 2:a48df109588e 20 void init();
el16a2t 2:a48df109588e 21 void startUp();
el16a2t 2:a48df109588e 22 void newGame();
el16a2t 2:a48df109588e 23 void gameOver();
el16a2t 1:a3c9025e0dad 24
el16a2t 1:a3c9025e0dad 25
el16a2t 1:a3c9025e0dad 26 int main()
el16a2t 2:a48df109588e 27 {
el16a2t 1:a3c9025e0dad 28
el16a2t 2:a48df109588e 29 init();
el16a2t 2:a48df109588e 30 startUp();
el16a2t 2:a48df109588e 31 newGame();
el16a2t 2:a48df109588e 32 gameOver();
el16a2t 2:a48df109588e 33 }
el16a2t 1:a3c9025e0dad 34
el16a2t 2:a48df109588e 35 void init()
el16a2t 1:a3c9025e0dad 36 {
el16a2t 1:a3c9025e0dad 37
el16a2t 1:a3c9025e0dad 38 // initialise the lcd and gamepad
el16a2t 1:a3c9025e0dad 39 lcd.init();
el16a2t 1:a3c9025e0dad 40 lcd.setContrast(0.5);
el16a2t 1:a3c9025e0dad 41 pad.init ();
el16a2t 2:a48df109588e 42 }
el16a2t 1:a3c9025e0dad 43
el16a2t 2:a48df109588e 44
el16a2t 2:a48df109588e 45 void startUp()
el16a2t 2:a48df109588e 46 {
el16a2t 2:a48df109588e 47 //print start screen
el16a2t 2:a48df109588e 48 lcd.drawSprite (1,1,8,20,(int*) titlescreen);
el16a2t 2:a48df109588e 49 lcd.printString ("PRESS START", 3,1);
el16a2t 2:a48df109588e 50 lcd.refresh();
el16a2t 2:a48df109588e 51 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
el16a2t 2:a48df109588e 52
el16a2t 2:a48df109588e 53 }
el16a2t 2:a48df109588e 54 }
el16a2t 2:a48df109588e 55
el16a2t 2:a48df109588e 56 void newGame()
el16a2t 2:a48df109588e 57 {
el16a2t 2:a48df109588e 58
el16a2t 2:a48df109588e 59
el16a2t 2:a48df109588e 60 //set initial location conditions for the player and car and score
el16a2t 1:a3c9025e0dad 61 x_player = 24;
el16a2t 1:a3c9025e0dad 62 y_player = 29;
el16a2t 1:a3c9025e0dad 63
el16a2t 2:a48df109588e 64 const int arrayNum[3] = {'4', '24', '44'};
el16a2t 2:a48df109588e 65 int RandIndex = rand() % 3;
el16a2t 2:a48df109588e 66
el16a2t 2:a48df109588e 67 // x_car = arrayNum[RandIndex];
el16a2t 2:a48df109588e 68 x_car = 24;
el16a2t 2:a48df109588e 69 y_car = 0;
el16a2t 2:a48df109588e 70
el16a2t 2:a48df109588e 71 //set score
el16a2t 2:a48df109588e 72 score = 0;
el16a2t 2:a48df109588e 73
el16a2t 2:a48df109588e 74
el16a2t 2:a48df109588e 75
el16a2t 2:a48df109588e 76
el16a2t 2:a48df109588e 77
el16a2t 2:a48df109588e 78
el16a2t 2:a48df109588e 79 //main while loop
el16a2t 1:a3c9025e0dad 80 while (1) {
el16a2t 1:a3c9025e0dad 81
el16a2t 1:a3c9025e0dad 82 lcd.clear();
el16a2t 1:a3c9025e0dad 83
el16a2t 1:a3c9025e0dad 84
el16a2t 1:a3c9025e0dad 85 //print the player sprite
el16a2t 1:a3c9025e0dad 86 lcd.drawSprite(x_player,y_player,20,15,(int*) player);
el16a2t 2:a48df109588e 87 //if X pressed, move player left, if B pressed, move player right
el16a2t 2:a48df109588e 88 if ( pad.check_event(Gamepad::X_PRESSED) == true) {
el16a2t 1:a3c9025e0dad 89
el16a2t 1:a3c9025e0dad 90 x_player = x_player-20;
el16a2t 1:a3c9025e0dad 91 }
el16a2t 1:a3c9025e0dad 92 if (x_player <4) {
el16a2t 1:a3c9025e0dad 93 x_player = 4;
el16a2t 1:a3c9025e0dad 94 }
el16a2t 2:a48df109588e 95 if ( pad.check_event(Gamepad::B_PRESSED) == true) {
el16a2t 1:a3c9025e0dad 96
el16a2t 1:a3c9025e0dad 97 x_player = x_player+20;
el16a2t 1:a3c9025e0dad 98 }
el16a2t 1:a3c9025e0dad 99 if (x_player >44) {
el16a2t 1:a3c9025e0dad 100 x_player = 44;
el16a2t 1:a3c9025e0dad 101 }
el16a2t 1:a3c9025e0dad 102
el16a2t 1:a3c9025e0dad 103 //print road lines
el16a2t 1:a3c9025e0dad 104 lcd.drawRect(1,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 105
el16a2t 1:a3c9025e0dad 106 lcd.drawRect(21,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 107
el16a2t 1:a3c9025e0dad 108 lcd.drawRect(41,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 109
el16a2t 1:a3c9025e0dad 110 lcd.drawRect(61,1,1,1500,FILL_BLACK);
el16a2t 2:a48df109588e 111
el16a2t 2:a48df109588e 112
el16a2t 2:a48df109588e 113
el16a2t 2:a48df109588e 114
el16a2t 2:a48df109588e 115 //cars move down the road
el16a2t 2:a48df109588e 116
el16a2t 2:a48df109588e 117 lcd.drawSprite(x_car,y_car,20,15,(int*) car);
el16a2t 2:a48df109588e 118 y_car++;
el16a2t 1:a3c9025e0dad 119
el16a2t 2:a48df109588e 120 //display score
el16a2t 2:a48df109588e 121 score++;
el16a2t 1:a3c9025e0dad 122
el16a2t 2:a48df109588e 123 // difficulty = read_pot();
el16a2t 2:a48df109588e 124 sprintf (str, "%d", score);
el16a2t 2:a48df109588e 125 lcd.printString(str,64,1);
el16a2t 2:a48df109588e 126
el16a2t 2:a48df109588e 127
el16a2t 2:a48df109588e 128
el16a2t 2:a48df109588e 129
el16a2t 2:a48df109588e 130
el16a2t 2:a48df109588e 131
el16a2t 1:a3c9025e0dad 132
el16a2t 1:a3c9025e0dad 133
el16a2t 1:a3c9025e0dad 134
el16a2t 1:a3c9025e0dad 135 lcd.refresh();
el16a2t 2:a48df109588e 136 wait(0.1);
el16a2t 1:a3c9025e0dad 137
el16a2t 1:a3c9025e0dad 138
el16a2t 1:a3c9025e0dad 139
el16a2t 1:a3c9025e0dad 140
el16a2t 1:a3c9025e0dad 141
el16a2t 1:a3c9025e0dad 142
el16a2t 1:a3c9025e0dad 143
el16a2t 1:a3c9025e0dad 144 }
el16a2t 1:a3c9025e0dad 145
el16a2t 2:a48df109588e 146 }
el16a2t 1:a3c9025e0dad 147
el16a2t 1:a3c9025e0dad 148
el16a2t 1:a3c9025e0dad 149