Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
SnakevsBlock/SnakevsBlock.h@27:3b4775a0d0bb, 2019-04-11 (annotated)
- 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?
User | Revision | Line number | New 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 |