/// <summary> /// 指定の確率で当たるか取得する /// </summary> /// <param name="probability">確率(割合:40%なら0.4)</param> /// <returns></returns> public static bool GetRand(float probability) { //割合が1.0以上であれば、必ず当たる if (probability >= 1.0f) { return(true); } //割合が0.0以下であれば、必ず外れる if (probability <= 0.0f) { return(false); } //ランダムMAX値 float RandMax = FPS.GetInstance().GetValue() * 10000.0f; //ランダム値取得 int rand = DX.GetRand((int)RandMax); //全体の割合が確立以下であれば、当たっている if (rand / RandMax < probability) { return(true); } return(false); }
/// <summary> /// 動画停止(音量をフェードアウト) /// </summary> /// <param name="milliTime">フェードアウトする時間(ミリ秒)</param> public void StopMovie(int milliTime) { //最初のフェードアウト処理のとき if (this.fadeOutCnt == 0) { float MilliSec = 1000.0f; //1秒は1000ミリ秒 //流し続ける時間=秒数×FPS値 //例)60FPSのゲームで、1秒間流し続けるなら、1秒×60FPS float UpdateTime = (milliTime / MilliSec) * FPS.GetInstance().GetValuef(); //この時間がMAX //フェードアウトのカウンタ設定 this.fadeOutCnt = 0; this.fadeOutCntMax = (int)UpdateTime; this.ChangeVolume(this.volume); //音量をMAXにする this.IsfadeOutEnd = false; //フェードアウト開始 } //フェードアウトしているとき(フェードアウトのMAX値以下ならば) if (this.fadeOutCnt >= 0 && this.fadeOutCnt < this.fadeOutCntMax) { //カウンタを上げる this.fadeOutCnt++; //(MAX時間-現在のカウント時間)÷MAX時間で、音量の全体割合を計算 float CalcVolume = ((float)this.fadeOutCntMax - (float)this.fadeOutCnt) / (float)this.fadeOutCntMax * 255; //読み込み時に設定した音量は超えないように注意すること! if (CalcVolume >= this.volume) { CalcVolume = this.volume; } //音量を下げる this.ChangeVolume((int)CalcVolume); } else { //動画をポーズ DX.PauseMovieToGraph(this.handle); this.IsfadeOutEnd = true; //フェードアウト終了 } return; }
/// <summary> /// 初期化のオーバーロード /// </summary> public void Start(CHANGE_KIND fade_kind = CHANGE_KIND.fadeOut) { //ミリ秒からフレーム数に変換 this.fadeTimeMax = (int)((Game.GetInstance().fadeTimeMill / MiLLSec) * FPS.GetInstance().GetValuef()); //フェードアウト this.fadeOutCntInit = 0; this.fadeOutCnt = fadeOutCntInit; this.fadeOutCntMAX = (int)fadeTimeMax; //フェードイン this.fadeInCntInit = (int)fadeTimeMax; this.fadeInCnt = fadeInCntInit; this.fadeInCntMAX = 0; //画面切り替えの種類 this.fadeKind = fade_kind; this.IsFade = false; //切り替え処理に入った Game.GetInstance().FlgChangeScene = false; return; }
/// <summary> /// ゲームシーンの情報を描画する(クラス内部・派生クラスからアクセス可能) /// </summary> protected void DrawSceneInfo() { this.DrawSceneName(0, 0); FPS.GetInstance().DrawFPS(0, Game.GetInstance().HEIGHT - 20, true); }