Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
engine/main.cpp@1:a3c9025e0dad, 2018-04-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |