Snake game snake library
Snake.cpp
- Committer:
- Nefos
- Date:
- 2017-05-04
- Revision:
- 0:2eb4d7e86e2f
- Child:
- 1:93a4cb86f100
File content as of revision 0:2eb4d7e86e2f:
#include "Snake.h" //Snake snakePart; snakePart snek; Snake::Snake() { } Snake::~Snake() { //delete things create aboce in construcxtor } void Snake::init(int x, int y, int lenght){ //initalizing the starting variables snek._x[0]=x; snek._y[0]=y; _length = lenght; counter=0; for (int i=0;_length>i;i++) { snek._x[i]=x+i; snek._y[i]=y; snek._dir[i]=1; } _direction = 1;//1 is East, 2 is South, 3 is West, 4 is North //putting food at middle of the map before randomizing } void Snake::draw(N5110 &lcd){ lcd.clear(); lcd.drawRect(0,4,84,48-8,FILL_TRANSPARENT); for ( int i=0; _length>i;i++) { if (snek._x!=0) { if (snek._y!=0) { lcd.setPixel(snek._x[i],snek._y[i]); } } //draw the snake array //draw lines from breakpoint to breakpoint to head //draw food //lcd.setPixel(48,28); lcd.refresh(); } } void Snake::update(Gamepad &pad){ d=pad.get_direction(); counter=_length-2; for (int i= 0;_length >i ;i++) { if (snek._dir[i]==1) { snek._x[i]++; snek._dir[counter]=1; counter--; //if (counter>0) //{counter--;} } if (snek._dir[i]==2) { snek._y[i]--; snek._dir[counter]=2; counter--; //if (i>0) //{counter--;} } /* //snek._x[i]=snek._x[i+1]; // snek._y[i]=snek._y[i+1]; switch (snek._dir[i]) { case 1: snek._x[i]++; case 4: snek._y[i]--; } */ //check dpad which way it is pointing //set direction accordingly, 1 is right, up is 2, 3 is left and 4 is down //set a breakpoint at head by snakeX/Y[i] //switch case to make sure direction is good //if head == food, _length++, and -direction we add 1 length // if head==wall game over } //if (counter>0) // {counter--;} if (d==N) { if (snek._dir[_length]!=4) { snek._dir[_length-1] = 2; //snek._y[5]--; //return; } } if (d==E) { if (snek._dir[_length]!=3) { snek._dir[_length-1] = 1; //snek._y[5]--; //return; } } /*switch (d) { case N: /*case E: if (snek._dir[_length]!=3) { snek._dir[_length-1] = 1; //snek._y[5]--; //return; }*/ // } //counter=0; } snakePart Snake::add_point(int x, int y){ //snek._x=x; //snek._y=y; return; //_length++; } void Snake::get_length(){ //return _length; }