My ELEC2645 project. Nikollao Sulollari. 200804685
Dependencies: N5110 SoftPWM mbed
Diff: main.cpp
- Revision:
- 19:70d40dac5ae0
- Parent:
- 18:5405ee7e243b
- Child:
- 20:59aa6189a47d
diff -r 5405ee7e243b -r 70d40dac5ae0 main.cpp --- a/main.cpp Mon May 02 12:01:55 2016 +0000 +++ b/main.cpp Mon May 02 15:08:00 2016 +0000 @@ -47,7 +47,6 @@ pc.printf("heroY = %d , heroX = %d , n = %d \n",heroY, heroX, n); checkOverlap(); updateJoystick(); - //callibrateJoystick(); lcd.refresh(); } sleep(); @@ -121,18 +120,31 @@ if (level == 0) { enemyRect(); - //enemyCircle(); + enemyCircle(); } else if (level == 1) { enemyRect(); - //enemyCircle(); + enemyCircle(); } else if (level == 2) { - + + enemyRocket(); } else if (level == 3) { - + + enemyRect(); + enemyCircle(); + } else if (level == 4) { + + enemyRect(); + enemyCircle(); + } else if (level == 5) { + enemyRocket(); + } else if (level == 6) { + enemyRocket(); + enemyCircle(); } - enemyCircle(); - enemyRect(); + else if (level == 7) { + + } } void enemyRect() @@ -144,11 +156,28 @@ if (rectY == 50) { rectY = 0; } - if (rectX == 75 || rectX == 25) { - rectX = 40+rand()%10 - 5; + if (rectX > 75 || rectX < 25) { + rectX = 40+rand()%6 - 3; } } +void enemyRocket() { + + lcd.drawRect(rectX,rectY,2,7,1); + lcd.drawCircle(rectX+1,rectY+1,2,1); + lcd.drawLine(rectX-2,rectY+2,rectX,rectY-1,1); + lcd.drawLine(rectX+2,rectY+2,rectX,rectY-1,1); + + rectX = rectX + rand()%4 - 2; + rectY++; ///enemy moving towards hero + + if (rectY == 50) { + rectY = 0; + } + if (rectX > 75 || rectX < 10) { + rectX = 40+rand()%6 - 3; + } +} void hero() { ///cotrol hero @@ -255,20 +284,21 @@ } else if (level == 8) { ticker.detach(); + game_ticker.attach(&game_timer_isr,0.2); lcd.clear(); lcd.printString("Well done!",0,0); lcd.refresh(); wait(2); lcd.clear(); - lcd.printString("Play again",0,0); + lcd.printString("Play again!",0,0); lcd.drawCircle(70,4,2,1); lcd.refresh(); g_button_flag = 0; while(1) { - if (g_button_flag) { + if (g_button1_flag) { - g_button_flag = 0; + g_button1_flag = 0; level = 0; // play++; lcd.clear(); @@ -289,17 +319,22 @@ lcd.drawRect(10,15,2,2,1); lcd.drawRect(74,15,2,2,1); - } - else if (level == 1) { - - - } - else if (level == 2) { + } else if (level == 1) { lcd.drawRect(10,15,2,2,1); lcd.drawRect(74,15,2,2,1); lcd.drawRect(10,28,2,2,1); lcd.drawRect(74,28,2,2,1); + } else if (level == 2) { + + lcd.drawCircle(37,25,5,0); + lcd.drawCircle(47,25,5,0); + lcd.drawCircle(42,11,3,1); + lcd.drawCircle(37,25,3,1); + lcd.drawCircle(47,25,3,1); + lcd.drawRect(80,2,2,42,1); + lcd.drawRect(2,2,2,42,1); + } else if (level == 3) { lcd.drawRect(5,12,2,2,1); @@ -312,14 +347,14 @@ lcd.drawRect(52,30,2,2,1); } else if (level == 4) { - lcd.drawRect(5 ,12+ rand() %4 - 2,2,2,1); + lcd.drawRect(5+rand() %4 - 2 ,12+rand() %4 - 2,2,2,1); lcd.drawRect(79 + rand() %4 - 2,12 + rand() %4 - 2,2,2,1); - lcd.drawRect(5+ rand() %4 - 2,30 ,2,2,1); - lcd.drawRect(79 + rand() %4 - 2,30,2,2,1); + lcd.drawRect(5+ rand() %4 - 2,30+rand() %4 - 2 ,2,2,1); + lcd.drawRect(79 + rand() %4 - 2,30+rand() %4 - 2,2,2,1); lcd.drawRect(28 + rand() %4 - 2,12+ rand() %4,2,2,1); - lcd.drawRect(52,12 + rand() %4 - 2,2,2,1); - lcd.drawRect(28,30 + rand() %4 - 2,2,2,1); - lcd.drawRect(52 + rand() %4 - 2,30,2,2,1); + lcd.drawRect(52+rand() %4 - 2,12 + rand() %4 - 2,2,2,1); + lcd.drawRect(28+rand() %4 - 2,30 + rand() %4 - 2,2,2,1); + lcd.drawRect(52 + rand() %4 - 2,30+ rand() %4,2,2,1); } if (objectX == 0) { ///check position of obstacle state = 0; ///assign states to the position of the obstacle @@ -441,7 +476,7 @@ lcd.printString("Settings",0,2); lcd.printString("Exit",0,4); //lcd.drawCircle(70,4,2,1); - + lcd.refresh(); switch (joystick.direction) { ///check the direction of joystick case UP: option--; @@ -689,13 +724,12 @@ for(int i = 40; i < 50; i++) { for (int j = 35; j < 47; j++) { - if (check > 6) { + if (lcd.getPixel(i,j) && check > 6) { check = 6; } } } if (check > 7) { - tries--; //if tries @@ -736,22 +770,27 @@ lcd.refresh(); wait(2); - //ticker.detach(); + ticker.detach(); + game_ticker.attach(&game_timer_isr,0.2); lcd.clear(); - lcd.printString("Play again",0,0); + lcd.printString("Play again!",0,0); lcd.drawCircle(70,4,2,1); lcd.refresh(); g_button_flag = 0; while(1) { - if (g_button_flag) { + if (g_button1_flag) { - g_button_flag = 0; + g_button1_flag = 0; level = 0; tries = 3; fsm_state = 0; led_output=fsm[fsm_state]; lcd.clear(); + heroX = 0; + heroY = 0; + rectY = 0; + circleX = 0; main(); } sleep();