Ahmed Adamjee / Mbed 2 deprecated SnakeVSBlock

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Sat Mar 30 21:42:28 2019 +0000
Revision:
11:d6ceff1ff6d7
Parent:
10:751bd953fa27
Child:
13:9785f2404045
Fixed a bug with random numbers

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 9:d1d79d4ee673 71 _fy = 0;
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 11:d6ceff1ff6d7 101 if(blockgap==148) { //change this while changing the block drop gap
AhmedPlaymaker 11:d6ceff1ff6d7 102 if(_fy >37) {
AhmedPlaymaker 11:d6ceff1ff6d7 103 _fy = 0;
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 }