Exemplo n.º 1
0
        // ตรวจสอบคำตอบ
        private void CheckAnswer(object sender, CupAnswerEventArgs objName)
        {
            // ตรวจสอบผลลัพธ์
            var result = _gameManager.CheckAnswer(objName.ItemName);

            // หยุดการเล่่นอินเมชันมือทักกี้
            tukkyHand.Sb_HandWaitThreeSecond.Stop();
            tukkyHand.Sb_HandWaitFiveSecond.Stop();
            _doNotingHandTimer.Stop();
            const int ResetTimer = 0;
            _doNotingTime = ResetTimer;

            if (result != null)
            {
                // กำหนดค่าให้กับคะแนนความต่อเนื่องของเวลา
                _timeCombo = result.TimeCombo;

                // แสดงผลอนิเมชันตอบของ item
                _frontRow.PlayAnswerResult(result);

                if (result.IsCorrect == false)
                {
                    // จัดการตัวนับการตอบผิด
                    _incorrectCount++;

                    foreach (var cup in _frontRow.Cups)
                    {
                        cup.Sb_Up.Begin();
                    }

                    // กำหนดการแสดงผลของสามเกลอ และเริ่มเล่นอนิเมชัน
                    tukkyWin.ThreeTopWin.Visibility = System.Windows.Visibility.Visible;
                    tukkyWin.ThreeTopNormal.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopLose.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopWin.StartPlay();

                    // แสดงอนิเมชันการตอบผิด
                    if (_gameCombo >= MinimumIncorrectCountForDisplayFail)
                    {
                        _trueFalseMark.LostComboTextBlock.Text = _gameCombo.ToString();
                        _trueFalseMark.Sb_ComboLost.Begin();
                    }
                    else _trueFalseMark.Sb_Fail.Begin();

                    // จัดการตัวนับการตอบถูกติดต่อกัน
                    const int ResetGameCombo = 0;
                    _gameCombo = ResetGameCombo;
                }
                else if (result.IsCorrect == true)
                {
                    // จัดการตัวนับการตอบถูกติดต่อกัน
                    _gameCombo++;

                    if (GlobalScore.FirstMaximumCombo < _gameCombo) GlobalScore.FirstMaximumCombo = _gameCombo;

                    // จัดการตัวนับการตอบถูก
                    _correctCount++;

                    result.IsFinish = false;

                    // จัดการการแสดงผลคะแนนและเวลา
                    _timeLeftSecond += result.TimeAdvantage;
                    clock.txt_TimePlus.Text = result.TimeAdvantage.ToString();

                    // คำนวณการนำคะแนนที่ได้ไปทำการแสดงผล
                    const int Proportion = 5;
                    const string ScoreBoardName = "DokValue";
                    calculateScoreRunner(ScoreBoardName, Proportion, (int)result.Score);

                    scoreBoard.txt_ScorePlus.Text = ((int)result.Score).ToString();
                    scoreBoard.Sb_ScorePlus.Begin();

                    GlobalScore.FirstScore += (int)result.Score;

                    // กำหนดการแสดงผลของสามเกลอ และเริ่มเล่นอนิเมชัน
                    tukkyWin.ThreeTopWin.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopNormal.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopLose.Visibility = System.Windows.Visibility.Visible;
                    tukkyWin.ThreeTopLose.StartPlay();

                    // แสดงอนิเมชันการตอบถูก
                    const int DisplayCorrectAnswerAndCombo = 0;
                    const int DisplayCorrectAnswerForLowLevel = 3;
                    if (((_gameCombo % DisplayGameCombo == DisplayCorrectAnswerAndCombo )
                        && (_gameCombo != DisplayCorrectAnswerAndCombo))
                        || (_gameCombo == DisplayCorrectAnswerForLowLevel))
                    {
                        _trueFalseMark.Sb_ComboContinuing.Begin();
                        _trueFalseMark.txt_TrueCombo.Text = _gameCombo.ToString();
                    }
                    else _trueFalseMark.Sb_Good.Begin();

                    // เล่นอนิเมชันแสดงคะแนน
                    scoreBoard.Sb_ScorePlus.Stop();
                    scoreBoard.Sb_ScoreUp.Begin();
                    scoreBoard.Sb_ScorePlus.Begin();
                }

                // แก้ไขนาฬิกาใน State1 ให้เหลือเพียง 3 ตัว
                const int First = 1;
                const int Second = 2;
                const int Third = 3;
                if (_timeCombo >= First) clock.PlayClockOne();
                if (_timeCombo >= Second) clock.PlayClockTwo();
                if (_timeCombo >= Third)
                {
                    clock.PlayClockThree();
                    clock.Sb_TimeUp.Begin();
                }
            }
        }
Exemplo n.º 2
0
 // เมื่อแก้วถูกคลิก
 private void OnClickAnswer(object sender, CupAnswerEventArgs objName)
 {
     _lastClickedCup = (CupUI)sender;
     var temp = ClickAnswer;
     if (temp != null)
     {
         temp(sender, objName);
     }
     _lastClickedCup.Sb_Correct.Completed -= new EventHandler(Sb_Correct_Completed);
     _lastClickedCup.Sb_Correct.Completed += new EventHandler(Sb_Correct_Completed);
 }
Exemplo n.º 3
0
        // ตรวจสอบคำตอบ
        private void CheckAnswer(object sender, CupAnswerEventArgs objName)
        {
            // ตรวจสอบผลลัพธ์
            var result = _gameManager.CheckAnswer(objName.ItemName);

            // หยุดการเล่่นอินเมชันมือทักกี้
            tukkyHand.Sb_HandWaitThreeSecond.Stop();
            tukkyHand.Sb_HandWaitFiveSecond.Stop();
            _doNotingHandTimer.Stop();
            const int ResetTimer = 0;
            _doNotingTime = ResetTimer;

            if (result != null)
            {
                // กำหนดค่าให้กับคะแนนความต่อเนื่องของเวลา และแสดงผลเวลาเกมที่เหลือ
                _timeCombo = result.TimeCombo;
                _timeLeftSecond += result.TimeAdvantage;
                clock.txt_TimePlus.Text = result.TimeAdvantage.ToString();

                // แสดงผลอนิเมชันตอบของ item
                _frontRow.PlayAnswerResult(result);

                const int IncorrectAnswer = 0;
                if ((int)result.Score > IncorrectAnswer)
                {
                    // แสดงผลคะแนนที่ได้รับ
                    // คำนวณการนำคะแนนที่ได้ไปทำการแสดงผล
                    const int Proportion = 5;
                    const string ScoreBoardName = "DokValue";
                    calculateScoreRunner(ScoreBoardName, Proportion, (int)result.Score);

                    scoreBoard.txt_ScorePlus.Text = ((int)result.Score).ToString();

                    // เล่นอนิเมชันแสดงคะแนน
                    //scoreBoard.Sb_ScoreUp.Stop();
                    scoreBoard.Sb_ScorePlus.Stop();
                    scoreBoard.Sb_ScoreUp.Begin();
                    scoreBoard.Sb_ScorePlus.Begin();

                    GlobalScore.ThirdScore += (int)result.Score;

                    // จัดการตัวนับการตอบถูกติดต่อกัน
                    if (GlobalScore.ThirdMaximumCombo < _gameCombo) GlobalScore.ThirdMaximumCombo = _gameCombo;
                }

                if (result.IsCorrect == false)
                {
                    // จัดการตัวนับการตอบผิด
                    _incorrectCount++;

                    // ตอบผิด ทำการเรียกคำถามใหม่
                    _isGetNextQuestion = true;

                    // กำหนดการแสดงผลของสามเกลอ และเริ่มเล่นอนิเมชัน
                    tukkyWin.ThreeTopWin.Visibility = System.Windows.Visibility.Visible;
                    tukkyWin.ThreeTopNormal.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopLose.Visibility = System.Windows.Visibility.Collapsed;
                    tukkyWin.ThreeTopWin.StartPlay();

                    // แสดงอนิเมชันการตอบผิด
                    if (_gameCombo >= MinimumIncorrectCountForDisplayFail)
                    {
                        _trueFalseMark.LostComboTextBlock.Text = _gameCombo.ToString();
                        _trueFalseMark.Sb_ComboLost.Begin();
                    }
                    else _trueFalseMark.Sb_Fail.Begin();

                    // จัดการตัวนับการตอบถูกติดต่อกัน
                    const int ResetGameCombo = 0;
                    _gameCombo = ResetGameCombo;

                    showItemUI.Sb_FadeAway.Begin();
                }
                else if (result.IsCorrect == true)
                {
                    // จัดการการแสดงผลของตัวแสดงคำถาม
                    showItemUI.PlayAnswerResult(result);

                    // ตรวจสอบการจบระดับความยากนี้
                    if (result.IsFinish == true)
                    {
                        // จัดการตัวนับการตอบถูกติดต่อกัน
                        _gameCombo++;

                        // ตอบถูก ทำการตรวจสอบการเลื่อนระดับความยาก
                        _isGetNextQuestion = true;
                        _isRoundFinish = true;
                    }
                }

                const int First = 1;
                const int Second = 2;
                const int Third = 3;
                const int Fourth = 4;
                const int Fifth = 5;
                if (_timeCombo >= First) clock.PlayClockOne();
                if (_timeCombo >= Second) clock.PlayClockTwo();
                if (_timeCombo >= Third) clock.PlayClockThree();
                if (_timeCombo >= Fourth) clock.PlayClockFour();
                if (_timeCombo >= Fifth)
                {
                    clock.PlayClockFive();
                    clock.Sb_TimeUp.Begin();
                }
            }
        }