Jahanzeb Ahmed Khan 201375614
Embed:
(wiki syntax)
Show/hide line numbers
body.cpp
00001 #include "body.h" 00002 00003 Body::Body() 00004 { 00005 } 00006 Body::~Body() 00007 { 00008 } 00009 00010 void Body::init() 00011 { 00012 sx0 = 12; 00013 sx1 = 13; 00014 sx2 = 14; 00015 sx3 = 15; 00016 sx4 = 16; 00017 sx5 = 17; 00018 sx6 = 18; 00019 sx8 = 19; 00020 sx9 = 20; 00021 00022 sy0 = 6; 00023 sy1 = 6; 00024 sy2 = 6; 00025 sy3 = 6; 00026 sy4 = 6; 00027 sy5 = 6; 00028 sy6 = 6; 00029 sy7 = 6; 00030 sy8 = 6; 00031 sy9 = 6; 00032 00033 score = 0; 00034 endgame = false; 00035 input_check = Button_right; 00036 } 00037 00038 void Body::game_end(N5110 &lcd){ 00039 if (21 < sx0 < 63){/**If snake hits vertical line*/ 00040 if (sy0 == 24){ 00041 endgame = true; 00042 } 00043 } 00044 if (12 < sy0 < 36){/**if snake hits horizontal line*/ 00045 if (sx0 == 42){ 00046 endgame = true; 00047 } 00048 } 00049 if ((sx0 == sx1 && sy0 == sy1) || (sx0 == sx2 && sy0 == sy2) || (sx0 == sx3 && sy0 == sy3) || (sx0 == sx4 && sy0 == sy4) || (sx0 == sx5 && sy0 == sy5) || (sx0 == sx6 && sy0 == sy6) || (sx0 == sx7 && sy0 == sy7) || (sx0 == sx8 && sy0 == sy8) || (sx0 == sx9 && sy0 == sy9)) 00050 { 00051 endgame = true; 00052 } 00053 } 00054 00055 void Body::visual(N5110 &lcd, Gamepad &pad, Food &food) 00056 { 00057 lcd.clear(); 00058 00059 char buffer[12]; 00060 sprintf(buffer,"Score = %2d", score); 00061 lcd.printString(buffer,0,1); 00062 00063 lcd.setPixel(food.fo_x, food.fo_y, true); 00064 00065 lcd.drawLine(21,24,63,24,1); 00066 lcd.drawLine(42,12,42,36,1); 00067 00068 lcd.setPixel(sx0, sy0, true); 00069 lcd.setPixel(sx1, sy1, true); 00070 lcd.setPixel(sx2, sy2, true); 00071 lcd.setPixel(sx3, sy3, true); 00072 lcd.setPixel(sx4, sy4, true); 00073 lcd.setPixel(sx5, sy5, true); 00074 lcd.setPixel(sx6, sy6, true); 00075 lcd.setPixel(sx7, sy7, true); 00076 lcd.setPixel(sx8, sy8, true); 00077 lcd.setPixel(sx9, sy9, true); 00078 00079 if (endgame == true){ 00080 lcd.clear(); 00081 pad.tone(1500.0,1.0); 00082 00083 lcd.drawRect(10,5,64,38,FILL_TRANSPARENT); 00084 lcd.printString("YOU DIED", 21, 2); 00085 char buffer2[12]; 00086 sprintf(buffer2,"you got %2d", score); 00087 } 00088 00089 lcd.refresh(); 00090 } 00091 00092 void Body::user_input(Gamepad &pad) 00093 { 00094 Input input = input_check; 00095 00096 if(input != Button_left){ 00097 if(pad.A_pressed()){ 00098 input_check = Button_right; 00099 } 00100 } 00101 if(input != Button_right){ 00102 if(pad.Y_pressed()){ 00103 input_check = Button_left; 00104 } 00105 } 00106 if(input != Button_top){ 00107 if(pad.B_pressed()){ 00108 input_check = Button_bottom; 00109 } 00110 } 00111 if(input != Button_bottom){ 00112 if(pad.X_pressed()){ 00113 input_check = Button_top; 00114 } 00115 } 00116 else{ 00117 input_check = input_check; 00118 } 00119 } 00120 00121 bool Body::endgame_check() 00122 { 00123 return endgame; 00124 } 00125 00126 void Body::food_eaten(N5110 &lcd, Gamepad &pad, Food &food) 00127 { 00128 if ((sx0 == food.fo_x) && (sy0 == food.fo_y)) 00129 { 00130 score = score + 1; 00131 food.chng_food = true; 00132 pad.led(1,1); 00133 wait(0.2); 00134 pad.led(2,1); 00135 wait(0.2); 00136 pad.led(3,1); 00137 wait(0.2); 00138 pad.led(4,1); 00139 wait(0.2); 00140 pad.led(5,1); 00141 wait(0.2); 00142 pad.led(6,1); 00143 wait(0.2); 00144 pad.led(1,0); 00145 wait(0.2); 00146 pad.led(2,0); 00147 wait(0.2); 00148 pad.led(3,0); 00149 wait(0.2); 00150 pad.led(4,0); 00151 wait(0.2); 00152 pad.led(5,0); 00153 wait(0.2); 00154 pad.led(6,0); 00155 } 00156 } 00157 00158 int Body::score_display() 00159 { 00160 return score; 00161 } 00162 00163 void Body::movement(){ 00164 if (input_check == Button_top){ 00165 sx9 = sx8; 00166 sx8 = sx7; 00167 sx7 = sx6; 00168 sx6 = sx5; 00169 sx5 = sx4; 00170 sx4 = sx3; 00171 sx3 = sx2; 00172 sx2 = sx1; 00173 sx1 = sx0; 00174 sy9 = sy8; 00175 sy8 = sy7; 00176 sy7 = sy6; 00177 sy6 = sy5; 00178 sy5 = sy4; 00179 sy4 = sy3; 00180 sy2 = sy2; 00181 sy2 = sy1; 00182 sy1 = sy0; 00183 00184 sx0 = sx0; 00185 sy0 = sy0 - 1; 00186 00187 } 00188 if (input_check == Button_right){ 00189 sx9 = sx8; 00190 sx8 = sx7; 00191 sx7 = sx6; 00192 sx6 = sx5; 00193 sx5 = sx4; 00194 sx4 = sx3; 00195 sx3 = sx2; 00196 sx2 = sx1; 00197 sx1 = sx0; 00198 sy9 = sy8; 00199 sy8 = sy7; 00200 sy7 = sy6; 00201 sy6 = sy5; 00202 sy5 = sy4; 00203 sy4 = sy3; 00204 sy2 = sy2; 00205 sy2 = sy1; 00206 sy1 = sy0; 00207 00208 sx0 = sx0 + 1; 00209 sy0 = sy0; 00210 } 00211 if (input_check == Button_bottom){ 00212 sx9 = sx8; 00213 sx8 = sx7; 00214 sx7 = sx6; 00215 sx6 = sx5; 00216 sx5 = sx4; 00217 sx4 = sx3; 00218 sx3 = sx2; 00219 sx2 = sx1; 00220 sx1 = sx0; 00221 sy9 = sy8; 00222 sy8 = sy7; 00223 sy7 = sy6; 00224 sy6 = sy5; 00225 sy5 = sy4; 00226 sy4 = sy3; 00227 sy2 = sy2; 00228 sy2 = sy1; 00229 sy1 = sy0; 00230 00231 sx0 = sx0 + 1; 00232 sy0 = sy0; 00233 } 00234 if (input_check == Button_left){ 00235 sx9 = sx8; 00236 sx8 = sx7; 00237 sx7 = sx6; 00238 sx6 = sx5; 00239 sx5 = sx4; 00240 sx4 = sx3; 00241 sx3 = sx2; 00242 sx2 = sx1; 00243 sx1 = sx0; 00244 sy9 = sy8; 00245 sy8 = sy7; 00246 sy7 = sy6; 00247 sy6 = sy5; 00248 sy5 = sy4; 00249 sy4 = sy3; 00250 sy2 = sy2; 00251 sy2 = sy1; 00252 sy1 = sy0; 00253 00254 sx0 = sx0 + 1; 00255 sy0 = sy0; 00256 } 00257 if (sy0 == 0) 00258 { 00259 sy0 = 41; 00260 } 00261 if (sy0 == 42) 00262 { 00263 sy0 = 1; 00264 } 00265 if (sx0 == 0) 00266 { 00267 sy0 = 83; 00268 } 00269 if (sx0 == 84) 00270 { 00271 sy0 = 1; 00272 } 00273 } 00274 00275 void Body::trail_delete(N5110 &lcd) 00276 { 00277 lcd.setPixel(sx9,sy9,false); 00278 } 00279
Generated on Thu Aug 4 2022 17:12:13 by
1.7.2