ELEC2645 (2017/18) / Mbed 2 deprecated el16a2t

Dependencies:   mbed

Committer:
el16a2t
Date:
Tue Apr 24 10:03:41 2018 +0000
Revision:
1:a3c9025e0dad
Child:
2:a48df109588e
put road lines in, allowed the car to move left and right with the use of the L and R buttons

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 1:a3c9025e0dad 20
el16a2t 1:a3c9025e0dad 21
el16a2t 1:a3c9025e0dad 22
el16a2t 1:a3c9025e0dad 23
el16a2t 1:a3c9025e0dad 24 int main()
el16a2t 1:a3c9025e0dad 25
el16a2t 1:a3c9025e0dad 26
el16a2t 1:a3c9025e0dad 27 {
el16a2t 1:a3c9025e0dad 28
el16a2t 1:a3c9025e0dad 29 // initialise the lcd and gamepad
el16a2t 1:a3c9025e0dad 30 lcd.init();
el16a2t 1:a3c9025e0dad 31 lcd.setContrast(0.5);
el16a2t 1:a3c9025e0dad 32 pad.init ();
el16a2t 1:a3c9025e0dad 33
el16a2t 1:a3c9025e0dad 34 //set initial location conditions for the car
el16a2t 1:a3c9025e0dad 35 x_player = 24;
el16a2t 1:a3c9025e0dad 36 y_player = 29;
el16a2t 1:a3c9025e0dad 37
el16a2t 1:a3c9025e0dad 38 while (1) {
el16a2t 1:a3c9025e0dad 39
el16a2t 1:a3c9025e0dad 40 lcd.clear();
el16a2t 1:a3c9025e0dad 41
el16a2t 1:a3c9025e0dad 42
el16a2t 1:a3c9025e0dad 43 //print the player sprite
el16a2t 1:a3c9025e0dad 44 lcd.drawSprite(x_player,y_player,20,15,(int*) player);
el16a2t 1:a3c9025e0dad 45 //if L pressed, move player left, if R pressed, move player right
el16a2t 1:a3c9025e0dad 46 if ( pad.check_event(Gamepad::L_PRESSED) == true) {
el16a2t 1:a3c9025e0dad 47
el16a2t 1:a3c9025e0dad 48 x_player = x_player-20;
el16a2t 1:a3c9025e0dad 49 }
el16a2t 1:a3c9025e0dad 50 if (x_player <4) {
el16a2t 1:a3c9025e0dad 51 x_player = 4;
el16a2t 1:a3c9025e0dad 52 }
el16a2t 1:a3c9025e0dad 53 if ( pad.check_event(Gamepad::R_PRESSED) == true) {
el16a2t 1:a3c9025e0dad 54
el16a2t 1:a3c9025e0dad 55 x_player = x_player+20;
el16a2t 1:a3c9025e0dad 56 }
el16a2t 1:a3c9025e0dad 57 if (x_player >44) {
el16a2t 1:a3c9025e0dad 58 x_player = 44;
el16a2t 1:a3c9025e0dad 59 }
el16a2t 1:a3c9025e0dad 60
el16a2t 1:a3c9025e0dad 61 //print road lines
el16a2t 1:a3c9025e0dad 62 lcd.drawRect(1,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 63
el16a2t 1:a3c9025e0dad 64 lcd.drawRect(21,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 65
el16a2t 1:a3c9025e0dad 66 lcd.drawRect(41,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 67
el16a2t 1:a3c9025e0dad 68 lcd.drawRect(61,1,1,1500,FILL_BLACK);
el16a2t 1:a3c9025e0dad 69 // l1.MoveTo (1,1);
el16a2t 1:a3c9025e0dad 70 // l1.LineTo (1,50);
el16a2t 1:a3c9025e0dad 71
el16a2t 1:a3c9025e0dad 72 //display score
el16a2t 1:a3c9025e0dad 73 score = 1;
el16a2t 1:a3c9025e0dad 74 score = score++;
el16a2t 1:a3c9025e0dad 75
el16a2t 1:a3c9025e0dad 76 // lcd.printChar (score*read_pot(), 25,20);
el16a2t 1:a3c9025e0dad 77
el16a2t 1:a3c9025e0dad 78 //cars move down the road
el16a2t 1:a3c9025e0dad 79 x_car = 24;
el16a2t 1:a3c9025e0dad 80 y_car = 1;
el16a2t 1:a3c9025e0dad 81
el16a2t 1:a3c9025e0dad 82 y_car = y_car+1;
el16a2t 1:a3c9025e0dad 83
el16a2t 1:a3c9025e0dad 84
el16a2t 1:a3c9025e0dad 85
el16a2t 1:a3c9025e0dad 86 lcd.refresh();
el16a2t 1:a3c9025e0dad 87 wait(0.05);
el16a2t 1:a3c9025e0dad 88
el16a2t 1:a3c9025e0dad 89
el16a2t 1:a3c9025e0dad 90
el16a2t 1:a3c9025e0dad 91
el16a2t 1:a3c9025e0dad 92
el16a2t 1:a3c9025e0dad 93
el16a2t 1:a3c9025e0dad 94
el16a2t 1:a3c9025e0dad 95 }
el16a2t 1:a3c9025e0dad 96
el16a2t 1:a3c9025e0dad 97
el16a2t 1:a3c9025e0dad 98
el16a2t 1:a3c9025e0dad 99
el16a2t 1:a3c9025e0dad 100 }