Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: N5110 SoftPWM mbed
Revision 8:606a488fa720, committed 2016-04-18
- Comitter:
- Nikollao
- Date:
- Mon Apr 18 09:59:32 2016 +0000
- Parent:
- 7:f31a4b4beb91
- Child:
- 9:ce2d9c42edea
- Commit message:
- Improve obstacles level 6
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| main.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Mon Apr 04 12:20:42 2016 +0000
+++ b/main.cpp Mon Apr 18 09:59:32 2016 +0000
@@ -1,4 +1,3 @@
-//Fadia
/**
@file main.cpp
@brief Game implementation
@@ -19,9 +18,9 @@
ticker.attach(&timer_isr,0.1); ///attach ticker with ISR every 0.1 sec
reset = level; ///set reset = level to check later if level has increased
buzzer = 0.5;
- buzzer.period(1/1000);
+ buzzer.period(1/4000);
//buzzer.write(0.5);
-
+
while (1) {
if (g_timer_flag) {
--- a/main.h Mon Apr 04 12:20:42 2016 +0000
+++ b/main.h Mon Apr 18 09:59:32 2016 +0000
@@ -270,15 +270,19 @@
volatile int tries = 0;/*!< counts the number of trials */
volatile int n;/*!< number of pixels overlapping */
-int pixels[84][48];
+//int pixels[84][48];
int reset = 0; /*!< used to save current level of difficulty */
-int objectX = 10;
+int objectX = 0; /*!< used to move obstacles in the x-axis */
-int objectY = 20;
+int objectY = 20; /*!< used to move obstacles in the y-axis */
+
+int state = 0; /*!< controls the direction of the objtacle */
+int countObject = 0;
void enemies()
+
{
/// generate enemies in the screen depending on the level difficulty
@@ -310,16 +314,22 @@
{
///cotrol hero
- if (xPot > 0.5) {
+ if (xPot > 0.60) {
heroX++;
+ }
+ else if (xPot < 0.40){
+ heroX--;
} else {
- heroX--;
+ heroX = heroX;
}
- if (yPot > 0.5) {
+ if (yPot > 0.60) {
heroY--;
+ }
+ else if (yPot < 0.40) {
+ heroY++;
} else {
- heroY++;
+ heroY = heroY;
}
///set x-axis boundaries so hero does not go out of screen
if (heroX > 35) {
@@ -340,6 +350,13 @@
///generate circle shape enemy
lcd.drawCircle(circleX,circleY,4,1);
circleY = circleY + rand() %4 - 2;
+
+ if (circleY <= 10) {
+ circleY = 10;
+ }if (circleY >= 35) {
+ circleY = 35;
+ }
+
circleX++; ///enemy moving towards hero
}
@@ -402,9 +419,20 @@
game_ticker.detach();
break;
} else if (option == 1) {
+
+ lcd.clear();
+ g_button_flag = 0;
+ while(1) {
+ //settings_menu();
+ pc.printf("Modify Settings!");
+ lcd.printString("Lcd Inverse <",0,0);
+ if (g_button_flag) {
- //settings_menu();
- pc.printf("Modify Settings!");
+ lcd.inverseMode();
+ break;
+ }
+ sleep();
+ }
} else {
lcd.turnOff();
@@ -442,7 +470,7 @@
g_button_flag = 0;
level = 0;
- play++;
+ // play++;
lcd.clear();
//main();
}
@@ -465,39 +493,38 @@
lcd.drawRect(74,28,2,2,1);
} else if (level == 3) {
- 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);
- lcd.drawRect(30,15,2,2,1);
- lcd.drawRect(54,15,2,2,1);
- lcd.drawRect(30,28,2,2,1);
- lcd.drawRect(54,28,2,2,1);
+ lcd.drawRect(5,12,2,2,1);
+ lcd.drawRect(79,12,2,2,1);
+ lcd.drawRect(5,30,2,2,1);
+ lcd.drawRect(79,30,2,2,1);
+ lcd.drawRect(28,12,2,2,1);
+ lcd.drawRect(52,12,2,2,1);
+ lcd.drawRect(28,30,2,2,1);
+ lcd.drawRect(52,30,2,2,1);
} else if (level == 4) {
- lcd.drawRect(10 + rand() %4 - 2,15 + rand() &4 -2,2,2,1);
- lcd.drawRect(74 + rand() %4 - 2,15 + rand() %4 - 2,2,2,1);
- lcd.drawRect(10 + rand() %4 - 2,28 + rand() %4 - 2,2,2,1);
- lcd.drawRect(74 + rand() %4 - 2,28 + rand() %4 - 2,2,2,1);
- lcd.drawRect(30 + rand() %4 - 2,15,2,2,1);
- lcd.drawRect(54,15 + rand() %4 - 2,2,2,1);
- lcd.drawRect(30,28 + rand() %4 - 2,2,2,1);
- lcd.drawRect(54 + rand() %4 - 2,28,2,2,1);
- } else if ( level == 5) {
-
- bool state = 0;
- if (objectX == 71) {
+ lcd.drawRect(5 ,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(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);
+ }
+ if (objectX == 0) {
+ state = 0;
+ }
+ else if (objectX == 58) {
state = 1;
- }
- if (objectX == 15) {
- state = 0;
+ } else {
+ state = state;
}
- if (state == 0) {
+ if (state == 0) {
objectX++;
- } else if (state == 1) {
+ } else {
objectX--;
- }
-
+ }
objectY = objectY + rand() %4 - 2;
///keep moving object within boundaries
if (objectY <= 10) {
@@ -506,13 +533,35 @@
if (objectY >= 37) {
objectY = 37;
}
+ if ( level == 5) {
lcd.drawLine(15,10,15,37,1);
lcd.drawLine(71,10,71,37,1);
- lcd.drawRect(10+objectX,objectY,2,2,1);
- } else if (level == 6) {
-
- } else if (level == 7) {
+
+ lcd.drawRect(11+objectX,objectY,2,2,1);
+
+ lcd.drawRect(80,10,2,2,1);
+ lcd.drawRect(5,10,2,2,1);
+ lcd.drawRect(80,20,2,2,1);
+ lcd.drawRect(5,20,2,2,1);
+ lcd.drawRect(80,30,2,2,1);
+ lcd.drawRect(5,30,2,2,1);
+
+ }
+ else if (level == 6) {
+
+ lcd.drawLine(15,10,15,37,1);
+ lcd.drawLine(71,10,71,37,1);
+
+ lcd.drawRect(11+objectX,objectY,2,2,1);
+ lcd.drawRect(80,10,2,2,1);
+ lcd.drawRect(5,10,2,2,1);
+ lcd.drawRect(80,20,2,2,1);
+ lcd.drawRect(5,20,2,2,1);
+ lcd.drawRect(80,30,2,2,1);
+ lcd.drawRect(5,30,2,2,1);
+ }
+ else if (level == 7) {
/*
lcd.drawLine(50,15,30,15,1);