Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Thu May 09 11:23:16 2019 +0000
Revision:
101:5108621b207f
Parent:
100:6403c1705a08
added documentation to snake-test.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 87:871d9fecb593 1 #ifndef MAIN_H
AhmedPlaymaker 87:871d9fecb593 2 #define MAIN_H
AhmedPlaymaker 87:871d9fecb593 3
AhmedPlaymaker 73:80556a279962 4 /** @file main.h
AhmedPlaymaker 73:80556a279962 5 * @brief Main.cpp's header file that defines all the directives and objects to use along with the definition of it's own function prototypes.
AhmedPlaymaker 101:5108621b207f 6 * @author Ahmed N.Adamjee
AhmedPlaymaker 101:5108621b207f 7 * @date 9th May 2019
AhmedPlaymaker 73:80556a279962 8 */
AhmedPlaymaker 73:80556a279962 9
AhmedPlaymaker 87:871d9fecb593 10 ///////////// MAIN.H ////////////////
AhmedPlaymaker 73:80556a279962 11
AhmedPlaymaker 73:80556a279962 12 ///////// pre-processor directives ////////
AhmedPlaymaker 73:80556a279962 13 #include "mbed.h"
AhmedPlaymaker 73:80556a279962 14 #include "Gamepad.h"
AhmedPlaymaker 73:80556a279962 15 #include "N5110.h"
AhmedPlaymaker 73:80556a279962 16 #include "FXOS8700CQ.h"
AhmedPlaymaker 73:80556a279962 17 #include "StartScreen.h"
AhmedPlaymaker 73:80556a279962 18 #include "SnakevsBlock.h"
AhmedPlaymaker 73:80556a279962 19 #include "SDFileSystem.h"
AhmedPlaymaker 73:80556a279962 20
AhmedPlaymaker 73:80556a279962 21 #ifdef TEST_SNAKE
AhmedPlaymaker 73:80556a279962 22 # include "tests.h"
AhmedPlaymaker 73:80556a279962 23 #endif
AhmedPlaymaker 73:80556a279962 24
AhmedPlaymaker 73:80556a279962 25 /////////////// objects ///////////////
AhmedPlaymaker 73:80556a279962 26 N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
AhmedPlaymaker 73:80556a279962 27 Gamepad pad;
AhmedPlaymaker 73:80556a279962 28 FXOS8700CQ device(I2C_SDA,I2C_SCL);
AhmedPlaymaker 73:80556a279962 29 StartScreen _start;
AhmedPlaymaker 73:80556a279962 30 Stats _stats;
AhmedPlaymaker 73:80556a279962 31 SnakevsBlock _game;
AhmedPlaymaker 73:80556a279962 32 AnalogIn noisy(PTB0); //This creates a random noise which I can use to seed the random numbers.
AhmedPlaymaker 73:80556a279962 33 // Connections to SD card holder on K64F (SPI interface)
AhmedPlaymaker 73:80556a279962 34 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
AhmedPlaymaker 73:80556a279962 35 //Serial serial(USBTX, USBRX); // for PC debug
AhmedPlaymaker 73:80556a279962 36
AhmedPlaymaker 73:80556a279962 37
AhmedPlaymaker 73:80556a279962 38 //Constants//
AhmedPlaymaker 73:80556a279962 39 int fps = 40; // frames per second, this will be changed in menu.
AhmedPlaymaker 73:80556a279962 40 int g_mode = 1; //selects between joystick and motion control.
AhmedPlaymaker 73:80556a279962 41 int back; //this allows us to use the back key to exit the game loop;
AhmedPlaymaker 73:80556a279962 42
AhmedPlaymaker 73:80556a279962 43
AhmedPlaymaker 73:80556a279962 44 ///////////// prototypes //////////////
AhmedPlaymaker 100:6403c1705a08 45 /**
AhmedPlaymaker 100:6403c1705a08 46 * @brief Initialises main.cpp and all the libraries and classes used.
AhmedPlaymaker 100:6403c1705a08 47 */
AhmedPlaymaker 73:80556a279962 48 void init();
AhmedPlaymaker 100:6403c1705a08 49
AhmedPlaymaker 100:6403c1705a08 50 /**
AhmedPlaymaker 100:6403c1705a08 51 * @brief Calls functions using class objects to display menu.
AhmedPlaymaker 100:6403c1705a08 52 */
AhmedPlaymaker 73:80556a279962 53 void menu();
AhmedPlaymaker 100:6403c1705a08 54
AhmedPlaymaker 100:6403c1705a08 55 /**
AhmedPlaymaker 100:6403c1705a08 56 * @brief Constantly reads and writes stats from and to the SD card.
AhmedPlaymaker 100:6403c1705a08 57 */
AhmedPlaymaker 73:80556a279962 58 void read_write_stats();
AhmedPlaymaker 100:6403c1705a08 59
AhmedPlaymaker 100:6403c1705a08 60 /**
AhmedPlaymaker 100:6403c1705a08 61 * @brief Sets game mode and game speed into snakevsblocks class by reading these from startscreen.
AhmedPlaymaker 100:6403c1705a08 62 */
AhmedPlaymaker 73:80556a279962 63 void _set_mode_speed();
AhmedPlaymaker 100:6403c1705a08 64
AhmedPlaymaker 100:6403c1705a08 65 /**
AhmedPlaymaker 100:6403c1705a08 66 * @brief This is executed when the player starts the game.
AhmedPlaymaker 100:6403c1705a08 67 */
AhmedPlaymaker 73:80556a279962 68 void gameLoop();
AhmedPlaymaker 100:6403c1705a08 69
AhmedPlaymaker 100:6403c1705a08 70 /**
AhmedPlaymaker 100:6403c1705a08 71 * @brief Refreshes display and draws game objects using snakevsblock class.
AhmedPlaymaker 100:6403c1705a08 72 */
AhmedPlaymaker 84:9950d561fdf8 73 void refresh_game();
AhmedPlaymaker 100:6403c1705a08 74
AhmedPlaymaker 87:871d9fecb593 75 //void deinit();
AhmedPlaymaker 87:871d9fecb593 76
AhmedPlaymaker 87:871d9fecb593 77 #endif