Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
GameObjects/SnakeFood/SnakeFood.cpp
- Committer:
- AhmedPlaymaker
- Date:
- 2019-04-26
- Revision:
- 51:387249f9b333
- Parent:
- SnakeFood/SnakeFood.cpp@ 41:4edac50f010d
- Child:
- 56:142e9fdb77a8
File content as of revision 51:387249f9b333:
#include "SnakeFood.h" SnakeFood::SnakeFood() { } SnakeFood::~SnakeFood() { } //SnakeFood Sprite. int food_sprite[3][3] = { {0,1,0}, {1,0,1}, {0,1,0}, }; void SnakeFood::init() //Delete Int { n = 0; } void SnakeFood::draw(N5110 &lcd, int blockbuff) { velocity.x = 0; velocity.y = 1; _blockbuff = blockbuff; //add sideways velocity incase I want to make it dodgy. //Resets SnakeFood position if it reaches the bottom of the screen. //Also prevents SnakeFood from going out of the side of the screen. if(_fx < 0) {_fx = 0;} if(_fx > 81) {_fx = 81;} if(_fy >= 48) {n = 0;} if(n == 0){ _fx = (rand() % 82); //this makes the food pop up at a random, unspecified location in the x axis. _fy = -3; if(!((_blockbuff <= 11)&&(_blockbuff >= -11))) { //this makes sure that the snake food only appears when the block doesn't cover it. n = n+1; } } lcd.drawSprite(_fx,_fy,3,3,(int *)food_sprite); //Function to draw the sprite. } Vector2D SnakeFood::get_pos() //Obtains the X and Y coordinate of the target. { Vector2D snakefoodpos = {_fx,_fy}; //printf("snakefoodpos from food = %f %f \n", snakefoodpos.x, snakefoodpos.y); return snakefoodpos; } void SnakeFood::update() { _fx += velocity.x; _fy += velocity.y; } void SnakeFood::set_pos(Vector2D p) { _fx = p.x; _fy = p.y; if(((_blockbuff <= 11)&&(_blockbuff >= -11))&&_fy == -3) { //this makes sure that the snake food only appears when the block doesn't cover it. n = 0; } }