/*---------------------------------------------------------------------*/ /// <summary> /// 残り燃料が少なくなったら赤く点滅する /// </summary> private void FuelAlert() { float fuel = _Status.GetStatus().fuel; Color baseColor = _SpriteRenderer.color; if (isFuelAlert == false && fuel <= Const.LanderData.ALERT_FUEL) { isFuelAlert = true; fAlertStartTIme = Time.timeSinceLevelLoad; } if (isFuelAlert == true) { float diff = Time.timeSinceLevelLoad - fAlertStartTIme; if (diff >= fAlertTime * 2) { fAlertStartTIme = Time.timeSinceLevelLoad; } Color _color = _SpriteRenderer.color; if (diff < fAlertTime) { _color = Color.red; } else { _color = baseColor; } _SpriteRenderer.color = _color; } }
/// <summary> /// ノーマルモードの更新処理 /// </summary> private void NormalUpdate() { // ランダーのY座標が上ラインを超えた場合、カメラを動かす。 if (_Lander.transform.position.y >= vLeftTopLine.y) { Vector3 vTopPos = this.transform.position; vTopPos.y = _Lander.transform.position.y - vLeftTopLine.y; this.transform.position = vTopPos; } // ランダーの高度が指定の高度より低くなった場合、ズームモードに変更する。 if (_Lander.GetStatus().altitude <= Const.CameraData.ZOOM_LUDER_ALTITUDE) { ChangeMode(MODE.ZOOM); } // 背景の座標をカメラに合わせる ScrollBackGround(); }
/*---------------------------------------------------------------------*/ /// <summary> /// スコアとボーナス燃料の計算 /// </summary> /// <param name="status">ランダーのステータス</param> /// <param name="point">着陸地点</param> /// <param name="score">スコア受け取り用変数</param> /// <param name="bonusfuel">ボーナス燃料受け取り用変数</param> private void ScoreCalc(LanderStatus status, LandingPoint point, out float score, out float bonusfuel) { // ステータス情報の取得 LanderStatus.STATUS _status = status.GetStatus(); // 水平速度と垂直速度をベクトルとし、ベクトルの長さの半分をスピード値として取得する。 int speed = (int)(new Vector2(_status.horizontal_speed, _status.vertical_speed).magnitude / 2); // 計算ベース値からスピード値を引いた値に着陸地点のボーナス倍率をかけた値をスコアとする。 score = (Const.MainGameData.SCORE_CALC_BASE - speed) * point.GetBonusRate(); // スコアにボーナス燃料倍率をかけた値をボーナス燃料とする。 bonusfuel = score * Const.MainGameData.BONUS_FUEL_RATE; }