示例#1
0
    /*---------------------------------------------------------------------*/
    /// <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;
    }