Ahmed Adamjee
/
SnakeVSBlock
Snake vs Block Game to be run upon K64F.
Diff: Snake/Snake.cpp
- Revision:
- 8:890b986b16a4
- Parent:
- 7:48ba87cd79b5
- Child:
- 9:d1d79d4ee673
diff -r 48ba87cd79b5 -r 890b986b16a4 Snake/Snake.cpp --- a/Snake/Snake.cpp Tue Mar 26 14:45:15 2019 +0000 +++ b/Snake/Snake.cpp Tue Mar 26 18:36:50 2019 +0000 @@ -11,8 +11,11 @@ } //The Snake Sprite. -int snake_sprite[1][1] = { - {1}, +int snake_sprite[3][3] = { + {0,1,0}, + {1,0,1}, + {0,1,0}, + }; int m = 0; //Variable used to allow a starting location for the player. @@ -26,15 +29,181 @@ } -void Snake::draw(N5110 &lcd) +void Snake::draw(N5110 &lcd, int length) { if(m == 0){ _x = WIDTH/2; //Spawns player sprite near the middle of the screen. + _xa = _x; + _xb = _x; + _xc = _x; + _xd = _x; + _xe = _x; + _xf = _x; + _xg = _x; + _xh = _x; + _xi = _x; + _xj = _x; + _xk = _x; + _xl = _x; + _xm = _x; + _xn = _x; _y = HEIGHT - 3; m = m+1; } //printf("SPRITE %d %d \n", _x, _y); - lcd.drawSprite(_x,_y,1,1,(int *)snake_sprite); //Function used to draw the sprite. + if(length == 0) { + NVIC_SystemReset(); //Software Reset. + } + if(length == 1) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + } + if(length == 2) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + } + if(length == 3) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + } + if(length == 4) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + } + if(length == 5) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + } + if(length == 6) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + } + if(length == 7) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + } + if(length == 8) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + } + if(length == 9) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + } + if(length == 10) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + } + if(length == 11) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite); + } + if(length == 12) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite); + lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite); + } + if(length == 13) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite); + lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite); + lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite); + } + if(length == 14) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite); + lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite); + lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite); + lcd.drawSprite(_xm,_y-39,3,3,(int *)snake_sprite); + } + if(length == 15) { + lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite. + lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite); + lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite); + lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite); + lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite); + lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite); + lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite); + lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite); + lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite); + lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite); + lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite); + lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite); + lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite); + lcd.drawSprite(_xm,_y-39,3,3,(int *)snake_sprite); + lcd.drawSprite(_xn,_y-42,3,3,(int *)snake_sprite); + } } @@ -47,18 +216,243 @@ } -void Snake::update(Direction d,float mag) +void Snake::update(Direction d,float mag,int length) { - _speed = int(mag*7.0f); //Speed changes depending on how much you push the joystick.(As Of Now) - + _speed = 1; //Speed changes depending on how much you push the joystick.(As Of Now) + + if(length > 1) { + if (_x > _xa) { + _x-=_speed; + } + if (_x < _xa) { + _x+=_speed; + } + if(length > 2) { + if (_xa > _xb) { + _xa-=_speed; + } + if (_xa < _xb) { + _xa+=_speed; + } + if(length > 3) { + if (_xb > _xc) { + _xb-=_speed; + } + if (_xb < _xc) { + _xb+=_speed; + } + if(length > 4) { + if (_xc > _xd) { + _xc-=_speed; + } + if (_xc < _xd) { + _xc+=_speed; + } + if(length > 5) { + if (_xd > _xe) { + _xd-=_speed; + } + if (_xd < _xe) { + _xd+=_speed; + } + if(length > 6) { + if (_xe > _xf) { + _xe-=_speed; + } + if (_xe < _xf) { + _xe+=_speed; + } + if(length > 7) { + if (_xf > _xg) { + _xf-=_speed; + } + if (_xf < _xg) { + _xf+=_speed; + } + if(length > 8) { + if (_xg > _xh) { + _xg-=_speed; + } + if (_xg < _xh) { + _xg+=_speed; + } + if(length > 9) { + if (_xh > _xi) { + _xh-=_speed; + } + if (_xh < _xi) { + _xh+=_speed; + } + if(length > 10) { + if (_xi > _xj) { + _xi-=_speed; + } + if (_xi < _xj) { + _xi+=_speed; + } + if(length > 11) { + if (_xj > _xk) { + _xj-=_speed; + } + if (_xj < _xk) { + _xj+=_speed; + } + if(length > 12) { + if (_xk > _xl) { + _xk-=_speed; + } + if (_xk < _xl) { + _xk+=_speed; + } + if(length > 13) { + if (_xl > _xm) { + _xl-=_speed; + } + if (_xl < _xm) { + _xl+=_speed; + } + if(length > 14) { + if (_xm > _xn) { + _xm-=_speed; + } + if (_xm < _xn) { + _xm+=_speed; + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } // Diagonal speeds are /2 to prevent player from going double the speed. - - if (d == E) { - _x+=_speed; + if(length == 15) { + if (d == E) { + _xn+= _speed; + } + if (d == W) { + _xn-= _speed; + } + } + if(length == 14) { + if (d == E) { + _xm+= _speed; + } + if (d == W) { + _xm-= _speed; + } + } + if(length == 13) { + if (d == E) { + _xl+= _speed; + } + if (d == W) { + _xl-= _speed; + } + } + if(length == 12) { + if (d == E) { + _xk+= _speed; + } + if (d == W) { + _xk-= _speed; + } + } + if(length == 11) { + if (d == E) { + _xj+= _speed; + } + if (d == W) { + _xj-= _speed; + } + } + if(length == 10) { + if (d == E) { + _xi+= _speed; + } + if (d == W) { + _xi-= _speed; + } + } + if(length == 9) { + if (d == E) { + _xh+= _speed; + } + if (d == W) { + _xh-= _speed; + } } - if (d == W) { - _x-=_speed; + if(length == 8) { + if (d == E) { + _xg+= _speed; + } + if (d == W) { + _xg-= _speed; + } + } + if(length == 7) { + if (d == E) { + _xf+= _speed; + } + if (d == W) { + _xf-= _speed; + } + } + if(length == 6) { + if (d == E) { + _xe+= _speed; + } + if (d == W) { + _xe-= _speed; + } + } + if(length == 5) { + if (d == E) { + _xd+= _speed; + } + if (d == W) { + _xd-= _speed; + } + } + if(length == 4) { + if (d == E) { + _xc+= _speed; + } + if (d == W) { + _xc-= _speed; + } + } + if(length == 3) { + if (d == E) { + _xb+= _speed; + } + if (d == W) { + _xb-= _speed; + } + } + if(length == 2) { + if (d == E) { + _xa+= _speed; + } + if (d == W) { + _xa-= _speed; + } + } + if(length == 1) { + if (d == E) { + _x+= _speed; + } + if (d == W) { + _x-= _speed; + } } @@ -69,12 +463,92 @@ if (_x <= 0) { _x = 0; } - if (_x > 78) { - _x = 78; + if (_xa <= 0) { + _xa = 0; + } + if (_xb <= 0) { + _xb = 0; + } + if (_xc <= 0) { + _xc = 0; + } + if (_xd <= 0) { + _xd = 0; + } + if (_xe <= 0) { + _xe = 0; + } + if (_xf <= 0) { + _xf = 0; + } + if (_xg <= 0) { + _xg = 0; + } + if (_xh <= 0) { + _xh = 0; + } + if (_xi <= 0) { + _xi = 0; + } + if (_xj <= 0) { + _xj = 0; + } + if (_xk <= 0) { + _xk = 0; + } + if (_xl <= 0) { + _xl = 0; + } + if (_xm <= 0) { + _xm = 0; + } + if (_xn <= 0) { + _xn = 0; } - if (_y > 42) { - _y = 42; + if (_x > 81) { + _x = 81; + } + if (_xa > 81) { + _xa = 81; + } + if (_xb > 81) { + _xb = 81; + } + if (_xc > 81) { + _xc = 81; + } + if (_xd > 81) { + _xd = 81; + } + if (_xe > 81) { + _xe = 81; + } + if (_xf > 81) { + _xf = 81; } - + if (_xg > 81) { + _xg = 81; + } + if (_xh > 81) { + _xh = 81; + } + if (_xi > 81) { + _xi = 81; + } + if (_xj > 81) { + _xj = 81; + } + if (_xk > 81) { + _xk = 81; + } + if (_xl > 81) { + _xl = 81; + } + if (_xm > 81) { + _xm = 81; + } + if (_xn > 81) { + _xn = 81; + } }