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; } } }
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(); }