示例#1
0
void Bullet::Update(float dTime)
{
	if( g_game_state_ == SHOOT )
	{
		velocity_.y += -9.8f * dTime;
		position_.x += velocity_.x * dTime;
		position_.y += velocity_.y * dTime;
		position_.z += velocity_.z * dTime;
		//printf("%.2f / %.2f / %.2f\n",position_.x, position_.y, position_.z);

		if ( CheckCollide() == true )
		{
			didCollide_ = true;
		}
	}
}
示例#2
0
void GameManager::Play()
{
	Vector<Collider*>& colliders = m_colliderManager->m_colliders;
	Vector<Target*>& targets = m_targetManager->m_targets;
	Collider* collider = nullptr;

	for (int i = 0; i < colliders.size(); i++)
	{
		collider = colliders.at(i);
		if (collider->IsFlying())
		{
			collider->Act();
			CheckCollide(collider, targets);
		}

		if (collider->IsBullet())
		{
			Bullet* bullet = static_cast<Bullet*>(collider);
			if (bullet->IsToExplode())
			{
				Explosion* explosion = bullet->GetExplosion();
				m_colliderManager->AddExplosion(explosion);
				m_gameLayer->addChild(explosion);
				if (m_curStageNum == 12)
				{
					CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(FileStuff::SOUND_CAR_CRASH, false, 1.0f, 0, 0);
				}
				else 
				{
					CocosDenshion::SimpleAudioEngine::getInstance()->playEffect(FileStuff::SOUND_FIREWORK_EXPLOSION, false, 1.0f, 0, 0);
				}
			}
		}
	}

	m_colliderManager->EraseDeadColliders();
	m_targetManager->EraseDeadTargets();
	ControlWinFailProgress();
}