Ahmed Adamjee / Mbed 2 deprecated SnakeVSBlock

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Wed Apr 03 17:51:19 2019 +0000
Revision:
13:9785f2404045
Parent:
11:d6ceff1ff6d7
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?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 9:d1d79d4ee673 1 #include "SnakeFood.h"
AhmedPlaymaker 9:d1d79d4ee673 2
AhmedPlaymaker 9:d1d79d4ee673 3 SnakeFood::SnakeFood()
AhmedPlaymaker 9:d1d79d4ee673 4 {
AhmedPlaymaker 9:d1d79d4ee673 5
AhmedPlaymaker 9:d1d79d4ee673 6 }
AhmedPlaymaker 9:d1d79d4ee673 7
AhmedPlaymaker 9:d1d79d4ee673 8 SnakeFood::~SnakeFood()
AhmedPlaymaker 9:d1d79d4ee673 9 {
AhmedPlaymaker 9:d1d79d4ee673 10
AhmedPlaymaker 9:d1d79d4ee673 11 }
AhmedPlaymaker 9:d1d79d4ee673 12
AhmedPlaymaker 9:d1d79d4ee673 13 //SnakeFood Sprite.
AhmedPlaymaker 9:d1d79d4ee673 14 int food_sprite[3][3] = {
AhmedPlaymaker 9:d1d79d4ee673 15 {0,1,0},
AhmedPlaymaker 9:d1d79d4ee673 16 {1,0,1},
AhmedPlaymaker 9:d1d79d4ee673 17 {0,1,0},
AhmedPlaymaker 9:d1d79d4ee673 18 };
AhmedPlaymaker 9:d1d79d4ee673 19
AhmedPlaymaker 9:d1d79d4ee673 20 int n = 0;
AhmedPlaymaker 11:d6ceff1ff6d7 21 int blockgap = 0;
AhmedPlaymaker 9:d1d79d4ee673 22 void SnakeFood::init() //Delete Int
AhmedPlaymaker 9:d1d79d4ee673 23 {
AhmedPlaymaker 9:d1d79d4ee673 24 fooddrop=0;
AhmedPlaymaker 9:d1d79d4ee673 25 }
AhmedPlaymaker 9:d1d79d4ee673 26
AhmedPlaymaker 9:d1d79d4ee673 27
AhmedPlaymaker 9:d1d79d4ee673 28 void SnakeFood::draw(N5110 &lcd)
AhmedPlaymaker 9:d1d79d4ee673 29 {
AhmedPlaymaker 9:d1d79d4ee673 30
AhmedPlaymaker 9:d1d79d4ee673 31 //_velocity.x = 1;
AhmedPlaymaker 9:d1d79d4ee673 32 _velocity.y = 1;
AhmedPlaymaker 9:d1d79d4ee673 33
AhmedPlaymaker 9:d1d79d4ee673 34 //add sideways velocity incase I want to make it dodgy.
AhmedPlaymaker 9:d1d79d4ee673 35
AhmedPlaymaker 9:d1d79d4ee673 36
AhmedPlaymaker 9:d1d79d4ee673 37 //Remember to seed
AhmedPlaymaker 9:d1d79d4ee673 38
AhmedPlaymaker 9:d1d79d4ee673 39
AhmedPlaymaker 9:d1d79d4ee673 40
AhmedPlaymaker 9:d1d79d4ee673 41
AhmedPlaymaker 9:d1d79d4ee673 42 /* int random = rand() % 3;
AhmedPlaymaker 9:d1d79d4ee673 43 if(random == 0){
AhmedPlaymaker 9:d1d79d4ee673 44 _velocity.x = 0;
AhmedPlaymaker 9:d1d79d4ee673 45 }
AhmedPlaymaker 9:d1d79d4ee673 46 if(random == 1){
AhmedPlaymaker 9:d1d79d4ee673 47 _velocity.x = 2;
AhmedPlaymaker 9:d1d79d4ee673 48 }
AhmedPlaymaker 9:d1d79d4ee673 49 if(random == 2){
AhmedPlaymaker 9:d1d79d4ee673 50 _velocity.x = -2;
AhmedPlaymaker 9:d1d79d4ee673 51 }
AhmedPlaymaker 9:d1d79d4ee673 52 if(random == 3){
AhmedPlaymaker 9:d1d79d4ee673 53 _velocity.x = -2;
AhmedPlaymaker 9:d1d79d4ee673 54 }
AhmedPlaymaker 9:d1d79d4ee673 55 */
AhmedPlaymaker 9:d1d79d4ee673 56
AhmedPlaymaker 9:d1d79d4ee673 57 //Resets SnakeFood position if it reaches the bottom of the screen.
AhmedPlaymaker 9:d1d79d4ee673 58 //Also prevents SnakeFood from going out of the side of the screen.
AhmedPlaymaker 9:d1d79d4ee673 59 if(_fx < 0){
AhmedPlaymaker 9:d1d79d4ee673 60 _fx = 0;
AhmedPlaymaker 9:d1d79d4ee673 61 }
AhmedPlaymaker 9:d1d79d4ee673 62 if(_fx > 81){
AhmedPlaymaker 9:d1d79d4ee673 63 _fx = 81;
AhmedPlaymaker 9:d1d79d4ee673 64 }
AhmedPlaymaker 9:d1d79d4ee673 65 if(_fy >= 48){
AhmedPlaymaker 9:d1d79d4ee673 66 n = 0;
AhmedPlaymaker 9:d1d79d4ee673 67 }
AhmedPlaymaker 9:d1d79d4ee673 68
AhmedPlaymaker 9:d1d79d4ee673 69 if(n == 0){
AhmedPlaymaker 10:751bd953fa27 70 _fx = (rand() % 82); //change the number here so that there is always an unsurity(a little) if the food will come or not(change the limits for this)
AhmedPlaymaker 13:9785f2404045 71 _fy = -2;
AhmedPlaymaker 9:d1d79d4ee673 72 n = n+1;
AhmedPlaymaker 9:d1d79d4ee673 73 }
AhmedPlaymaker 9:d1d79d4ee673 74
AhmedPlaymaker 9:d1d79d4ee673 75 lcd.drawSprite(_fx,_fy,3,3,(int *)food_sprite); //Function to draw the sprite.
AhmedPlaymaker 9:d1d79d4ee673 76 }
AhmedPlaymaker 9:d1d79d4ee673 77
AhmedPlaymaker 9:d1d79d4ee673 78
AhmedPlaymaker 9:d1d79d4ee673 79
AhmedPlaymaker 9:d1d79d4ee673 80 Vector2D SnakeFood::get_pos() //Obtains the X and Y coordinate of the target.
AhmedPlaymaker 9:d1d79d4ee673 81 {
AhmedPlaymaker 9:d1d79d4ee673 82 Vector2D snakefoodpos = {_fx,_fy};
AhmedPlaymaker 9:d1d79d4ee673 83 //printf("snakefoodpos from food = %f %f \n", snakefoodpos.x, snakefoodpos.y);
AhmedPlaymaker 9:d1d79d4ee673 84 return snakefoodpos;
AhmedPlaymaker 9:d1d79d4ee673 85 }
AhmedPlaymaker 9:d1d79d4ee673 86
AhmedPlaymaker 9:d1d79d4ee673 87
AhmedPlaymaker 9:d1d79d4ee673 88
AhmedPlaymaker 9:d1d79d4ee673 89
AhmedPlaymaker 9:d1d79d4ee673 90 void SnakeFood::update()
AhmedPlaymaker 9:d1d79d4ee673 91 {
AhmedPlaymaker 9:d1d79d4ee673 92 if(fooddrop == 0) {
AhmedPlaymaker 9:d1d79d4ee673 93 _fx += _velocity.x;
AhmedPlaymaker 9:d1d79d4ee673 94 _fy += _velocity.y;
AhmedPlaymaker 9:d1d79d4ee673 95 }
AhmedPlaymaker 9:d1d79d4ee673 96 fooddrop += 1;
AhmedPlaymaker 9:d1d79d4ee673 97
AhmedPlaymaker 9:d1d79d4ee673 98 if(fooddrop == 2) { //make this a variable multiple of game speed
AhmedPlaymaker 9:d1d79d4ee673 99 fooddrop = 0;
AhmedPlaymaker 9:d1d79d4ee673 100 }
AhmedPlaymaker 13:9785f2404045 101 if((blockgap==148)||(blockgap==149)||(blockgap==150)||(blockgap==0)||(blockgap==1)||(blockgap==2)||(blockgap==3)||(blockgap==4)||(blockgap==5)||(blockgap==6)||(blockgap==7)||(blockgap==8)||(blockgap==9)||(blockgap==10)||(blockgap==11)||(blockgap==12)||(blockgap==13)) { //change this while changing the block drop gap
AhmedPlaymaker 13:9785f2404045 102 if(_fy <= -2) {
AhmedPlaymaker 13:9785f2404045 103 _fy = -2;
AhmedPlaymaker 11:d6ceff1ff6d7 104 }
AhmedPlaymaker 11:d6ceff1ff6d7 105 }
AhmedPlaymaker 11:d6ceff1ff6d7 106 blockgap++;
AhmedPlaymaker 11:d6ceff1ff6d7 107 if(blockgap == 150) { //change this while changing the block drop gap
AhmedPlaymaker 11:d6ceff1ff6d7 108 blockgap = 0;
AhmedPlaymaker 11:d6ceff1ff6d7 109 }
AhmedPlaymaker 9:d1d79d4ee673 110 }
AhmedPlaymaker 9:d1d79d4ee673 111
AhmedPlaymaker 9:d1d79d4ee673 112
AhmedPlaymaker 9:d1d79d4ee673 113 void SnakeFood::set_pos(Vector2D p)
AhmedPlaymaker 9:d1d79d4ee673 114 {
AhmedPlaymaker 9:d1d79d4ee673 115 _fx = p.x;
AhmedPlaymaker 9:d1d79d4ee673 116 _fy = p.y;
AhmedPlaymaker 9:d1d79d4ee673 117 }