Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
SnakevsBlock/SnakevsBlock.h@13:9785f2404045, 2019-04-03 (annotated)
- Committer:
- AhmedPlaymaker
- Date:
- Wed Apr 03 17:51:19 2019 +0000
- Revision:
- 13:9785f2404045
- Parent:
- 12:1e601b176437
- Child:
- 16:7b474f873683
Tried to make the snake such that it does not go through the blocks once it is sideways, succeeded mostly but still has some minor glitches in doing so
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 | 7:48ba87cd79b5 | 33 | void 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 | 7:48ba87cd79b5 | 47 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 48 | int snakex; |
AhmedPlaymaker | 7:48ba87cd79b5 | 49 | int snakey; |
AhmedPlaymaker | 7:48ba87cd79b5 | 50 | int length; |
AhmedPlaymaker | 9:d1d79d4ee673 | 51 | int foodbuff; //this makes food 1,2,and 3 come at seperate times |
AhmedPlaymaker | 12:1e601b176437 | 52 | int blocknum; |
AhmedPlaymaker | 12:1e601b176437 | 53 | int srn; |
AhmedPlaymaker | 12:1e601b176437 | 54 | int send; //makes sure that the block number is only updated when send is activated. |
AhmedPlaymaker | 13:9785f2404045 | 55 | int speed; //makes sure that snake only moves if not colliding to block walls |
AhmedPlaymaker | 12:1e601b176437 | 56 | //int memory; //this remembers the previous y pos of the block. |
AhmedPlaymaker | 12:1e601b176437 | 57 | //int blocknumt; // this is also a memeory number to make sure length doesnt't keep decreasing by itself |
AhmedPlaymaker | 7:48ba87cd79b5 | 58 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 59 | private: |
AhmedPlaymaker | 7:48ba87cd79b5 | 60 | |
AhmedPlaymaker | 7:48ba87cd79b5 | 61 | Snake _s; |
AhmedPlaymaker | 9:d1d79d4ee673 | 62 | SnakeFood _f; |
AhmedPlaymaker | 9:d1d79d4ee673 | 63 | SnakeFood _ff; |
AhmedPlaymaker | 9:d1d79d4ee673 | 64 | SnakeFood _fff; |
AhmedPlaymaker | 10:751bd953fa27 | 65 | Blocks _b; |
AhmedPlaymaker | 7:48ba87cd79b5 | 66 | int _speed; |
AhmedPlaymaker | 7:48ba87cd79b5 | 67 | Direction _d; |
AhmedPlaymaker | 7:48ba87cd79b5 | 68 | float _mag; |
AhmedPlaymaker | 7:48ba87cd79b5 | 69 | int n; |
AhmedPlaymaker | 7:48ba87cd79b5 | 70 | |
AhmedPlaymaker | 9:d1d79d4ee673 | 71 | /** Check for Snake and Food collision |
AhmedPlaymaker | 9:d1d79d4ee673 | 72 | * |
AhmedPlaymaker | 9:d1d79d4ee673 | 73 | * This function checks if the Snake has come into contact with it's food. |
AhmedPlaymaker | 9:d1d79d4ee673 | 74 | */ |
AhmedPlaymaker | 9:d1d79d4ee673 | 75 | void CheckSnakeFoodCollision(Gamepad &pad); |
AhmedPlaymaker | 9:d1d79d4ee673 | 76 | |
AhmedPlaymaker | 12:1e601b176437 | 77 | /** Check for Snake and Block collision |
AhmedPlaymaker | 12:1e601b176437 | 78 | * |
AhmedPlaymaker | 12:1e601b176437 | 79 | * This function checks if the Snake has come into contact with any Block. |
AhmedPlaymaker | 12:1e601b176437 | 80 | */ |
AhmedPlaymaker | 12:1e601b176437 | 81 | void CheckSnakeBlockCollision(Gamepad &pad); |
AhmedPlaymaker | 13:9785f2404045 | 82 | |
AhmedPlaymaker | 13:9785f2404045 | 83 | /** Check for Snake and Block Sides collision |
AhmedPlaymaker | 13:9785f2404045 | 84 | * |
AhmedPlaymaker | 13:9785f2404045 | 85 | * This function checks if the Snake has come into contact with any the sides of the block and stops it moving. |
AhmedPlaymaker | 13:9785f2404045 | 86 | */ |
AhmedPlaymaker | 13:9785f2404045 | 87 | void CheckSnakeBlockSidesCollision(Gamepad &pad, Direction d); |
AhmedPlaymaker | 7:48ba87cd79b5 | 88 | }; |
AhmedPlaymaker | 7:48ba87cd79b5 | 89 | #endif |