Ejemplo n.º 1
0
bool PlayerComponent::onContactBegin(PhysicsContact& contact)
{
	if (!is_endGame)
	{
		PhysicsBody *a = contact.getShapeB()->getBody();

		if ((a->getCollisionBitmask() == OBSTACLE_ID) || (a->getCollisionBitmask() == SPIKESBORDER_ID))
		{
			is_onTouch = false;
			is_fall = false;
			is_endGame = true;

			// display 'dialog box'
			this->getOwner()->addChild(MyDialogBox::create(
				{
					Label::create("Your Score:", "Calibri", 30),
					Label::create(StringUtils::toString(((ScoreCounterComponent*)this->getOwner()->getComponent(SCORECOUNTER_NAME))->getScore()), "Calibri", 120)
				},
				{
					DialogBoxButton("TRY AGAIN", TextHAlignment::LEFT, CC_CALLBACK_1(GameScene::goToGameScene, ((GameScene*)this->getOwner()))),
					DialogBoxButton("BACK TO\n MAIN MENU", TextHAlignment::RIGHT, CC_CALLBACK_1(GameScene::goToMainMenuScene, ((GameScene*)this->getOwner())))
				}
			), 10);
		}
	}

	return false;
}
Ejemplo n.º 2
0
bool GameScene::onContactBegin(cocos2d::PhysicsContact &contact) {
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	if ( (SNAKE_COLLISION_BITMASK == a->getCollisionBitmask() && FOOD_COLLISION_BITMASK == b->getCollisionBitmask()) ||
		(SNAKE_COLLISION_BITMASK == b->getCollisionBitmask() && FOOD_COLLISION_BITMASK == a->getCollisionBitmask()) ) {
		srand(time(NULL));
		auto random = rand() % 370 + 30;
		auto random2 = rand() % 270 + 30;
		auto moveTo = MoveTo::create(0, Vec2(random, random2));
		food->runAction(moveTo);

		int tempX = snakeParts.back()->getPositionX();
		int tempY = snakeParts.back()->getPositionY();
		Sprite* tempSprite = Sprite::create("snake.png");
		switch (direction) {
		case LEFT:
			tempSprite->setPosition(tempX + 10, tempY);
			break;
		case RIGHT:
			tempSprite->setPosition(tempX - 10, tempY);
			break;
		case UP:
			tempSprite->setPosition(tempX, tempY + 10);
			break;
		case DOWN:
			tempSprite->setPosition(tempX, tempY - 10);
			break;
		}

		this->addChild(tempSprite);
		snakeParts.push_back(tempSprite);
	}
	return true;
}
Ejemplo n.º 3
0
void LevelThree::onContactSeperate(cocos2d::PhysicsContact &contact)
{
	PhysicsBody* a = contact.getShapeA()->getBody();
	PhysicsBody* b = contact.getShapeB()->getBody();

	if (1 == a->getCollisionBitmask() || 1 == b->getCollisionBitmask())
	{

	}
}
Ejemplo n.º 4
0
bool LevelThree::onContactPreSolve(cocos2d::PhysicsContact &contact, cocos2d::PhysicsContactPreSolve& solve)
{
	PhysicsBody* a = contact.getShapeA()->getBody();
	PhysicsBody* b = contact.getShapeB()->getBody();

	if (1 == a->getCollisionBitmask() || 1 == b->getCollisionBitmask())
	{
		solve.setRestitution(0);
	}

	return true;
}
Ejemplo n.º 5
0
bool HelloWorld::onContactBegin(cocos2d::PhysicsContact &contact) {
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	if ((1 == a->getCollisionBitmask() && 2 == b->getCollisionBitmask()) || (2 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())) {
		auto spriteA = (Sprite*)a->getNode();
		auto spriteB = (Sprite*)b->getNode();
		if (2 == b->getCollisionBitmask()) {
			this->removeChild(spriteB, true);
			score++;
		} else if (2 == a->getCollisionBitmask()) {
			this->removeChild(spriteA, true);
			score++;
		}
	}
	return true;
}
Ejemplo n.º 6
0
bool GameScene::onContactBegin( cocos2d::PhysicsContact &contact )
{
    PhysicsBody *a = contact.getShapeA()->getBody();
    PhysicsBody *b = contact.getShapeB()->getBody();
    
    if ( ( BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == b->getCollisionBitmask() ) ||
        ( BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == a->getCollisionBitmask() ) )
    {
        CCLOG("a :%i", a->getCollisionBitmask());
        CCLOG("b: %i", b->getCollisionBitmask() );
        CCLOG("Score: %i", score );
        CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Sounds/Hit.mp3");
        auto scene = GameOverScene::createScene( score );
        
        Director::getInstance()->replaceScene(TransitionFade::create( TRANSITION_TIME, scene ) );

    }
    else if ( ( BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && POINT_COLLISION_BITMASK == b->getCollisionBitmask() ) ||
             ( BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && POINT_COLLISION_BITMASK == a->getCollisionBitmask() ) )
    {
        CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Sounds/Point.mp3");
        
        score++;
        __String *tempScore = __String::createWithFormat( "%i", score );
        scoreLabel->setString( tempScore->getCString() );

    }
    
    return true;
}
Ejemplo n.º 7
0
bool GameScene::onContactBegin(cocos2d::PhysicsContact & contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	if ((BALL_COLLISION_BITMASK == a->getCollisionBitmask() && (BRICK_COLLISION_BITMASK) == b->getCollisionBitmask()) ||
		(BALL_COLLISION_BITMASK == b->getCollisionBitmask() && (BRICK_COLLISION_BITMASK) == a->getCollisionBitmask()))
	{
		
		auto bricky = b->getNode();
		this->removeChild(bricky);

		score++;
		__String *tempScore = __String::createWithFormat( "%i", score );
        scoreLabel->setString( tempScore->getCString( ) );
		if (score == 50)
		{
			auto scene = GameOverScene::createScene(score);

			Director::getInstance()->replaceScene(TransitionFade::create(TRANSITION_TIME, scene));
		}
	}
	return true;
}
Ejemplo n.º 8
0
bool GameScene::onContactBegin( cocos2d::PhysicsContact &contact )
{
	if(gameState == 1)
	{
		PhysicsBody *a = contact.getShapeA()->getBody();
		PhysicsBody *b = contact.getShapeB()->getBody();

		if ((BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == b->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == a->getCollisionBitmask()))
		{
			hit();
		}
	}

	return true;
}
Ejemplo n.º 9
0
bool CGameLayer::onContactBegin(cocos2d::PhysicsContact &contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	contact.getShapeA()->getTag();
	if (((MASK_BALL == a->getCollisionBitmask()) &&
		(BORDER_CONTACT_BITMASK == b->getCollisionBitmask())) ||
		((MASK_BALL == b->getCollisionBitmask()) &&
			(BORDER_CONTACT_BITMASK == a->getCollisionBitmask())))
	{
		if (m_startBallMovement)
		{
			--g_gameState->m_life;
			this->removeChildByTag(TAG_BALL, true);
			m_ball.erase(m_ball.begin());
			CBall *_ball = new (std::nothrow) CBall();
			_ball->init(this, g_gameState->m_acc * g_gameState->m_level, m_player->GetPosition());
			//this->addChild(_ball);
			m_ball.push_back(_ball);
			m_startBallMovement = false;
		}
		return true;
	}

	if (((MASK_BALL == a->getCollisionBitmask()) &&
		(MASK_BLOCK == b->getCollisionBitmask())) ||
		((MASK_BALL == b->getCollisionBitmask()) &&
			(MASK_BLOCK == a->getCollisionBitmask())))
	{
		int pTag;
		if ((MASK_BALL == a->getCollisionBitmask()) && (MASK_BLOCK == b->getCollisionBitmask()))
		{
			pTag = b->getNode()->getTag();
		}
		else
		{
			pTag = a->getNode()->getTag();
		}

		int i = 0;
		for (auto it = m_blocks.begin(); it != m_blocks.end(); ++it)
		{
			if (pTag == m_blocks[i]->getTag())
			{
				playerScore();
				m_blocks[i]->del(this);
				it = m_blocks.erase(it);
				--it;
			}
			++i;
		}
		return true;
	}
	else if ((a->getCollisionBitmask() == MASK_BALL && MASK_RACKET == b->getCollisionBitmask()) || 
		(b->getCollisionBitmask() == MASK_BALL && MASK_RACKET == a->getCollisionBitmask()))
	{
		return true;
	}
	return false;
}
bool GameScene::setHit(cocos2d::PhysicsContact &contact)
{

	if (GameManager::sharedGameManager()->isGameLive == true)
	{

		PhysicsBody *a = contact.getShapeA()->getBody();
		PhysicsBody *b = contact.getShapeB()->getBody();

		float* v = new float[2];
		v[0] = a->getVelocity().length(); // Created By An Unknown Source, Via Stack OverFlow
		v[1] = b->getVelocity().length(); // Created By An Unknown Source, Via Stack OverFlow

		contact.setData(v);


		if ((1 == a->getCollisionBitmask() && 2 == b->getCollisionBitmask()) || (2 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask()))// BACK TO FRONT FOR NOW
		{
			bool hit = true;
		}

		else
		{
			bool hit = false;
		}

		if (hit = true)
		{

			if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
			{
				Ball::sharedBall()->AddToDampening(5000.0f);
				SoundManager::sharedSoundManager()->PlaySoundEffect("ballRebound.mp3", false, 1.0f, 1.0f, 1.0f);
			}

			if ((a->getCollisionBitmask() == Brick_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Brick_Bitmask))
			{
				Ball::sharedBall()->AddToDampening(5000.0f);
				GameManager::sharedGameManager()->AddToScore(1);
				this->removeChild(contact.getShapeB()->getBody()->getNode());

				Ball::sharedBall()->AddToAcceleration(5000);
				//ScoreLabel->setString(StringUtils::format("%d", GameManager::sharedGameManager()->GetScore()));

				Vec2 first = contact.getShapeA()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));

				x = first.x;
				y = first.y;

				this->schedule(schedule_selector(GameScene::SetPowerUp));

				//level = 50;
				if (level == 1)
				{
					number = number + 1;
					CCLOG("number = %i", number);

					brick.SetLevel(level);
					//if (number == 5)
					//{
					// CCLOG("level 2");
					// //level = 2;
					// this->removeChild(contact.getShapeA()->getBody()->getNode());
					//this->schedule(schedule_selector(GameScene::SetBrick));
					//this->schedule(schedule_selector(GameScene::SetBall));
					//}
				}

				else if (level == 2)
				{
					number = number + 1;
					brick.SetLevel(level);
					/*if (number == 5)
					{
					level = 3;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
					}*/

				}

				else if (level == 3)
				{
					number = number + 1;
					brick.SetLevel(level);
					/*if (number == 5)
					{
					level = 4;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
					}*/
				}

				else if (level == 4)
				{
					number = number + 1;
					brick.SetLevel(level);
					/*if (number == 5)
					{
					level = 5;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
					}*/
				}
				else if (level == 5)
				{
					number = number + 1;
					brick.SetLevel(level);
				}
			}
			//LIFE
			if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == LiveUp_Bitmask) || (a->getCollisionBitmask() == LiveUp_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
			{
				GameManager::sharedGameManager()->AddToLives(1);

				this->removeChild(contact.getShapeA()->getBody()->getNode());


			}
			//TWO
			if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == TwoSplit_Bitmask) || (a->getCollisionBitmask() == TwoSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
			{

				this->removeChild(contact.getShapeA()->getBody()->getNode());

				Vec2 BallPos = contact.getShapeB()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));
				xb = BallPos.x;
				yb = BallPos.y;

				balls = balls + 2;
				ba = ba + 2;

				CCLOG("Balls pu:%i", balls);
				this->schedule(schedule_selector(GameScene::SetBall));
			}
			//THREE
			if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == ThreeSplit_Bitmask) || (a->getCollisionBitmask() == ThreeSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());

				Vec2 BallPos = contact.getShapeB()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));
				xb = BallPos.x;
				yb = BallPos.y;

				balls = balls + 3;
				ba = ba + 3;
				this->schedule(schedule_selector(GameScene::SetBall));

			}
			//FOUR
			if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == NineSplit_Bitmask) || (a->getCollisionBitmask() == NineSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());

				Vec2 BallPos = contact.getShapeB()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));
				xb = BallPos.x;
				yb = BallPos.y;

				balls = balls + 8;
				ba = ba + 8;
				this->schedule(schedule_selector(GameScene::SetBall));
			}

			if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
			{
				
				CCLOG("Balls enter:%i", balls);
				this->lives = GameManager::sharedGameManager()->GetLives();
				if (balls <= 1 && lives > 0)
				{
					GameManager::sharedGameManager()->AddToLives(-1);
					this->schedule(schedule_selector(GameScene::SetBall));
					balls = balls + 1;
					ba = ba + 1;

				}

				else if (balls <= 1 && lives <= 0)
				{
					GameManager::sharedGameManager()->AddToLives(-1);
				}

				if (balls > 1 && lives > 0)
				{
					
					balls = balls - 1;
					CCLOG("Balls return:%i", balls);
				}

				if (lives <= 0)
				{
					/*auto scene = HelloWorld::createScene();
					Director::getInstance()->replaceScene(TransitionFade::create(Transition_Length, scene));*/

					this->GameOver();
				}
				this->removeChild(contact.getShapeA()->getBody()->getNode());

			}

			if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == LiveUp_Bitmask) || (a->getCollisionBitmask() == LiveUp_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());
			}

			if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == TwoSplit_Bitmask) || (a->getCollisionBitmask() == TwoSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());

			}

			if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == ThreeSplit_Bitmask) || (a->getCollisionBitmask() == ThreeSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());
			}

			if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == NineSplit_Bitmask) || (a->getCollisionBitmask() == NineSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
			{
				this->removeChild(contact.getShapeA()->getBody()->getNode());
			}
		}
	}
	return true;
}
Ejemplo n.º 11
0
void LevelThree::onContactPostSolve(cocos2d::PhysicsContact &contact, const cocos2d::PhysicsContactPostSolve& solve)
{
	PhysicsBody* a = contact.getShapeA()->getBody();
	PhysicsBody* b = contact.getShapeB()->getBody();

	if (1 == a->getCollisionBitmask() && 21 == b->getCollisionBitmask())
	{
		this->removeAllChildren();
		LevelThree::GoToLevel4();
		slingshot = true;
	}
	else if (21 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
	{
		this->removeAllChildren();
		LevelThree::GoToLevel4();
		slingshot = true;
	}
	else
	{
		if (1 == a->getCollisionBitmask() && 9 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (9 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 10 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (10 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 11 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (11 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 12 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (12 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 13 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (13 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 14 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (14 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 15 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (15 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 16 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (16 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 17 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (17 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 18 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		else if (18 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			LevelThree::GoToGameOverScene();
			slingshot = false;
		}
		if (1 == a->getCollisionBitmask() && 2 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (2 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		if (1 == a->getCollisionBitmask() && 3 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (3 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		if (1 == a->getCollisionBitmask() && 4 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (4 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		if (1 == a->getCollisionBitmask() && 6 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (6 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		if (1 == a->getCollisionBitmask() && 7 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (7 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		if (1 == a->getCollisionBitmask() && 8 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
		else if (8 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask())
		{
			player->getPhysicsBody()->setVelocity(Vec2(0.0f, 0.0f));
			slingshot = true;
		}
	}
}
Ejemplo n.º 12
0
bool GameSceneQuattro::onContactBegin(cocos2d::PhysicsContact &contact)
{
	cocos2d::log("GameSceneQuattro::onContactBegin   ....... inizio   ");
    PhysicsBody *a = contact.getShapeA()->getBody();
    PhysicsBody *b = contact.getShapeB()->getBody();


    PhysicsBody *pallinaBody = nullptr ;
    if ( ! (3 == a->getCollisionBitmask() && 3 == b->getCollisionBitmask())){
			if (  3 == a->getCollisionBitmask() )
			   {
				  // CCLOG( "GameSceneQuattro::onContactBegin COLLISION HAS OCCURED" );
				   pallinaBody = contact.getShapeA()->getBody();
			   }

			if (   3 == b->getCollisionBitmask() )
			   {
					pallinaBody = contact.getShapeB()->getBody();
			   }

         if(pallinaBody){


        	 _emitter->setPosition(pallinaBody->getNode()->getPosition());
        	 _emitter->resetSystem();
        	 _emitter->setDuration(0.5);

			//prendo tag
			  if (12 == pallinaBody->getTag()){
			        	  cocos2d::log("GameSceneQuattro::onContactBegin   colpita pallina 2  ");
                    //deve variare la y
			        	 // pallinaBody->applyForce( Vect(-50, -220) );
                         pallinaBody->setVelocity(Vec2(randomValueTra(900,900),
                        		 randomValueTra(0,500)));
			    }
			  if (13 == pallinaBody->getTag()){
						        	  cocos2d::log("GameSceneQuattro::onContactBegin  colpita pallina 3   ");

                  pallinaBody->setVelocity(Vec2(randomValueTra(900,1900),
                		  randomValueTra(0,800)));
				}
			  if (14 == pallinaBody->getTag()){
			 						        	  cocos2d::log("GameSceneQuattro::onContactBegin  colpita pallina 4   ");

                  pallinaBody->setVelocity(Vec2(randomValueTra(900,1900),
                		  randomValueTra(0,800)));

			 				}
			  if (15 == pallinaBody->getTag()){
			 						        	  cocos2d::log("GameSceneQuattro::onContactBegin   colpita pallina 5  ");

                  pallinaBody->setVelocity(Vec2(randomValueTra(900,1900),
                		  randomValueTra(-400,800)));
			 				}
           }
        }


          if (PIETRA_TAG == a->getTag()){
        	//  cocos2d::log("GameSceneQuattro::onContactBegin   ....... 1  ");
              a-> getNode()->stopAllActions();
        	  a-> getNode()->setVisible(false);
              a->removeFromWorld();
              //a->setEnable(false);         	 // a->applyForce( Vect(100, 78) );
          }
          if (PIETRA_TAG == b->getTag()   ){
        	 // cocos2d::log("GameSceneQuattro::onContactBegin   ....... 2  ");
               b-> getNode()->stopAllActions();
        	  b-> getNode()->setVisible(false);
              b->removeFromWorld();

             // b->setEnable(false);
        	 // b->applyForce( Vect(100, 78) );
         }

               CCLOG("Forse megio cosi recupero i tag e poi faccio tutto" );
              auto sp = (Sprite*)contact.getShapeA()->getBody()->getNode();
              int tag = sp->getTag();
              CCLOG("onContactBegin tag di A : %d", tag);
              auto spb = (Sprite*)contact.getShapeA()->getBody()->getNode();
				int tagb = spb->getTag();
				CCLOG("onContactBegin tag di B : %d", tagb);


    return true;
}
Ejemplo n.º 13
0
bool Tutorial::onContactBegin(cocos2d::PhysicsContact &contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	auto nodeA = contact.getShapeA()->getBody()->getNode();
	auto nodeB = contact.getShapeB()->getBody()->getNode();
	if (nodeA && nodeB)
	{
		if (nodeA->getTag() == 10)
		{
			if (nodeB->getTag() == 30)
			{
				CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/scoreSound.mp3");
				nodeB->removeFromParentAndCleanup(true);
			}

			else if (nodeB->getTag() == 40)
			{
				CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/invisCollected.mp3");
				nodeB->removeFromParentAndCleanup(true);
				powerUpBool = true;
				this->scheduleOnce(schedule_selector(Tutorial::DeactivatePowerUp), 4.0f);
			}
			else if (nodeB->getTag() == 50)
			{
				CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/speedboost.mp3");
				nodeB->removeFromParentAndCleanup(true);
				speed -= true;
				this->scheduleOnce(schedule_selector(Tutorial::StopSpeed), 3.0f);
			}
			else if (nodeB->getTag() == 60)
			{
				CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/ScoreBoost.mp3");
				nodeB->removeFromParentAndCleanup(true);
			}
		}
		else if (nodeA->getTag() == 30)
		{
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/scoreSound.mp3");
			nodeA->removeFromParentAndCleanup(true);
		}
		else if (nodeA->getTag() == 40)
		{
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/invisCollected.mp3");
			nodeA->removeFromParentAndCleanup(true);
			powerUpBool = true;
			this->scheduleOnce(schedule_selector(Tutorial::DeactivatePowerUp), 4.0f);
		}
		else if (nodeA->getTag() == 50)
		{
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/speedboost.mp3");
			nodeA->removeFromParentAndCleanup(true);
			speed -= true;
			this->scheduleOnce(schedule_selector(Tutorial::StopSpeed), 3.0f);
		}
		else if (nodeA->getTag() == 60)
		{
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/ScoreBoost.mp3");
			nodeA->removeFromParentAndCleanup(true);
		}
	}

	if ((0x000001 == a->getCollisionBitmask() && 0x000002 == b->getCollisionBitmask() || 0x000001 == b->getCollisionBitmask() && 0x000002 == a->getCollisionBitmask()))
	{
		if (powerUpBool == false)
		{
			this->scheduleOnce(schedule_selector(Tutorial::activateGameOverScene), 1.491f);
			CocosDenshion::SimpleAudioEngine::getInstance()->setEffectsVolume(0.85f);
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/crashSound.mp3");
			move = false;
			Crash();
			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("audio/GameOver.mp3");	
		}
	}
	return true;
}
Ejemplo n.º 14
0
bool LevelTwo::onContactBegin(cocos2d::PhysicsContact &contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();

	auto nodeA = contact.getShapeA()->getBody()->getNode();
	auto nodeB = contact.getShapeB()->getBody()->getNode();

	if ((nodeA&&nodeB))
	{
		if ((nodeA->getTag() == 21))
		{
			if (nodeB->getTag() == 10)
			{
				playerOneDead = true;
			}
		}

		if ((nodeA->getTag() == 10))
		{
			if (nodeB->getTag() == 21)
			{
				playerOneDead = true;
			}
		}
		//You'll have to check for collision between Jill and the platform and the platform and Jill
		//Collision between Jill and her endgame platform
		if ((nodeA->getTag() == 11))
		{
			if (nodeB->getTag() == 8)
			{
				playerTwoEndGame = true;
			}
		}

		//Collision between the platform and Jill.
		if ((nodeA->getTag() == 8))
		{
			if (nodeB->getTag() == 11)
			{
				playerTwoEndGame = true;
			}
		}

		if ((nodeA->getTag() == 7))
		{
			//Collision between jack and his endGame platform
			if (nodeB->getTag() == 10)
			{
				playerOneEndGame = true;
			}
		}

		if ((nodeA->getTag() == 10))
		{
			//Collision between jack and his endGame platform
			if (nodeB->getTag() == 7)
			{
				playerOneEndGame = true;
			}

			if (nodeB->getTag() == 20)
			{
				//trap->removeTrap(trap);
				//removeTraps = true;
				//m_traps->
				//nodeB->removeFromParentAndCleanup(true);
				for (int i = 0; i < m_traps.size(); i++)
				{
					auto trap = m_traps.at(i);
					Director::getInstance()->getRunningScene()->removeChild(trap);
					//iter = m_projectiles.erase(iter);
					delete m_traps.at(i);
					//m_traps[i]->removeFromParentAndCleanup(true);
					addPlatfroms = true;
				}
				m_traps.clear();
				//GameScreen::addPlatfroms = true;
			}
		}

		if ((nodeA->getTag() == 20))
		{
			if (nodeB->getTag() == 10)
			{
				//nodeA->removeFromParentAndCleanup(true);
			}
		}
		//return addPlatfroms;
	}



	//check if the bodies have collided.
	if ((0x000001 == a->getCollisionBitmask() && 0x000016 == b->getCollisionBitmask()) || (0x000016 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		CCLOG("Collision has occured between Jack and the door!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
		//this->scheduleOnce(schedule_selector(GameScreen::activateGameOverScene), 1.0f);
		playerOneEndGame = true;
		//playerTwoEndGame = true;
	}

	//check if the bodies have collided.
	if ((0x000002 == a->getCollisionBitmask() && 0x000017 == b->getCollisionBitmask()) || (0x000017 == a->getCollisionBitmask() && 0x000002 == b->getCollisionBitmask()))
	{
		CCLOG("Collision has occured between Jack and the door!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
		//this->scheduleOnce(schedule_selector(GameScreen::activateGameOverScene), 1.0f);
		//playerOneEndGame = true;
		playerTwoEndGame = true;
	}

	if ((0x000001 == a->getCollisionBitmask() && 0x000005 == b->getCollisionBitmask()) || (0x000005 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		CCLOG("Collision has occured between jack and the button!");
		for (int i = 0; i < m_traps.size(); i++)
		{
			auto trap = m_traps.at(i);

			sceneWorld->removeBody(trap->getPhysicsBody());

			Director::getInstance()->getRunningScene()->removeChild(trap);
			m_traps[i]->removeFromParentAndCleanup(true);
		}
		m_traps.clear();
		addPlatfroms = true;

		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}

	if ((0x000001 == a->getCollisionBitmask() && 0x000105 == b->getCollisionBitmask()) || (0x000105 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		CCLOG("Collision has occured between jack and the button!");
		for (int i = 0; i < m_removablePlats.size(); i++)
		{
			auto removablePlatform = m_removablePlats.at(i);

			sceneWorld->removeBody(removablePlatform->getPhysicsBody());

			Director::getInstance()->getRunningScene()->removeChild(removablePlatform);
			m_removablePlats[i]->removeFromParentAndCleanup(true);
		}
		m_removablePlats.clear();
		addPlatfroms = true;
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}

	if ((0x000001 == a->getCollisionBitmask() && 0x000004 == b->getCollisionBitmask()) || (0x000004 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playerOneDead = true;
		CCLOG("Collision has occured between jack and the trap!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}
	if ((0x000001 == a->getCollisionBitmask() && 0x000101 == b->getCollisionBitmask()) || (0x000101 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playerOneDead = true;
		CCLOG("Collision has occured between jack and the fire1!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}
	if ((0x000001 == a->getCollisionBitmask() && 0x000102 == b->getCollisionBitmask()) || (0x000102 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playerOneDead = true;
		CCLOG("Collision has occured between jack and the fire2!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}
	if ((0x000001 == a->getCollisionBitmask() && 0x000103 == b->getCollisionBitmask()) || (0x000103 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playerOneDead = true;
		CCLOG("Collision has occured between jack and the fire3!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}

	if ((0x000002 == a->getCollisionBitmask() && 0x000004 == b->getCollisionBitmask()) || (0x000004 == a->getCollisionBitmask() && 0x000002 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playerTwoDead = true;
		CCLOG("Collision has occured between jack and the trap!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}
	if ((0x000002 == a->getCollisionBitmask() && 0x000001 == b->getCollisionBitmask()) || (0x000001 == a->getCollisionBitmask() && 0x000002 == b->getCollisionBitmask()))
	{
		//player->respawnPoint(player);
		playersColliding = true;
		CCLOG("Collision has occured between jack and Jill!");
		//pButton->setSpriteFrame(ptr->m_buttonPressed);
	}
	else
		playersColliding = false;

	return true;
}
bool GameScene::setHit(cocos2d::PhysicsContact &contact)
{
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();
	
	if ((1 == a->getCollisionBitmask() && 2 == b->getCollisionBitmask()) || (2 == a->getCollisionBitmask() && 1 == b->getCollisionBitmask()))// BACK TO FRONT FOR NOW
	{
		bool hit = true;
		CCLOG(" A Collision has occured");
	}
	
	else
	{
		bool hit = false;
	}
	
	if (hit = true)
	{

		if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
		{
			Ball::sharedBall()->AddToDampening(5000.0f);
		}

		if ((a->getCollisionBitmask() == Brick_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Brick_Bitmask))
		{
			Ball::sharedBall()->AddToDampening(5000.0f);
			GameManager::sharedGameManager()->AddToScore(1);
			this->removeChild(contact.getShapeB()->getBody()->getNode());
			
			Ball::sharedBall()->AddToAcceleration(5000);
			//ScoreLabel->setString(StringUtils::format("%d", GameManager::sharedGameManager()->GetScore()));

				Vec2 first = contact.getShapeA()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));
				Vec2 Second = contact.getShapeA()->getBody()->getNode()->convertToWorldSpace(Vec2(50, 50));
				//CCLOG("X: %f",x);
				//CCLOG("Y: %f", y);
				//CCLOG("position = (%f,%f)", x, y);
				x = first.x;
				y = first.y;

				xb = Second.x;
				yb = Second.y;
				CCLOG("position = (%f,%f)", first.x, first.y);
				this->schedule(schedule_selector(GameScene::SetPowerUp));

			 if (level == 1)
			{
				 number = number + 1;
				 CCLOG("number = %i", number);
				 if (number == 5)
				 {
					 CCLOG("level 2");
					 level = 2;
					 this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
				 }
			}

			else if (level == 2)
			{
				number = number + 1;

				if (number == 5)
				{
					level = 3;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
				}

			}

			else if (level == 3)
			{
				number = number + 1;

				if (number == 5)
				{
					level = 4;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
				}
			}

			else if (level == 4)
			{
				number = number + 1;

				if (number == 5)
				{
					level = 5;
					this->removeChild(contact.getShapeA()->getBody()->getNode());
					this->schedule(schedule_selector(GameScene::SetBrick));
					this->schedule(schedule_selector(GameScene::SetBall));
				}
			}
		}
		//LIFE
		if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == LiveUp_Bitmask) || (a->getCollisionBitmask() == LiveUp_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
		{
			GameManager::sharedGameManager()->AddToLives(1);
			ba = 1;
			this->removeChild(contact.getShapeA()->getBody()->getNode());
		}
		//TWO
		if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == TwoSplit_Bitmask) || (a->getCollisionBitmask() == TwoSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
			ba = 2;
			this->schedule(schedule_selector(GameScene::SetBall));
		}
		//THREE
		if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == ThreeSplit_Bitmask) || (a->getCollisionBitmask() == ThreeSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
			ba = 3;
			this->schedule(schedule_selector(GameScene::SetBall));
			
		}
		//FOUR
		if ((a->getCollisionBitmask() == Paddle_Bitmask && b->getCollisionBitmask() == NineSplit_Bitmask) || (a->getCollisionBitmask() == NineSplit_Bitmask && b->getCollisionBitmask() == Paddle_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
			ba = 9;
			this->schedule(schedule_selector(GameScene::SetBall));
		}

		if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == Ball_Bitmask) || (a->getCollisionBitmask() == Ball_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
		{
			GameManager::sharedGameManager()->AddToLives(-1);

			this->lives = GameManager::sharedGameManager()->GetLives();
			if (lives == 0)
			{
				auto scene = HelloWorld::createScene();
				Director::getInstance()->replaceScene(TransitionFade::create(Transition_Length, scene));
			}
			this->removeChild(contact.getShapeA()->getBody()->getNode());
			ba = 1;
			this->schedule(schedule_selector(GameScene::SetBall));
		}

		if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == LiveUp_Bitmask) || (a->getCollisionBitmask() == LiveUp_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
		}

		if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == TwoSplit_Bitmask) || (a->getCollisionBitmask() == TwoSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
		}

		if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == ThreeSplit_Bitmask) || (a->getCollisionBitmask() == ThreeSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
		}

		if ((a->getCollisionBitmask() == Death_Bitmask && b->getCollisionBitmask() == NineSplit_Bitmask) || (a->getCollisionBitmask() == NineSplit_Bitmask && b->getCollisionBitmask() == Death_Bitmask))
		{
			this->removeChild(contact.getShapeA()->getBody()->getNode());
		}
	}
	return true;
}
Ejemplo n.º 16
0
//response to contact with obstacle
bool GameScene::onContactBegin(cocos2d::PhysicsContact &contact){
	PhysicsBody *a = contact.getShapeA()->getBody();
	PhysicsBody *b = contact.getShapeB()->getBody();

	//if something colides with something else
	if ((BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == b->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == a->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && ROCKS_COLLISION_BITMASK == b->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && ROCKS_COLLISION_BITMASK == a->getCollisionBitmask()) /*|| (BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && EDGE_COLLISION_BITMASK == b->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && EDGE_COLLISION_BITMASK == a->getCollisionBitmask())*/){
		CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Sounds/Hit.mp3");

		CCParticleSystemQuad* p = CCParticleSystemQuad::create("burn.plist");
		p->setPosition(bird->getPosX(), bird->getPosY());
		this->addChild(p);


		auto scene = GameOverScene::createScene(score);
		Director::getInstance()->replaceScene(TransitionFade::create(TRANSITION_TIME, scene));
		//output score on death
		// CCLOG("SCORE: %i", score); no need to write to output, score in game
		//end bkg music
		CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic();
	}
	else if ((BIRD_COLLISION_BITMASK == a->getCollisionBitmask() && POINT_COLLISION_BITMASK == b->getCollisionBitmask()) || (BIRD_COLLISION_BITMASK == b->getCollisionBitmask() && POINT_COLLISION_BITMASK == a->getCollisionBitmask()))
	{
		//	CCLOG("Point Scored");no longer needed to write to output
		if (a->getCollisionBitmask() == POINT_COLLISION_BITMASK)
		{
			a->getNode()->removeFromParent();
		}
		else {
			b->getNode()->removeFromParent();

			CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("Sounds/Point.mp3");
			score++;
			__String *tempScore = __String::createWithFormat("%i", score);
			scoreLabel->setString(tempScore->getCString());
		}
	}
	else if ((EDGE_COLLISION_BITMASK == a->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == b->getCollisionBitmask()) || (EDGE_COLLISION_BITMASK == b->getCollisionBitmask() && OBSTACLE_COLLISION_BITMASK == a->getCollisionBitmask()) || (EDGE_COLLISION_BITMASK == a->getCollisionBitmask() && ROCKS_COLLISION_BITMASK == b->getCollisionBitmask()) || (EDGE_COLLISION_BITMASK == b->getCollisionBitmask() && ROCKS_COLLISION_BITMASK == a->getCollisionBitmask()) || (POINT_COLLISION_BITMASK == a->getCollisionBitmask() && EDGE_COLLISION_BITMASK == b->getCollisionBitmask()) || (POINT_COLLISION_BITMASK == b->getCollisionBitmask() && EDGE_COLLISION_BITMASK == a->getCollisionBitmask())){
		//remove sprites as they remove from screen
		if (a->getCollisionBitmask() == EDGE_COLLISION_BITMASK){

			CCParticleSystemQuad* p = CCParticleSystemQuad::create("debris_2.plist");
			p->setPosition(b->getNode()->getPosition());
			this->addChild(p);

			//if (frstContact == false){
			//	auto alienSize = Sprite::create("Alien.png");
			//	CCParticleSystemQuad* p = CCParticleSystemQuad::create("debris.plist");
			//	p->setPosition(b->getNode()->getPosition() + alienSize->getContentSize() / 2);
			//	this->addChild(p);
			//	frstContact = true;
			//}

			b->getNode()->removeFromParent();

		}
		else{
			CCParticleSystemQuad* p = CCParticleSystemQuad::create("debris_2.plist");
			p->setPosition(b->getNode()->getPosition());
			this->addChild(p);

			//if (frstContact == false){
			//	auto alienSize = Sprite::create("Alien.png");
			//	CCParticleSystemQuad* p = CCParticleSystemQuad::create("debris.plist");
			//	p->setPosition(b->getNode()->getPosition() + alienSize->getContentSize() / 2);
			//	this->addChild(p);
			//	frstContact = true;
			//}

			a->getNode()->removeFromParent();
		}
	}
	return true;
	}