Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Thu Apr 11 06:50:47 2019 +0000
Revision:
27:3b4775a0d0bb
Parent:
25:e827f1a8fadc
Child:
29:c6358c39a70e
If statements check if the snake sprite has collided with any of the blocks which are a maximum of 5, if so then the snake length reduces and the block number reduces the block has to move slower and come down. Also the block detection is now automat

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 7:48ba87cd79b5 1 #ifndef SNAKEVSBLOCK_H
AhmedPlaymaker 7:48ba87cd79b5 2 #define SNAKEVSBLOCK_H
AhmedPlaymaker 7:48ba87cd79b5 3
AhmedPlaymaker 7:48ba87cd79b5 4 #include "mbed.h"
AhmedPlaymaker 7:48ba87cd79b5 5 #include "N5110.h"
AhmedPlaymaker 7:48ba87cd79b5 6 #include "Gamepad.h"
AhmedPlaymaker 7:48ba87cd79b5 7 #include "Snake.h"
AhmedPlaymaker 9:d1d79d4ee673 8 #include "SnakeFood.h"
AhmedPlaymaker 10:751bd953fa27 9 #include "Blocks.h"
AhmedPlaymaker 7:48ba87cd79b5 10
AhmedPlaymaker 7:48ba87cd79b5 11 class SnakevsBlock
AhmedPlaymaker 7:48ba87cd79b5 12 {
AhmedPlaymaker 7:48ba87cd79b5 13 public:
AhmedPlaymaker 7:48ba87cd79b5 14 SnakevsBlock();
AhmedPlaymaker 7:48ba87cd79b5 15 ~SnakevsBlock();
AhmedPlaymaker 7:48ba87cd79b5 16
AhmedPlaymaker 7:48ba87cd79b5 17 /** Initialise Game Machine
AhmedPlaymaker 7:48ba87cd79b5 18 *
AhmedPlaymaker 7:48ba87cd79b5 19 * This function initialises the game machine.
AhmedPlaymaker 7:48ba87cd79b5 20 */
AhmedPlaymaker 7:48ba87cd79b5 21 void init( );
AhmedPlaymaker 7:48ba87cd79b5 22
AhmedPlaymaker 7:48ba87cd79b5 23 /** Read Input
AhmedPlaymaker 7:48ba87cd79b5 24 *
AhmedPlaymaker 7:48ba87cd79b5 25 * This function obtains numeric data from the gamepads joystick.
AhmedPlaymaker 7:48ba87cd79b5 26 */
AhmedPlaymaker 7:48ba87cd79b5 27 void read_input(Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 28
AhmedPlaymaker 7:48ba87cd79b5 29 /** Update
AhmedPlaymaker 7:48ba87cd79b5 30 *
AhmedPlaymaker 7:48ba87cd79b5 31 * This function contains the update functions of the other libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 32 */
AhmedPlaymaker 25:e827f1a8fadc 33 int update(Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 34
AhmedPlaymaker 7:48ba87cd79b5 35 /** Draw
AhmedPlaymaker 7:48ba87cd79b5 36 *
AhmedPlaymaker 7:48ba87cd79b5 37 * This function contains the draw functions of the other libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 38 */
AhmedPlaymaker 7:48ba87cd79b5 39 void draw(N5110 &lcd, Gamepad &pad);
AhmedPlaymaker 7:48ba87cd79b5 40
AhmedPlaymaker 7:48ba87cd79b5 41 /** Get Position
AhmedPlaymaker 7:48ba87cd79b5 42 *
AhmedPlaymaker 7:48ba87cd79b5 43 * This function contains the Get Position functions of the otehr libraries used in the game.
AhmedPlaymaker 7:48ba87cd79b5 44 */
AhmedPlaymaker 7:48ba87cd79b5 45 void get_pos();
AhmedPlaymaker 7:48ba87cd79b5 46
AhmedPlaymaker 27:3b4775a0d0bb 47 /** Implement Collision
AhmedPlaymaker 27:3b4775a0d0bb 48 *
AhmedPlaymaker 27:3b4775a0d0bb 49 * This function allows the appropriate maths to take place after every collision.
AhmedPlaymaker 27:3b4775a0d0bb 50 */
AhmedPlaymaker 27:3b4775a0d0bb 51 void ImplementCollision(Gamepad &pad);
AhmedPlaymaker 27:3b4775a0d0bb 52
AhmedPlaymaker 7:48ba87cd79b5 53
AhmedPlaymaker 7:48ba87cd79b5 54 int snakex;
AhmedPlaymaker 7:48ba87cd79b5 55 int snakey;
AhmedPlaymaker 7:48ba87cd79b5 56 int length;
AhmedPlaymaker 19:05cc9f801468 57 int level;
AhmedPlaymaker 9:d1d79d4ee673 58 int foodbuff; //this makes food 1,2,and 3 come at seperate times
AhmedPlaymaker 12:1e601b176437 59 int blocknum;
AhmedPlaymaker 19:05cc9f801468 60 int blockgap; //to change frequency of fall
AhmedPlaymaker 19:05cc9f801468 61 int blockbuff; // to manage the fall of food relative to the blocks
AhmedPlaymaker 12:1e601b176437 62 int srn;
AhmedPlaymaker 12:1e601b176437 63 int send; //makes sure that the block number is only updated when send is activated.
AhmedPlaymaker 13:9785f2404045 64 int speed; //makes sure that snake only moves if not colliding to block walls
AhmedPlaymaker 25:e827f1a8fadc 65 int back; //enables the player to go back on main menu if back is pressed.
AhmedPlaymaker 22:ee698f66146f 66 int b[15];
AhmedPlaymaker 18:b391caa5754c 67 int b0_to_b14[15];
AhmedPlaymaker 24:1c118b071430 68 Vector2D snake_pos[15];
AhmedPlaymaker 7:48ba87cd79b5 69
AhmedPlaymaker 7:48ba87cd79b5 70 private:
AhmedPlaymaker 7:48ba87cd79b5 71
AhmedPlaymaker 7:48ba87cd79b5 72 Snake _s;
AhmedPlaymaker 9:d1d79d4ee673 73 SnakeFood _f;
AhmedPlaymaker 9:d1d79d4ee673 74 SnakeFood _ff;
AhmedPlaymaker 9:d1d79d4ee673 75 SnakeFood _fff;
AhmedPlaymaker 10:751bd953fa27 76 Blocks _b;
AhmedPlaymaker 7:48ba87cd79b5 77 int _speed;
AhmedPlaymaker 7:48ba87cd79b5 78 Direction _d;
AhmedPlaymaker 7:48ba87cd79b5 79 float _mag;
AhmedPlaymaker 7:48ba87cd79b5 80 int n;
AhmedPlaymaker 7:48ba87cd79b5 81
AhmedPlaymaker 9:d1d79d4ee673 82 /** Check for Snake and Food collision
AhmedPlaymaker 9:d1d79d4ee673 83 *
AhmedPlaymaker 9:d1d79d4ee673 84 * This function checks if the Snake has come into contact with it's food.
AhmedPlaymaker 9:d1d79d4ee673 85 */
AhmedPlaymaker 9:d1d79d4ee673 86 void CheckSnakeFoodCollision(Gamepad &pad);
AhmedPlaymaker 9:d1d79d4ee673 87
AhmedPlaymaker 12:1e601b176437 88 /** Check for Snake and Block collision
AhmedPlaymaker 12:1e601b176437 89 *
AhmedPlaymaker 12:1e601b176437 90 * This function checks if the Snake has come into contact with any Block.
AhmedPlaymaker 12:1e601b176437 91 */
AhmedPlaymaker 12:1e601b176437 92 void CheckSnakeBlockCollision(Gamepad &pad);
AhmedPlaymaker 13:9785f2404045 93
AhmedPlaymaker 13:9785f2404045 94 /** Check for Snake and Block Sides collision
AhmedPlaymaker 13:9785f2404045 95 *
AhmedPlaymaker 13:9785f2404045 96 * This function checks if the Snake has come into contact with any the sides of the block and stops it moving.
AhmedPlaymaker 13:9785f2404045 97 */
AhmedPlaymaker 13:9785f2404045 98 void CheckSnakeBlockSidesCollision(Gamepad &pad, Direction d);
AhmedPlaymaker 7:48ba87cd79b5 99 };
AhmedPlaymaker 7:48ba87cd79b5 100 #endif