Snake vs Block Game to be run upon K64F.

Dependencies:   mbed

Committer:
AhmedPlaymaker
Date:
Tue Mar 26 18:36:50 2019 +0000
Revision:
8:890b986b16a4
Parent:
7:48ba87cd79b5
Child:
9:d1d79d4ee673
Created the snake completely with animation, of different lengths up-to 15,; the next step would be adding food to increase the length from default value.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AhmedPlaymaker 7:48ba87cd79b5 1 #include "Snake.h"
AhmedPlaymaker 7:48ba87cd79b5 2
AhmedPlaymaker 7:48ba87cd79b5 3 Snake::Snake()
AhmedPlaymaker 7:48ba87cd79b5 4 {
AhmedPlaymaker 7:48ba87cd79b5 5
AhmedPlaymaker 7:48ba87cd79b5 6 }
AhmedPlaymaker 7:48ba87cd79b5 7
AhmedPlaymaker 7:48ba87cd79b5 8 Snake::~Snake()
AhmedPlaymaker 7:48ba87cd79b5 9 {
AhmedPlaymaker 7:48ba87cd79b5 10
AhmedPlaymaker 7:48ba87cd79b5 11 }
AhmedPlaymaker 7:48ba87cd79b5 12
AhmedPlaymaker 7:48ba87cd79b5 13 //The Snake Sprite.
AhmedPlaymaker 8:890b986b16a4 14 int snake_sprite[3][3] = {
AhmedPlaymaker 8:890b986b16a4 15 {0,1,0},
AhmedPlaymaker 8:890b986b16a4 16 {1,0,1},
AhmedPlaymaker 8:890b986b16a4 17 {0,1,0},
AhmedPlaymaker 8:890b986b16a4 18
AhmedPlaymaker 7:48ba87cd79b5 19 };
AhmedPlaymaker 7:48ba87cd79b5 20
AhmedPlaymaker 7:48ba87cd79b5 21 int m = 0; //Variable used to allow a starting location for the player.
AhmedPlaymaker 7:48ba87cd79b5 22
AhmedPlaymaker 7:48ba87cd79b5 23
AhmedPlaymaker 7:48ba87cd79b5 24 void Snake::init()
AhmedPlaymaker 7:48ba87cd79b5 25 {
AhmedPlaymaker 7:48ba87cd79b5 26
AhmedPlaymaker 7:48ba87cd79b5 27 _speed = 0.15;// change this according to the options selected
AhmedPlaymaker 7:48ba87cd79b5 28
AhmedPlaymaker 7:48ba87cd79b5 29 }
AhmedPlaymaker 7:48ba87cd79b5 30
AhmedPlaymaker 7:48ba87cd79b5 31
AhmedPlaymaker 8:890b986b16a4 32 void Snake::draw(N5110 &lcd, int length)
AhmedPlaymaker 7:48ba87cd79b5 33 {
AhmedPlaymaker 7:48ba87cd79b5 34 if(m == 0){
AhmedPlaymaker 7:48ba87cd79b5 35 _x = WIDTH/2; //Spawns player sprite near the middle of the screen.
AhmedPlaymaker 8:890b986b16a4 36 _xa = _x;
AhmedPlaymaker 8:890b986b16a4 37 _xb = _x;
AhmedPlaymaker 8:890b986b16a4 38 _xc = _x;
AhmedPlaymaker 8:890b986b16a4 39 _xd = _x;
AhmedPlaymaker 8:890b986b16a4 40 _xe = _x;
AhmedPlaymaker 8:890b986b16a4 41 _xf = _x;
AhmedPlaymaker 8:890b986b16a4 42 _xg = _x;
AhmedPlaymaker 8:890b986b16a4 43 _xh = _x;
AhmedPlaymaker 8:890b986b16a4 44 _xi = _x;
AhmedPlaymaker 8:890b986b16a4 45 _xj = _x;
AhmedPlaymaker 8:890b986b16a4 46 _xk = _x;
AhmedPlaymaker 8:890b986b16a4 47 _xl = _x;
AhmedPlaymaker 8:890b986b16a4 48 _xm = _x;
AhmedPlaymaker 8:890b986b16a4 49 _xn = _x;
AhmedPlaymaker 7:48ba87cd79b5 50 _y = HEIGHT - 3;
AhmedPlaymaker 7:48ba87cd79b5 51 m = m+1;
AhmedPlaymaker 7:48ba87cd79b5 52 }
AhmedPlaymaker 7:48ba87cd79b5 53 //printf("SPRITE %d %d \n", _x, _y);
AhmedPlaymaker 8:890b986b16a4 54 if(length == 0) {
AhmedPlaymaker 8:890b986b16a4 55 NVIC_SystemReset(); //Software Reset.
AhmedPlaymaker 8:890b986b16a4 56 }
AhmedPlaymaker 8:890b986b16a4 57 if(length == 1) {
AhmedPlaymaker 8:890b986b16a4 58 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 59 }
AhmedPlaymaker 8:890b986b16a4 60 if(length == 2) {
AhmedPlaymaker 8:890b986b16a4 61 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 62 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 63 }
AhmedPlaymaker 8:890b986b16a4 64 if(length == 3) {
AhmedPlaymaker 8:890b986b16a4 65 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 66 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 67 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 68 }
AhmedPlaymaker 8:890b986b16a4 69 if(length == 4) {
AhmedPlaymaker 8:890b986b16a4 70 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 71 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 72 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 73 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 74 }
AhmedPlaymaker 8:890b986b16a4 75 if(length == 5) {
AhmedPlaymaker 8:890b986b16a4 76 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 77 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 78 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 79 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 80 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 81 }
AhmedPlaymaker 8:890b986b16a4 82 if(length == 6) {
AhmedPlaymaker 8:890b986b16a4 83 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 84 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 85 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 86 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 87 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 88 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 89 }
AhmedPlaymaker 8:890b986b16a4 90 if(length == 7) {
AhmedPlaymaker 8:890b986b16a4 91 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 92 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 93 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 94 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 95 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 96 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 97 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 98 }
AhmedPlaymaker 8:890b986b16a4 99 if(length == 8) {
AhmedPlaymaker 8:890b986b16a4 100 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 101 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 102 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 103 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 104 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 105 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 106 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 107 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 108 }
AhmedPlaymaker 8:890b986b16a4 109 if(length == 9) {
AhmedPlaymaker 8:890b986b16a4 110 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 111 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 112 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 113 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 114 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 115 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 116 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 117 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 118 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 119 }
AhmedPlaymaker 8:890b986b16a4 120 if(length == 10) {
AhmedPlaymaker 8:890b986b16a4 121 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 122 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 123 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 124 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 125 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 126 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 127 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 128 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 129 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 130 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 131 }
AhmedPlaymaker 8:890b986b16a4 132 if(length == 11) {
AhmedPlaymaker 8:890b986b16a4 133 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 134 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 135 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 136 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 137 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 138 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 139 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 140 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 141 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 142 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 143 lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 144 }
AhmedPlaymaker 8:890b986b16a4 145 if(length == 12) {
AhmedPlaymaker 8:890b986b16a4 146 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 147 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 148 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 149 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 150 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 151 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 152 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 153 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 154 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 155 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 156 lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 157 lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 158 }
AhmedPlaymaker 8:890b986b16a4 159 if(length == 13) {
AhmedPlaymaker 8:890b986b16a4 160 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 161 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 162 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 163 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 164 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 165 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 166 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 167 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 168 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 169 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 170 lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 171 lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 172 lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 173 }
AhmedPlaymaker 8:890b986b16a4 174 if(length == 14) {
AhmedPlaymaker 8:890b986b16a4 175 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 176 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 177 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 178 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 179 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 180 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 181 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 182 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 183 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 184 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 185 lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 186 lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 187 lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 188 lcd.drawSprite(_xm,_y-39,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 189 }
AhmedPlaymaker 8:890b986b16a4 190 if(length == 15) {
AhmedPlaymaker 8:890b986b16a4 191 lcd.drawSprite(_x,_y,3,3,(int *)snake_sprite); //Function used to draw the sprite.
AhmedPlaymaker 8:890b986b16a4 192 lcd.drawSprite(_xa,_y-3,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 193 lcd.drawSprite(_xb,_y-6,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 194 lcd.drawSprite(_xc,_y-9,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 195 lcd.drawSprite(_xd,_y-12,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 196 lcd.drawSprite(_xe,_y-15,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 197 lcd.drawSprite(_xf,_y-18,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 198 lcd.drawSprite(_xg,_y-21,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 199 lcd.drawSprite(_xh,_y-24,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 200 lcd.drawSprite(_xi,_y-27,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 201 lcd.drawSprite(_xj,_y-30,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 202 lcd.drawSprite(_xk,_y-33,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 203 lcd.drawSprite(_xl,_y-36,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 204 lcd.drawSprite(_xm,_y-39,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 205 lcd.drawSprite(_xn,_y-42,3,3,(int *)snake_sprite);
AhmedPlaymaker 8:890b986b16a4 206 }
AhmedPlaymaker 7:48ba87cd79b5 207 }
AhmedPlaymaker 7:48ba87cd79b5 208
AhmedPlaymaker 7:48ba87cd79b5 209
AhmedPlaymaker 7:48ba87cd79b5 210
AhmedPlaymaker 7:48ba87cd79b5 211 Vector2D Snake::get_pos()
AhmedPlaymaker 7:48ba87cd79b5 212 {
AhmedPlaymaker 7:48ba87cd79b5 213 Vector2D snakepos = {_x,_y}; //Obtains the snake position.
AhmedPlaymaker 7:48ba87cd79b5 214 //printf("snakepos from player = %f %f \n", snakepos.x, snakepos.y);
AhmedPlaymaker 7:48ba87cd79b5 215 return snakepos;
AhmedPlaymaker 7:48ba87cd79b5 216 }
AhmedPlaymaker 7:48ba87cd79b5 217
AhmedPlaymaker 7:48ba87cd79b5 218
AhmedPlaymaker 8:890b986b16a4 219 void Snake::update(Direction d,float mag,int length)
AhmedPlaymaker 7:48ba87cd79b5 220 {
AhmedPlaymaker 8:890b986b16a4 221 _speed = 1; //Speed changes depending on how much you push the joystick.(As Of Now)
AhmedPlaymaker 8:890b986b16a4 222
AhmedPlaymaker 8:890b986b16a4 223 if(length > 1) {
AhmedPlaymaker 8:890b986b16a4 224 if (_x > _xa) {
AhmedPlaymaker 8:890b986b16a4 225 _x-=_speed;
AhmedPlaymaker 8:890b986b16a4 226 }
AhmedPlaymaker 8:890b986b16a4 227 if (_x < _xa) {
AhmedPlaymaker 8:890b986b16a4 228 _x+=_speed;
AhmedPlaymaker 8:890b986b16a4 229 }
AhmedPlaymaker 8:890b986b16a4 230 if(length > 2) {
AhmedPlaymaker 8:890b986b16a4 231 if (_xa > _xb) {
AhmedPlaymaker 8:890b986b16a4 232 _xa-=_speed;
AhmedPlaymaker 8:890b986b16a4 233 }
AhmedPlaymaker 8:890b986b16a4 234 if (_xa < _xb) {
AhmedPlaymaker 8:890b986b16a4 235 _xa+=_speed;
AhmedPlaymaker 8:890b986b16a4 236 }
AhmedPlaymaker 8:890b986b16a4 237 if(length > 3) {
AhmedPlaymaker 8:890b986b16a4 238 if (_xb > _xc) {
AhmedPlaymaker 8:890b986b16a4 239 _xb-=_speed;
AhmedPlaymaker 8:890b986b16a4 240 }
AhmedPlaymaker 8:890b986b16a4 241 if (_xb < _xc) {
AhmedPlaymaker 8:890b986b16a4 242 _xb+=_speed;
AhmedPlaymaker 8:890b986b16a4 243 }
AhmedPlaymaker 8:890b986b16a4 244 if(length > 4) {
AhmedPlaymaker 8:890b986b16a4 245 if (_xc > _xd) {
AhmedPlaymaker 8:890b986b16a4 246 _xc-=_speed;
AhmedPlaymaker 8:890b986b16a4 247 }
AhmedPlaymaker 8:890b986b16a4 248 if (_xc < _xd) {
AhmedPlaymaker 8:890b986b16a4 249 _xc+=_speed;
AhmedPlaymaker 8:890b986b16a4 250 }
AhmedPlaymaker 8:890b986b16a4 251 if(length > 5) {
AhmedPlaymaker 8:890b986b16a4 252 if (_xd > _xe) {
AhmedPlaymaker 8:890b986b16a4 253 _xd-=_speed;
AhmedPlaymaker 8:890b986b16a4 254 }
AhmedPlaymaker 8:890b986b16a4 255 if (_xd < _xe) {
AhmedPlaymaker 8:890b986b16a4 256 _xd+=_speed;
AhmedPlaymaker 8:890b986b16a4 257 }
AhmedPlaymaker 8:890b986b16a4 258 if(length > 6) {
AhmedPlaymaker 8:890b986b16a4 259 if (_xe > _xf) {
AhmedPlaymaker 8:890b986b16a4 260 _xe-=_speed;
AhmedPlaymaker 8:890b986b16a4 261 }
AhmedPlaymaker 8:890b986b16a4 262 if (_xe < _xf) {
AhmedPlaymaker 8:890b986b16a4 263 _xe+=_speed;
AhmedPlaymaker 8:890b986b16a4 264 }
AhmedPlaymaker 8:890b986b16a4 265 if(length > 7) {
AhmedPlaymaker 8:890b986b16a4 266 if (_xf > _xg) {
AhmedPlaymaker 8:890b986b16a4 267 _xf-=_speed;
AhmedPlaymaker 8:890b986b16a4 268 }
AhmedPlaymaker 8:890b986b16a4 269 if (_xf < _xg) {
AhmedPlaymaker 8:890b986b16a4 270 _xf+=_speed;
AhmedPlaymaker 8:890b986b16a4 271 }
AhmedPlaymaker 8:890b986b16a4 272 if(length > 8) {
AhmedPlaymaker 8:890b986b16a4 273 if (_xg > _xh) {
AhmedPlaymaker 8:890b986b16a4 274 _xg-=_speed;
AhmedPlaymaker 8:890b986b16a4 275 }
AhmedPlaymaker 8:890b986b16a4 276 if (_xg < _xh) {
AhmedPlaymaker 8:890b986b16a4 277 _xg+=_speed;
AhmedPlaymaker 8:890b986b16a4 278 }
AhmedPlaymaker 8:890b986b16a4 279 if(length > 9) {
AhmedPlaymaker 8:890b986b16a4 280 if (_xh > _xi) {
AhmedPlaymaker 8:890b986b16a4 281 _xh-=_speed;
AhmedPlaymaker 8:890b986b16a4 282 }
AhmedPlaymaker 8:890b986b16a4 283 if (_xh < _xi) {
AhmedPlaymaker 8:890b986b16a4 284 _xh+=_speed;
AhmedPlaymaker 8:890b986b16a4 285 }
AhmedPlaymaker 8:890b986b16a4 286 if(length > 10) {
AhmedPlaymaker 8:890b986b16a4 287 if (_xi > _xj) {
AhmedPlaymaker 8:890b986b16a4 288 _xi-=_speed;
AhmedPlaymaker 8:890b986b16a4 289 }
AhmedPlaymaker 8:890b986b16a4 290 if (_xi < _xj) {
AhmedPlaymaker 8:890b986b16a4 291 _xi+=_speed;
AhmedPlaymaker 8:890b986b16a4 292 }
AhmedPlaymaker 8:890b986b16a4 293 if(length > 11) {
AhmedPlaymaker 8:890b986b16a4 294 if (_xj > _xk) {
AhmedPlaymaker 8:890b986b16a4 295 _xj-=_speed;
AhmedPlaymaker 8:890b986b16a4 296 }
AhmedPlaymaker 8:890b986b16a4 297 if (_xj < _xk) {
AhmedPlaymaker 8:890b986b16a4 298 _xj+=_speed;
AhmedPlaymaker 8:890b986b16a4 299 }
AhmedPlaymaker 8:890b986b16a4 300 if(length > 12) {
AhmedPlaymaker 8:890b986b16a4 301 if (_xk > _xl) {
AhmedPlaymaker 8:890b986b16a4 302 _xk-=_speed;
AhmedPlaymaker 8:890b986b16a4 303 }
AhmedPlaymaker 8:890b986b16a4 304 if (_xk < _xl) {
AhmedPlaymaker 8:890b986b16a4 305 _xk+=_speed;
AhmedPlaymaker 8:890b986b16a4 306 }
AhmedPlaymaker 8:890b986b16a4 307 if(length > 13) {
AhmedPlaymaker 8:890b986b16a4 308 if (_xl > _xm) {
AhmedPlaymaker 8:890b986b16a4 309 _xl-=_speed;
AhmedPlaymaker 8:890b986b16a4 310 }
AhmedPlaymaker 8:890b986b16a4 311 if (_xl < _xm) {
AhmedPlaymaker 8:890b986b16a4 312 _xl+=_speed;
AhmedPlaymaker 8:890b986b16a4 313 }
AhmedPlaymaker 8:890b986b16a4 314 if(length > 14) {
AhmedPlaymaker 8:890b986b16a4 315 if (_xm > _xn) {
AhmedPlaymaker 8:890b986b16a4 316 _xm-=_speed;
AhmedPlaymaker 8:890b986b16a4 317 }
AhmedPlaymaker 8:890b986b16a4 318 if (_xm < _xn) {
AhmedPlaymaker 8:890b986b16a4 319 _xm+=_speed;
AhmedPlaymaker 8:890b986b16a4 320 }
AhmedPlaymaker 8:890b986b16a4 321 }
AhmedPlaymaker 8:890b986b16a4 322 }
AhmedPlaymaker 8:890b986b16a4 323 }
AhmedPlaymaker 8:890b986b16a4 324 }
AhmedPlaymaker 8:890b986b16a4 325 }
AhmedPlaymaker 8:890b986b16a4 326 }
AhmedPlaymaker 8:890b986b16a4 327 }
AhmedPlaymaker 8:890b986b16a4 328 }
AhmedPlaymaker 8:890b986b16a4 329 }
AhmedPlaymaker 8:890b986b16a4 330 }
AhmedPlaymaker 8:890b986b16a4 331 }
AhmedPlaymaker 8:890b986b16a4 332 }
AhmedPlaymaker 8:890b986b16a4 333 }
AhmedPlaymaker 8:890b986b16a4 334 }
AhmedPlaymaker 7:48ba87cd79b5 335
AhmedPlaymaker 7:48ba87cd79b5 336 // Diagonal speeds are /2 to prevent player from going double the speed.
AhmedPlaymaker 8:890b986b16a4 337 if(length == 15) {
AhmedPlaymaker 8:890b986b16a4 338 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 339 _xn+= _speed;
AhmedPlaymaker 8:890b986b16a4 340 }
AhmedPlaymaker 8:890b986b16a4 341 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 342 _xn-= _speed;
AhmedPlaymaker 8:890b986b16a4 343 }
AhmedPlaymaker 8:890b986b16a4 344 }
AhmedPlaymaker 8:890b986b16a4 345 if(length == 14) {
AhmedPlaymaker 8:890b986b16a4 346 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 347 _xm+= _speed;
AhmedPlaymaker 8:890b986b16a4 348 }
AhmedPlaymaker 8:890b986b16a4 349 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 350 _xm-= _speed;
AhmedPlaymaker 8:890b986b16a4 351 }
AhmedPlaymaker 8:890b986b16a4 352 }
AhmedPlaymaker 8:890b986b16a4 353 if(length == 13) {
AhmedPlaymaker 8:890b986b16a4 354 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 355 _xl+= _speed;
AhmedPlaymaker 8:890b986b16a4 356 }
AhmedPlaymaker 8:890b986b16a4 357 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 358 _xl-= _speed;
AhmedPlaymaker 8:890b986b16a4 359 }
AhmedPlaymaker 8:890b986b16a4 360 }
AhmedPlaymaker 8:890b986b16a4 361 if(length == 12) {
AhmedPlaymaker 8:890b986b16a4 362 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 363 _xk+= _speed;
AhmedPlaymaker 8:890b986b16a4 364 }
AhmedPlaymaker 8:890b986b16a4 365 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 366 _xk-= _speed;
AhmedPlaymaker 8:890b986b16a4 367 }
AhmedPlaymaker 8:890b986b16a4 368 }
AhmedPlaymaker 8:890b986b16a4 369 if(length == 11) {
AhmedPlaymaker 8:890b986b16a4 370 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 371 _xj+= _speed;
AhmedPlaymaker 8:890b986b16a4 372 }
AhmedPlaymaker 8:890b986b16a4 373 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 374 _xj-= _speed;
AhmedPlaymaker 8:890b986b16a4 375 }
AhmedPlaymaker 8:890b986b16a4 376 }
AhmedPlaymaker 8:890b986b16a4 377 if(length == 10) {
AhmedPlaymaker 8:890b986b16a4 378 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 379 _xi+= _speed;
AhmedPlaymaker 8:890b986b16a4 380 }
AhmedPlaymaker 8:890b986b16a4 381 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 382 _xi-= _speed;
AhmedPlaymaker 8:890b986b16a4 383 }
AhmedPlaymaker 8:890b986b16a4 384 }
AhmedPlaymaker 8:890b986b16a4 385 if(length == 9) {
AhmedPlaymaker 8:890b986b16a4 386 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 387 _xh+= _speed;
AhmedPlaymaker 8:890b986b16a4 388 }
AhmedPlaymaker 8:890b986b16a4 389 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 390 _xh-= _speed;
AhmedPlaymaker 8:890b986b16a4 391 }
AhmedPlaymaker 7:48ba87cd79b5 392 }
AhmedPlaymaker 8:890b986b16a4 393 if(length == 8) {
AhmedPlaymaker 8:890b986b16a4 394 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 395 _xg+= _speed;
AhmedPlaymaker 8:890b986b16a4 396 }
AhmedPlaymaker 8:890b986b16a4 397 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 398 _xg-= _speed;
AhmedPlaymaker 8:890b986b16a4 399 }
AhmedPlaymaker 8:890b986b16a4 400 }
AhmedPlaymaker 8:890b986b16a4 401 if(length == 7) {
AhmedPlaymaker 8:890b986b16a4 402 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 403 _xf+= _speed;
AhmedPlaymaker 8:890b986b16a4 404 }
AhmedPlaymaker 8:890b986b16a4 405 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 406 _xf-= _speed;
AhmedPlaymaker 8:890b986b16a4 407 }
AhmedPlaymaker 8:890b986b16a4 408 }
AhmedPlaymaker 8:890b986b16a4 409 if(length == 6) {
AhmedPlaymaker 8:890b986b16a4 410 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 411 _xe+= _speed;
AhmedPlaymaker 8:890b986b16a4 412 }
AhmedPlaymaker 8:890b986b16a4 413 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 414 _xe-= _speed;
AhmedPlaymaker 8:890b986b16a4 415 }
AhmedPlaymaker 8:890b986b16a4 416 }
AhmedPlaymaker 8:890b986b16a4 417 if(length == 5) {
AhmedPlaymaker 8:890b986b16a4 418 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 419 _xd+= _speed;
AhmedPlaymaker 8:890b986b16a4 420 }
AhmedPlaymaker 8:890b986b16a4 421 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 422 _xd-= _speed;
AhmedPlaymaker 8:890b986b16a4 423 }
AhmedPlaymaker 8:890b986b16a4 424 }
AhmedPlaymaker 8:890b986b16a4 425 if(length == 4) {
AhmedPlaymaker 8:890b986b16a4 426 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 427 _xc+= _speed;
AhmedPlaymaker 8:890b986b16a4 428 }
AhmedPlaymaker 8:890b986b16a4 429 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 430 _xc-= _speed;
AhmedPlaymaker 8:890b986b16a4 431 }
AhmedPlaymaker 8:890b986b16a4 432 }
AhmedPlaymaker 8:890b986b16a4 433 if(length == 3) {
AhmedPlaymaker 8:890b986b16a4 434 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 435 _xb+= _speed;
AhmedPlaymaker 8:890b986b16a4 436 }
AhmedPlaymaker 8:890b986b16a4 437 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 438 _xb-= _speed;
AhmedPlaymaker 8:890b986b16a4 439 }
AhmedPlaymaker 8:890b986b16a4 440 }
AhmedPlaymaker 8:890b986b16a4 441 if(length == 2) {
AhmedPlaymaker 8:890b986b16a4 442 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 443 _xa+= _speed;
AhmedPlaymaker 8:890b986b16a4 444 }
AhmedPlaymaker 8:890b986b16a4 445 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 446 _xa-= _speed;
AhmedPlaymaker 8:890b986b16a4 447 }
AhmedPlaymaker 8:890b986b16a4 448 }
AhmedPlaymaker 8:890b986b16a4 449 if(length == 1) {
AhmedPlaymaker 8:890b986b16a4 450 if (d == E) {
AhmedPlaymaker 8:890b986b16a4 451 _x+= _speed;
AhmedPlaymaker 8:890b986b16a4 452 }
AhmedPlaymaker 8:890b986b16a4 453 if (d == W) {
AhmedPlaymaker 8:890b986b16a4 454 _x-= _speed;
AhmedPlaymaker 8:890b986b16a4 455 }
AhmedPlaymaker 7:48ba87cd79b5 456 }
AhmedPlaymaker 7:48ba87cd79b5 457
AhmedPlaymaker 7:48ba87cd79b5 458
AhmedPlaymaker 7:48ba87cd79b5 459 //Limits set so that the sprite does not travel off the screen.
AhmedPlaymaker 7:48ba87cd79b5 460 if (_y <= 0) {
AhmedPlaymaker 7:48ba87cd79b5 461 _y = 0;
AhmedPlaymaker 7:48ba87cd79b5 462 }
AhmedPlaymaker 7:48ba87cd79b5 463 if (_x <= 0) {
AhmedPlaymaker 7:48ba87cd79b5 464 _x = 0;
AhmedPlaymaker 7:48ba87cd79b5 465 }
AhmedPlaymaker 8:890b986b16a4 466 if (_xa <= 0) {
AhmedPlaymaker 8:890b986b16a4 467 _xa = 0;
AhmedPlaymaker 8:890b986b16a4 468 }
AhmedPlaymaker 8:890b986b16a4 469 if (_xb <= 0) {
AhmedPlaymaker 8:890b986b16a4 470 _xb = 0;
AhmedPlaymaker 8:890b986b16a4 471 }
AhmedPlaymaker 8:890b986b16a4 472 if (_xc <= 0) {
AhmedPlaymaker 8:890b986b16a4 473 _xc = 0;
AhmedPlaymaker 8:890b986b16a4 474 }
AhmedPlaymaker 8:890b986b16a4 475 if (_xd <= 0) {
AhmedPlaymaker 8:890b986b16a4 476 _xd = 0;
AhmedPlaymaker 8:890b986b16a4 477 }
AhmedPlaymaker 8:890b986b16a4 478 if (_xe <= 0) {
AhmedPlaymaker 8:890b986b16a4 479 _xe = 0;
AhmedPlaymaker 8:890b986b16a4 480 }
AhmedPlaymaker 8:890b986b16a4 481 if (_xf <= 0) {
AhmedPlaymaker 8:890b986b16a4 482 _xf = 0;
AhmedPlaymaker 8:890b986b16a4 483 }
AhmedPlaymaker 8:890b986b16a4 484 if (_xg <= 0) {
AhmedPlaymaker 8:890b986b16a4 485 _xg = 0;
AhmedPlaymaker 8:890b986b16a4 486 }
AhmedPlaymaker 8:890b986b16a4 487 if (_xh <= 0) {
AhmedPlaymaker 8:890b986b16a4 488 _xh = 0;
AhmedPlaymaker 8:890b986b16a4 489 }
AhmedPlaymaker 8:890b986b16a4 490 if (_xi <= 0) {
AhmedPlaymaker 8:890b986b16a4 491 _xi = 0;
AhmedPlaymaker 8:890b986b16a4 492 }
AhmedPlaymaker 8:890b986b16a4 493 if (_xj <= 0) {
AhmedPlaymaker 8:890b986b16a4 494 _xj = 0;
AhmedPlaymaker 8:890b986b16a4 495 }
AhmedPlaymaker 8:890b986b16a4 496 if (_xk <= 0) {
AhmedPlaymaker 8:890b986b16a4 497 _xk = 0;
AhmedPlaymaker 8:890b986b16a4 498 }
AhmedPlaymaker 8:890b986b16a4 499 if (_xl <= 0) {
AhmedPlaymaker 8:890b986b16a4 500 _xl = 0;
AhmedPlaymaker 8:890b986b16a4 501 }
AhmedPlaymaker 8:890b986b16a4 502 if (_xm <= 0) {
AhmedPlaymaker 8:890b986b16a4 503 _xm = 0;
AhmedPlaymaker 8:890b986b16a4 504 }
AhmedPlaymaker 8:890b986b16a4 505 if (_xn <= 0) {
AhmedPlaymaker 8:890b986b16a4 506 _xn = 0;
AhmedPlaymaker 7:48ba87cd79b5 507 }
AhmedPlaymaker 8:890b986b16a4 508 if (_x > 81) {
AhmedPlaymaker 8:890b986b16a4 509 _x = 81;
AhmedPlaymaker 8:890b986b16a4 510 }
AhmedPlaymaker 8:890b986b16a4 511 if (_xa > 81) {
AhmedPlaymaker 8:890b986b16a4 512 _xa = 81;
AhmedPlaymaker 8:890b986b16a4 513 }
AhmedPlaymaker 8:890b986b16a4 514 if (_xb > 81) {
AhmedPlaymaker 8:890b986b16a4 515 _xb = 81;
AhmedPlaymaker 8:890b986b16a4 516 }
AhmedPlaymaker 8:890b986b16a4 517 if (_xc > 81) {
AhmedPlaymaker 8:890b986b16a4 518 _xc = 81;
AhmedPlaymaker 8:890b986b16a4 519 }
AhmedPlaymaker 8:890b986b16a4 520 if (_xd > 81) {
AhmedPlaymaker 8:890b986b16a4 521 _xd = 81;
AhmedPlaymaker 8:890b986b16a4 522 }
AhmedPlaymaker 8:890b986b16a4 523 if (_xe > 81) {
AhmedPlaymaker 8:890b986b16a4 524 _xe = 81;
AhmedPlaymaker 8:890b986b16a4 525 }
AhmedPlaymaker 8:890b986b16a4 526 if (_xf > 81) {
AhmedPlaymaker 8:890b986b16a4 527 _xf = 81;
AhmedPlaymaker 7:48ba87cd79b5 528 }
AhmedPlaymaker 8:890b986b16a4 529 if (_xg > 81) {
AhmedPlaymaker 8:890b986b16a4 530 _xg = 81;
AhmedPlaymaker 8:890b986b16a4 531 }
AhmedPlaymaker 8:890b986b16a4 532 if (_xh > 81) {
AhmedPlaymaker 8:890b986b16a4 533 _xh = 81;
AhmedPlaymaker 8:890b986b16a4 534 }
AhmedPlaymaker 8:890b986b16a4 535 if (_xi > 81) {
AhmedPlaymaker 8:890b986b16a4 536 _xi = 81;
AhmedPlaymaker 8:890b986b16a4 537 }
AhmedPlaymaker 8:890b986b16a4 538 if (_xj > 81) {
AhmedPlaymaker 8:890b986b16a4 539 _xj = 81;
AhmedPlaymaker 8:890b986b16a4 540 }
AhmedPlaymaker 8:890b986b16a4 541 if (_xk > 81) {
AhmedPlaymaker 8:890b986b16a4 542 _xk = 81;
AhmedPlaymaker 8:890b986b16a4 543 }
AhmedPlaymaker 8:890b986b16a4 544 if (_xl > 81) {
AhmedPlaymaker 8:890b986b16a4 545 _xl = 81;
AhmedPlaymaker 8:890b986b16a4 546 }
AhmedPlaymaker 8:890b986b16a4 547 if (_xm > 81) {
AhmedPlaymaker 8:890b986b16a4 548 _xm = 81;
AhmedPlaymaker 8:890b986b16a4 549 }
AhmedPlaymaker 8:890b986b16a4 550 if (_xn > 81) {
AhmedPlaymaker 8:890b986b16a4 551 _xn = 81;
AhmedPlaymaker 8:890b986b16a4 552 }
AhmedPlaymaker 7:48ba87cd79b5 553 }
AhmedPlaymaker 7:48ba87cd79b5 554