Browse Source

As bolas nao colidem mais entre si para nao perderem speed

capellaresumo 7 years ago
parent
commit
9022f3c12c

+ 27 - 29
Classes/GameScene.cpp

@@ -154,7 +154,7 @@ bool GameScene::onContactBegin(PhysicsContact& contact) {
     auto nodeA = contact.getShapeA()->getBody()->getNode();
     auto nodeB = contact.getShapeB()->getBody()->getNode();
     
-    if (nodeA && nodeB && nodeA->getTag() != nodeB->getTag() && !this->over) {
+    if (nodeA && nodeB && nodeA->getTag() != nodeB->getTag()) {
         //CCLOG("%d %d", nodeB->getTag(), nodeA->getTag());
         
         if (nodeB->getTag() > nodeA->getTag()) {
@@ -178,36 +178,36 @@ bool GameScene::onContactBegin(PhysicsContact& contact) {
         }  else if (nodeB->getTag() == BALL_TAG && nodeA->getTag() == CORE_TAG) {
             ball_core(nodeA, nodeB);
         }  else if (nodeB->getTag() == SAVE_TAG && nodeA->getTag() == RACKET_TAG) {
-            
-            //CCLOG(">>> %d", this->level);
-            
-            Size visibleSize = Director::getInstance()->getVisibleSize();
-            // Salva o nivel!
-            UserDefault *userdata = UserDefault::getInstance();
-            userdata->setIntegerForKey("level", this->level);
-            userdata->setDoubleForKey("time", (double) time(NULL));
-            userdata->flush();
+            if (!over) {
+                Size visibleSize = Director::getInstance()->getVisibleSize();
+                // Salva o nivel!
+                UserDefault *userdata = UserDefault::getInstance();
+                userdata->setIntegerForKey("level", this->level);
+                userdata->setDoubleForKey("time", (double) time(NULL));
+                userdata->flush();
+                auto text = Label::createWithTTF("Level Saved!", "fonts/Marker Felt.ttf", 40);
+                text->setPosition(visibleSize.width/2, visibleSize.height/2);
+                this->addChild(text);
+                text->runAction(FadeOut::create(3));
+            }
             nodeB->removeFromParentAndCleanup(true);
-            auto text = Label::createWithTTF("Level Saved!", "fonts/Marker Felt.ttf", 40);
-            text->setPosition(visibleSize.width/2, visibleSize.height/2);
-            this->addChild(text);
-            text->runAction(FadeOut::create(3));
             
         } else if (nodeB->getTag() == THREE_BALLS_TAG && nodeA->getTag() == RACKET_TAG) {
-
-            Size visibleSize = Director::getInstance()->getVisibleSize();
-            // Salva na "database" o número de bolas na tela
-            auto text = Label::createWithTTF("Triple Balls!", "fonts/Marker Felt.ttf", 40);
-            text->setPosition(visibleSize.width/2, visibleSize.height/2 + 2);
-            this->addChild(text);
-            text->runAction(FadeOut::create(3));
+            if (!over) {
+                Size visibleSize = Director::getInstance()->getVisibleSize();
+                // Salva na "database" o número de bolas na tela
+                auto text = Label::createWithTTF("Triple Balls!", "fonts/Marker Felt.ttf", 40);
+                text->setPosition(visibleSize.width/2, visibleSize.height/2 + 2);
+                this->addChild(text);
+                text->runAction(FadeOut::create(3));
             
-            // cria as bolas e as adiciona no cenário
-            for (int i = ball_count; i < 3; i++, ball_count++) {
-                auto ball = Ball::create();
-                ball->setPosition(nodeB->getPositionX(), RAQUETE_ALTURA+BALL_SIZE);
-                ball->throwBall();
-                this->addChild(ball, 21);
+                // cria as bolas e as adiciona no cenário
+                for (int i = ball_count; i < 3; i++, ball_count++) {
+                    auto ball = Ball::create();
+                    ball->setPosition(nodeB->getPositionX(), RAQUETE_ALTURA+BALL_SIZE);
+                    ball->throwBall();
+                    this->addChild(ball, 21);
+                }
             }
             nodeB->removeFromParentAndCleanup(true);
             
@@ -217,8 +217,6 @@ bool GameScene::onContactBegin(PhysicsContact& contact) {
             nodeB->removeFromParentAndCleanup(true);
         }
 
-    } else {
-        nodeB->removeFromParentAndCleanup(true);
     }
     return true;
 }

BIN
proj.ios_mac/RedCore2.xcodeproj/project.xcworkspace/xcuserdata/capella.xcuserdatad/UserInterfaceState.xcuserstate