void PasPlay::Update(){ // 更新処理 int i; for(i=0;i<MaxSE;i++){ mSE[i]->Initialize(); } mBackground->Update(); // 背景 if(flgStart) { UpdateStart(); } // ミッションスタート if(flgClear) { UpdateClear(); } // ミッションクリア if(flgGameOver) { UpdateGameOver(); } // ゲームオーバー if(flgResult) { UpdateResult(); } // リザルト if(flgWarning) { UpdateWarning(); } // ワーニング if(!flgStart && !flgClear && !flgResult){ // スタート且つクリアフラグが立っていなければ /*== 更新 ================*/ mUnitAdmin->Update(); // ゲームオブジェクト mStage->HiScoreUpdate(mUnitAdmin->GetScore()); // ハイスコア更新 mStage->HiDestroyUpdate(mUnitAdmin->GetDestroy()); // 破壊数記録更新 if(!flgGameOver && FlagGameOver()){ // 失敗条件を満たしてしまうとクリアしててもゲームオーバー GoToGameOver(); } if(!flgGameOver && !flgClear && FlagClear()){ // ゲームオーバーではなく、クリア条件を満たしているとクリア //GoToClear(); } if(!flgWarning && mUnitAdmin->GetBossReadyFlag()){ GoToWarning(); }// ボスの条件が整ったか否か if(flgBoss){ // ボスフラグが立っている状態で if(!mUnitAdmin->GetBossFlg()){ // ボスが消えると GoToClear(); // クリア flgBoss = false; } } } //if(!flgStart && !flgClear && !flgResult) for(i=0;i<MaxSE;i++){ mSE[i]->Update(); } // 再生するオーディオを再生 }
//Realtime method void Results::QueueResult(const QString &name, SpValueList &List) { IT_IT("Results::QueueResult"); //Lock(); // lock for results update //was commented UpdateStart(name); // begin the update SpValueList::iterator i = List.begin(); for(; i != List.end();i++) { Update(name,(*i).tag,(*i)); // update the value }; UpdateEnd(name); // end the update //Unlock(); // unlock the results objects //was commented };