Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

Committer:
ZhongYufan
Date:
Sun Apr 26 07:30:22 2020 +0000
Revision:
7:5bb5cde8951a
Parent:
1:9c7bb3db32bc
Child:
8:c5969685cf02
complete ver1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ZhongYufan 0:edf120185e12 1 /*
ZhongYufan 1:9c7bb3db32bc 2 ELEC2645 Embedded Systems Project
ZhongYufan 0:edf120185e12 3 School of Electronic & Electrical Engineering
ZhongYufan 0:edf120185e12 4 University of Leeds
ZhongYufan 0:edf120185e12 5
ZhongYufan 0:edf120185e12 6 Name: Yufan Zhong
ZhongYufan 0:edf120185e12 7 Username: el17yz
ZhongYufan 0:edf120185e12 8 Student ID Number: 201199708
ZhongYufan 1:9c7bb3db32bc 9 Date: May,2020
ZhongYufan 1:9c7bb3db32bc 10
ZhongYufan 1:9c7bb3db32bc 11 */
ZhongYufan 1:9c7bb3db32bc 12
ZhongYufan 1:9c7bb3db32bc 13
ZhongYufan 1:9c7bb3db32bc 14 ///////// pre-processor directives ////////
ZhongYufan 1:9c7bb3db32bc 15 #include "mbed.h"
ZhongYufan 1:9c7bb3db32bc 16 #include "Gamepad.h"
ZhongYufan 1:9c7bb3db32bc 17 #include "N5110.h"
ZhongYufan 1:9c7bb3db32bc 18 #include "MinerEngine.h"
ZhongYufan 1:9c7bb3db32bc 19
ZhongYufan 1:9c7bb3db32bc 20 #ifdef WITH_TESTING
ZhongYufan 1:9c7bb3db32bc 21 # include "tests.h"
ZhongYufan 1:9c7bb3db32bc 22 #endif
ZhongYufan 1:9c7bb3db32bc 23
ZhongYufan 1:9c7bb3db32bc 24 #define WINCH_WIDTH 12
ZhongYufan 1:9c7bb3db32bc 25 #define WINCH_HEIGHT 6
ZhongYufan 1:9c7bb3db32bc 26 #define CLAW_SPEED 3
ZhongYufan 1:9c7bb3db32bc 27 #define MONSTER_SIZE 3
ZhongYufan 7:5bb5cde8951a 28 #define MONSTER_SPEED 1
ZhongYufan 7:5bb5cde8951a 29 #define GOLD_NUM 9
ZhongYufan 1:9c7bb3db32bc 30 /////////////// structs /////////////////
ZhongYufan 1:9c7bb3db32bc 31 struct UserInput {
ZhongYufan 1:9c7bb3db32bc 32 Direction d;
ZhongYufan 1:9c7bb3db32bc 33 float mag;
ZhongYufan 1:9c7bb3db32bc 34 };
ZhongYufan 1:9c7bb3db32bc 35 /////////////// objects ///////////////
ZhongYufan 1:9c7bb3db32bc 36 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
ZhongYufan 1:9c7bb3db32bc 37 Gamepad pad;
ZhongYufan 7:5bb5cde8951a 38 MinerEngine miner;
ZhongYufan 1:9c7bb3db32bc 39
ZhongYufan 1:9c7bb3db32bc 40 ///////////// prototypes ///////////////
ZhongYufan 1:9c7bb3db32bc 41 void init();
ZhongYufan 1:9c7bb3db32bc 42 void update_game(UserInput input);
ZhongYufan 7:5bb5cde8951a 43
ZhongYufan 1:9c7bb3db32bc 44 void welcome();
ZhongYufan 0:edf120185e12 45
ZhongYufan 1:9c7bb3db32bc 46 ///////////// functions ////////////////
ZhongYufan 1:9c7bb3db32bc 47 int main()
ZhongYufan 1:9c7bb3db32bc 48 {
ZhongYufan 1:9c7bb3db32bc 49
ZhongYufan 1:9c7bb3db32bc 50 #ifdef WITH_TESTING
ZhongYufan 1:9c7bb3db32bc 51 int number_of_failures = run_all_tests();
ZhongYufan 1:9c7bb3db32bc 52
ZhongYufan 1:9c7bb3db32bc 53 if(number_of_failures > 0) return number_of_failures;
ZhongYufan 1:9c7bb3db32bc 54 #endif
ZhongYufan 1:9c7bb3db32bc 55
ZhongYufan 1:9c7bb3db32bc 56 int fps = 8; // frames per second
ZhongYufan 1:9c7bb3db32bc 57
ZhongYufan 1:9c7bb3db32bc 58 init(); // initialise and then display welcome screen...
ZhongYufan 1:9c7bb3db32bc 59 welcome(); // waiting for the user to start
ZhongYufan 7:5bb5cde8951a 60 // first draw the initial frame
ZhongYufan 1:9c7bb3db32bc 61 wait(1.0f/fps); // and wait for one frame period
ZhongYufan 0:edf120185e12 62
ZhongYufan 0:edf120185e12 63
ZhongYufan 1:9c7bb3db32bc 64 // game loop - read input, update the game state and render the display
ZhongYufan 1:9c7bb3db32bc 65 while (1) {
ZhongYufan 7:5bb5cde8951a 66
ZhongYufan 7:5bb5cde8951a 67 miner.state_switch(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 68 wait(1.0f/fps);
ZhongYufan 1:9c7bb3db32bc 69 }
ZhongYufan 1:9c7bb3db32bc 70 }
ZhongYufan 0:edf120185e12 71
ZhongYufan 1:9c7bb3db32bc 72 // initialies all classes and libraries
ZhongYufan 1:9c7bb3db32bc 73 void init()
ZhongYufan 0:edf120185e12 74 {
ZhongYufan 1:9c7bb3db32bc 75 // need to initialise LCD and Gamepad
ZhongYufan 1:9c7bb3db32bc 76 lcd.init();
ZhongYufan 1:9c7bb3db32bc 77 pad.init();
ZhongYufan 1:9c7bb3db32bc 78
ZhongYufan 1:9c7bb3db32bc 79 // initialise the game with correct claw and winch sizes
ZhongYufan 7:5bb5cde8951a 80 miner.init(WINCH_WIDTH,WINCH_HEIGHT,GOLD_NUM,MONSTER_SPEED);
ZhongYufan 1:9c7bb3db32bc 81
ZhongYufan 1:9c7bb3db32bc 82 }
ZhongYufan 1:9c7bb3db32bc 83
ZhongYufan 1:9c7bb3db32bc 84 // this function draws each frame on the LCD
ZhongYufan 7:5bb5cde8951a 85
ZhongYufan 1:9c7bb3db32bc 86
ZhongYufan 1:9c7bb3db32bc 87 // simple splash screen displayed on start-up
ZhongYufan 1:9c7bb3db32bc 88 void welcome() {
ZhongYufan 1:9c7bb3db32bc 89
ZhongYufan 1:9c7bb3db32bc 90 miner.welcome(pad,lcd);
ZhongYufan 7:5bb5cde8951a 91 //miner.menu(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 92
ZhongYufan 0:edf120185e12 93 }