Snake game snake library
Diff: Snake.cpp
- Revision:
- 0:2eb4d7e86e2f
- Child:
- 1:93a4cb86f100
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Snake.cpp Thu May 04 12:01:04 2017 +0000 @@ -0,0 +1,183 @@ +#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; + + } \ No newline at end of file