Ahmed Adamjee / Mbed 2 deprecated SnakeVSBlock

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Sat Mar 30 17:09:18 2019 +0000
Revision:
10:751bd953fa27
Parent:
9:d1d79d4ee673
Child:
11:d6ceff1ff6d7
Can now draw blocks and generate random numbers in them, they can be seen on screen, the next step is creating collision

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 9:d1d79d4ee673 21 void SnakeFood::init() //Delete Int
AhmedPlaymaker 9:d1d79d4ee673 22 {
AhmedPlaymaker 9:d1d79d4ee673 23 fooddrop=0;
AhmedPlaymaker 9:d1d79d4ee673 24 }
AhmedPlaymaker 9:d1d79d4ee673 25
AhmedPlaymaker 9:d1d79d4ee673 26
AhmedPlaymaker 9:d1d79d4ee673 27 void SnakeFood::draw(N5110 &lcd)
AhmedPlaymaker 9:d1d79d4ee673 28 {
AhmedPlaymaker 9:d1d79d4ee673 29
AhmedPlaymaker 9:d1d79d4ee673 30 //_velocity.x = 1;
AhmedPlaymaker 9:d1d79d4ee673 31 _velocity.y = 1;
AhmedPlaymaker 9:d1d79d4ee673 32
AhmedPlaymaker 9:d1d79d4ee673 33 //add sideways velocity incase I want to make it dodgy.
AhmedPlaymaker 9:d1d79d4ee673 34
AhmedPlaymaker 9:d1d79d4ee673 35
AhmedPlaymaker 9:d1d79d4ee673 36 //Remember to seed
AhmedPlaymaker 9:d1d79d4ee673 37
AhmedPlaymaker 9:d1d79d4ee673 38
AhmedPlaymaker 9:d1d79d4ee673 39
AhmedPlaymaker 9:d1d79d4ee673 40
AhmedPlaymaker 9:d1d79d4ee673 41 /* int random = rand() % 3;
AhmedPlaymaker 9:d1d79d4ee673 42 if(random == 0){
AhmedPlaymaker 9:d1d79d4ee673 43 _velocity.x = 0;
AhmedPlaymaker 9:d1d79d4ee673 44 }
AhmedPlaymaker 9:d1d79d4ee673 45 if(random == 1){
AhmedPlaymaker 9:d1d79d4ee673 46 _velocity.x = 2;
AhmedPlaymaker 9:d1d79d4ee673 47 }
AhmedPlaymaker 9:d1d79d4ee673 48 if(random == 2){
AhmedPlaymaker 9:d1d79d4ee673 49 _velocity.x = -2;
AhmedPlaymaker 9:d1d79d4ee673 50 }
AhmedPlaymaker 9:d1d79d4ee673 51 if(random == 3){
AhmedPlaymaker 9:d1d79d4ee673 52 _velocity.x = -2;
AhmedPlaymaker 9:d1d79d4ee673 53 }
AhmedPlaymaker 9:d1d79d4ee673 54 */
AhmedPlaymaker 9:d1d79d4ee673 55
AhmedPlaymaker 9:d1d79d4ee673 56 //Resets SnakeFood position if it reaches the bottom of the screen.
AhmedPlaymaker 9:d1d79d4ee673 57 //Also prevents SnakeFood from going out of the side of the screen.
AhmedPlaymaker 9:d1d79d4ee673 58 if(_fx < 0){
AhmedPlaymaker 9:d1d79d4ee673 59 _fx = 0;
AhmedPlaymaker 9:d1d79d4ee673 60 }
AhmedPlaymaker 9:d1d79d4ee673 61 if(_fx > 81){
AhmedPlaymaker 9:d1d79d4ee673 62 _fx = 81;
AhmedPlaymaker 9:d1d79d4ee673 63 }
AhmedPlaymaker 9:d1d79d4ee673 64 if(_fy >= 48){
AhmedPlaymaker 9:d1d79d4ee673 65 n = 0;
AhmedPlaymaker 9:d1d79d4ee673 66 }
AhmedPlaymaker 9:d1d79d4ee673 67
AhmedPlaymaker 9:d1d79d4ee673 68 if(n == 0){
AhmedPlaymaker 10:751bd953fa27 69 _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 70 _fy = 0;
AhmedPlaymaker 9:d1d79d4ee673 71 n = n+1;
AhmedPlaymaker 9:d1d79d4ee673 72 }
AhmedPlaymaker 9:d1d79d4ee673 73
AhmedPlaymaker 9:d1d79d4ee673 74 lcd.drawSprite(_fx,_fy,3,3,(int *)food_sprite); //Function to draw the sprite.
AhmedPlaymaker 9:d1d79d4ee673 75 }
AhmedPlaymaker 9:d1d79d4ee673 76
AhmedPlaymaker 9:d1d79d4ee673 77
AhmedPlaymaker 9:d1d79d4ee673 78
AhmedPlaymaker 9:d1d79d4ee673 79 Vector2D SnakeFood::get_pos() //Obtains the X and Y coordinate of the target.
AhmedPlaymaker 9:d1d79d4ee673 80 {
AhmedPlaymaker 9:d1d79d4ee673 81 Vector2D snakefoodpos = {_fx,_fy};
AhmedPlaymaker 9:d1d79d4ee673 82 //printf("snakefoodpos from food = %f %f \n", snakefoodpos.x, snakefoodpos.y);
AhmedPlaymaker 9:d1d79d4ee673 83 return snakefoodpos;
AhmedPlaymaker 9:d1d79d4ee673 84 }
AhmedPlaymaker 9:d1d79d4ee673 85
AhmedPlaymaker 9:d1d79d4ee673 86
AhmedPlaymaker 9:d1d79d4ee673 87
AhmedPlaymaker 9:d1d79d4ee673 88
AhmedPlaymaker 9:d1d79d4ee673 89 void SnakeFood::update()
AhmedPlaymaker 9:d1d79d4ee673 90 {
AhmedPlaymaker 9:d1d79d4ee673 91 if(fooddrop == 0) {
AhmedPlaymaker 9:d1d79d4ee673 92 _fx += _velocity.x;
AhmedPlaymaker 9:d1d79d4ee673 93 _fy += _velocity.y;
AhmedPlaymaker 9:d1d79d4ee673 94 }
AhmedPlaymaker 9:d1d79d4ee673 95 fooddrop += 1;
AhmedPlaymaker 9:d1d79d4ee673 96
AhmedPlaymaker 9:d1d79d4ee673 97 if(fooddrop == 2) { //make this a variable multiple of game speed
AhmedPlaymaker 9:d1d79d4ee673 98 fooddrop = 0;
AhmedPlaymaker 9:d1d79d4ee673 99 }
AhmedPlaymaker 9:d1d79d4ee673 100 }
AhmedPlaymaker 9:d1d79d4ee673 101
AhmedPlaymaker 9:d1d79d4ee673 102
AhmedPlaymaker 9:d1d79d4ee673 103 void SnakeFood::set_pos(Vector2D p)
AhmedPlaymaker 9:d1d79d4ee673 104 {
AhmedPlaymaker 9:d1d79d4ee673 105 _fx = p.x;
AhmedPlaymaker 9:d1d79d4ee673 106 _fy = p.y;
AhmedPlaymaker 9:d1d79d4ee673 107 }