Alvaro Cassinelli / Mbed 2 deprecated skinGames_forktest

Dependencies:   mbed

Fork of scoreLight_Advanced by Alvaro Cassinelli

Revision:
35:35af5086ab4f
Parent:
33:43e8bc451ef0
Child:
44:46e25fa1669b
--- a/blobConfig.cpp	Wed Nov 07 14:41:55 2012 +0000
+++ b/blobConfig.cpp	Tue Nov 13 04:40:08 2012 +0000
@@ -42,11 +42,13 @@
             // computeBoundingBox();
            clearConfig();
            for (i=0; i<numblobs ; i++) addOneRigidLoopBouncing();
+           randomizeAllColors();
         break;
         case LORENTZ_SPOTS:
          // computeBoundingBox();
             clearConfig();
             for (i=0; i<numblobs ; i++) addOneRigidLoopLorentz();
+            randomizeAllColors();
         break;
         case FOLLOWING_SPOTS:
          // computeBoundingBox();
@@ -54,7 +56,8 @@
             for (i=0; i<numblobs ; i++) {
                 addOneRigidLoopFollowing(vector2Df(CENTER_AD_MIRROR_X+i*200, CENTER_AD_MIRROR_Y+i*200), vector2Df(11,0));
                 }
-            
+            // randomize colors:
+            randomizeAllColors();
         break;
         case ONE_TRACKING_SPOT:
            clearConfig();
@@ -88,9 +91,11 @@
                                      vector2Df(0,0));
          // addOneRigidTrackingSpot(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y+600), 
           //                           vector2Df(0,0));
-         // (2) one bouncing spot with gravity:
-         addOneRigidLoopBouncingGravity(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y-600), 
-                                 vector2Df(0,0));                      
+         // (2) one or more bouncing spots with gravity:
+         for (i=0; i<numblobs ; i++) {
+            addOneRigidLoopBouncingGravity(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y-600), 
+                                           vector2Df(i*10-5,0));   
+         }                   
 
         break; 
         case RAIN_MODE:
@@ -99,6 +104,7 @@
           for (i=0; i<numblobs ; i++) {
           addOneRigidLoopBouncingGravity(vector2Df(CENTER_AD_MIRROR_X, 10), vector2Df(0,0));   
          }       
+          randomizeAllColors();
         break;
         case FISH_NET_GAME:
         clearConfig();
@@ -114,16 +120,19 @@
         break;
         case PAC_MAN_GAME:
             clearConfig();
-            //(1) add one very slowly slidind-bouncing spot, the PACMAN (number 0 in the config)
+            //(1) add one very slowly slidind-bouncing spot, the PACMAN (number 0 in the config):
            // addOneRigidLoopPacman(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y), vector2Df(20,0));
-           // addOneRigidTrackingSpot(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y), vector2Df(0,0));
+           
+           // note: the pacman behaviour is not so good... for the time being, let's just use a following spot:
             addOneRigidLoopFollowing(vector2Df(CENTER_AD_MIRROR_X, CENTER_AD_MIRROR_Y), vector2Df(10,0));
+            // set the color to red+green:
+            blobArray.back()->setColor(0x06);
+          
+          
+            // (2) Add some initial SPOT_FOLLOWING or SPOT_GHOST spots (the ghosts):
+            addOneRigidLoopGhost(vector2Df(CENTER_AD_MIRROR_X+500, CENTER_AD_MIRROR_Y-500), vector2Df(-5,0));
+            addOneRigidLoopGhost(vector2Df(CENTER_AD_MIRROR_X-500, CENTER_AD_MIRROR_Y-500), vector2Df(5,0));
             
-            // (2) Add some initial SPOT_FOLLOWING or SPOT_GHOST spots (the ghosts):
-            //for (int i=0; i<numBlobs; i++) 
-            //addOneRigidLoopFollowing(vector2Df(CENTER_AD_MIRROR_X-200, CENTER_AD_MIRROR_Y-200), vector2Df(0,0));
-            addOneRigidLoopGhost(vector2Df(CENTER_AD_MIRROR_X+500, CENTER_AD_MIRROR_Y-500), vector2Df(10,0));
-            addOneRigidLoopGhost(vector2Df(CENTER_AD_MIRROR_X-500, CENTER_AD_MIRROR_Y-500), vector2Df(10,0));
         break;
         default:
         break;
@@ -226,8 +235,6 @@
     pBlob->createBlob(blobArray.size(), SPOT_BOUNCING_FACTOR, initpos, initspeed);
     // add this relaxing loop to the present config:
     blobArray.push_back(pBlob);
-
-    randomizeAllColors();
  
     // update auxiliary variable numBlobs (just for easy reference):
     numBlobs=blobArray.size();
@@ -280,7 +287,7 @@
     blobArray.push_back(pBlob);
     
     // random color for Tokyo Designer Week:
-    randomizeAllColors();
+    //randomizeAllColors();
 
     // update auxiliary variable numBlobs (just for easy reference):
     numBlobs=blobArray.size();
@@ -441,7 +448,7 @@
             //(2) loose (meaning spot went outside range):
             if (blobArray[i]->getCenter().y>blobArray[0]->getCenter().y) {
                 blobArray[i]->setPositionSpeed(vector2Df(blobArray[0]->getCenter().x-400+rand()%800, blobArray[0]->getCenter().y-1200), 
-                                                        vector2Df(0, 0));
+                                                        vector2Df(i*10-5, 0));
                 }
             }
         break;