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
main.cpp@4:ce4eea1c2a28, 2019-03-17 (annotated)
- Committer:
- lewisgw
- Date:
- Sun Mar 17 13:36:10 2019 +0000
- Revision:
- 4:ce4eea1c2a28
- Parent:
- 3:28a3c118e071
- Child:
- 5:eda40cdde3e7
Skater can now duck when joystick is in non zero horizontal direction and negative vertical direction.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lewisgw | 0:d74302f8f847 | 1 | /* |
lewisgw | 0:d74302f8f847 | 2 | ELEC2645 Embedded Systems Project |
lewisgw | 0:d74302f8f847 | 3 | School of Electronic & Electrical Engineering University of Leeds |
lewisgw | 0:d74302f8f847 | 4 | Name: Lewis Wooltorton |
lewisgw | 0:d74302f8f847 | 5 | Username: el17lw |
lewisgw | 0:d74302f8f847 | 6 | Student ID Number: 201122085 Date: March 2019 |
lewisgw | 1:ded7ddd826ce | 7 | */ |
lewisgw | 1:ded7ddd826ce | 8 | |
lewisgw | 1:ded7ddd826ce | 9 | #include "N5110.h" |
lewisgw | 1:ded7ddd826ce | 10 | #include "Gamepad.h" |
lewisgw | 2:16ae940b0aee | 11 | #include "Skateboarder.h" |
lewisgw | 1:ded7ddd826ce | 12 | #include <cmath> |
lewisgw | 1:ded7ddd826ce | 13 | |
lewisgw | 1:ded7ddd826ce | 14 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
lewisgw | 2:16ae940b0aee | 15 | Gamepad gamepad; |
lewisgw | 2:16ae940b0aee | 16 | Skateboarder skater; |
lewisgw | 1:ded7ddd826ce | 17 | |
lewisgw | 1:ded7ddd826ce | 18 | void init_game(); |
lewisgw | 2:16ae940b0aee | 19 | void process_inputs(); |
lewisgw | 2:16ae940b0aee | 20 | void update_lcd(int x, int y, Sprite_value sprite); |
lewisgw | 1:ded7ddd826ce | 21 | |
lewisgw | 1:ded7ddd826ce | 22 | int main(){ |
lewisgw | 1:ded7ddd826ce | 23 | |
lewisgw | 1:ded7ddd826ce | 24 | init_game(); |
lewisgw | 1:ded7ddd826ce | 25 | int moving_counter = 0; |
lewisgw | 2:16ae940b0aee | 26 | int x; |
lewisgw | 3:28a3c118e071 | 27 | int y; |
lewisgw | 3:28a3c118e071 | 28 | int level = 0; |
lewisgw | 2:16ae940b0aee | 29 | int jump_counter = 0; |
lewisgw | 3:28a3c118e071 | 30 | Skate_Direction direction = Left; |
lewisgw | 2:16ae940b0aee | 31 | Sprite_value sprite; |
lewisgw | 1:ded7ddd826ce | 32 | |
lewisgw | 1:ded7ddd826ce | 33 | while(1){ |
lewisgw | 1:ded7ddd826ce | 34 | lcd.clear(); |
lewisgw | 2:16ae940b0aee | 35 | Vector2D coord = gamepad.get_mapped_coord(); |
lewisgw | 1:ded7ddd826ce | 36 | |
lewisgw | 3:28a3c118e071 | 37 | if((x >= 1 && x <= 30 && y < 15) || (x >= 45 && x <= 80 && y < 15)){ |
lewisgw | 3:28a3c118e071 | 38 | level = 1; |
lewisgw | 3:28a3c118e071 | 39 | } else { |
lewisgw | 3:28a3c118e071 | 40 | level = 0; |
lewisgw | 3:28a3c118e071 | 41 | } |
lewisgw | 3:28a3c118e071 | 42 | |
lewisgw | 3:28a3c118e071 | 43 | skater.set_y_position( gamepad.check_event(Gamepad::A_PRESSED), jump_counter, level ); |
lewisgw | 2:16ae940b0aee | 44 | y = skater.get_y_position(); |
lewisgw | 2:16ae940b0aee | 45 | jump_counter = skater.get_jump_counter(); |
lewisgw | 1:ded7ddd826ce | 46 | |
lewisgw | 4:ce4eea1c2a28 | 47 | skater.set_x_position( coord.x, moving_counter, direction, coord.y ); |
lewisgw | 2:16ae940b0aee | 48 | x = skater.get_x_position(); |
lewisgw | 2:16ae940b0aee | 49 | moving_counter = skater.get_moving_counter(); |
lewisgw | 3:28a3c118e071 | 50 | sprite = skater.get_sprite_value(); |
lewisgw | 3:28a3c118e071 | 51 | direction = skater.get_direction(); |
lewisgw | 3:28a3c118e071 | 52 | |
lewisgw | 2:16ae940b0aee | 53 | update_lcd(x, y, sprite); |
lewisgw | 2:16ae940b0aee | 54 | |
lewisgw | 1:ded7ddd826ce | 55 | lcd.refresh(); |
lewisgw | 1:ded7ddd826ce | 56 | wait(0.01); |
lewisgw | 3:28a3c118e071 | 57 | } |
lewisgw | 3:28a3c118e071 | 58 | } |
lewisgw | 1:ded7ddd826ce | 59 | |
lewisgw | 2:16ae940b0aee | 60 | void init_game() { |
lewisgw | 2:16ae940b0aee | 61 | gamepad.init(); |
lewisgw | 2:16ae940b0aee | 62 | lcd.init(); |
lewisgw | 2:16ae940b0aee | 63 | lcd.setContrast(0.5); |
lewisgw | 2:16ae940b0aee | 64 | lcd.normalMode(); |
lewisgw | 2:16ae940b0aee | 65 | lcd.setBrightness(0.5); |
lewisgw | 3:28a3c118e071 | 66 | } |
lewisgw | 1:ded7ddd826ce | 67 | |
lewisgw | 2:16ae940b0aee | 68 | void update_lcd(int x, int y, Sprite_value sprite) { |
lewisgw | 3:28a3c118e071 | 69 | int* skate_sprite = skater.get_sprite(sprite); |
lewisgw | 4:ce4eea1c2a28 | 70 | lcd.drawSprite(x,y,17,10,(int *)skate_sprite); |
lewisgw | 3:28a3c118e071 | 71 | lcd.drawLine(5,40,80,40,FILL_BLACK); |
lewisgw | 3:28a3c118e071 | 72 | lcd.drawLine(5,22,30,22,FILL_BLACK); |
lewisgw | 3:28a3c118e071 | 73 | lcd.drawLine(50,22,80,22,FILL_BLACK); |
lewisgw | 3:28a3c118e071 | 74 | } |
lewisgw | 2:16ae940b0aee | 75 |