Esempio n. 1
0
        private void high_Btn_Click(object sender, EventArgs e)     //하이스코어 버튼을 클릭시
        {
            savescore s = new savescore();                          //하이스코어를 보여주는

            s.Highscore_Btn = true;                                 //savescore 폼 생성 후
            s.ShowDialog();                                         //modal로 실행
        }
Esempio n. 2
0
        private void GameStop()                                //게임을 종료하는 메소드
        {
            int scoreSave = Convert.ToInt32(score_Label.Text); //하이스코어 저장을 위해 int형 변수에 현재 점수 할당

            try
            {
                player.Stop();                  //모든 BGM과 효과음을 멈추고
                player.PlayNoLoop(4);           //Game Over 효과음 재생

                game_over_Label.Visible = true; //게임 오버 라벨 보이게 함

                cloud_Pic.Visible = false;      //구름을 안보이게 설정

                cloud_Timer.Stop();             //타이머들 멈추고, 해제
                cloud_Timer.Dispose();

                cloud_Timer.Enabled = false;
                score_timer.Stop();

                score_timer.Dispose();
                score_timer.Enabled = false;

                moving_timer.Stop();
                moving_timer.Dispose();
                moving_timer.Enabled = false;

                generateTimer.Stop();
                generateTimer.Interval = 200;   //레벨에 따라 변경된 Interval 초기화
                generateTimer.Dispose();
                generateTimer.Enabled = false;

                start_Btn.Enabled = true;       //비활성화된 버튼들을
                high_Btn.Enabled  = true;       //다시 활성화

                life_Label.Text  = "10";
                star_Label.Text  = "2";
                score_Label.Text = "0";
                level_Label.Text = "1";
                speed_Label.Text = "25";                 //라이프, 별 등 모두 게임 시작 전 상태로 변경
                key_Left         = false;
                key_Right        = false;                //이동 플래그 초기화(안해주면 다음 게임 시작할 때 토끼가 자동으로 이동함
                cloudSpeed       = 5;                    //레벨에 따라 변경된 구름의 속도 초기화
                Maxp             = 15;                   //폭탄, 과일 발생 확률 초기화
                speed            = 10;                   //토끼의 속도 초기화

                rabbit_Pic.Location = new Point(0, 350); //토끼를 초기 위치로 이동
            }
            catch { }
            finally
            {
                try
                {
                    drop_Thread.Abort();        //쓰레드 종료
                }
                catch { }
                finally //예외가 발생해도 다음 행동을 실행할 수 있도록 try-catch-finally문 중첩으로 예외 처리
                {
                    try
                    {
                        eat_Thread.Abort();
                    }
                    catch { }
                    finally
                    {
                        try
                        {
                            for (int i = 0; i < MAX_OBJ_NUMBER; i++)    //화면에 표시된 모든 폭탄과 과일 지우고 배열 초기화
                            {
                                if (Bombs[i] != null)
                                {
                                    Bombs[i].Dispose();
                                    Bombs[i] = null;
                                }
                            }
                        }
                        catch { }
                        finally
                        {
                            savescore s = new savescore();              //하이스코어 입력 폼 실행
                            s.Owner = this;
                            s.score = scoreSave;
                            s.ShowDialog();                             //Modal로 하이스코어 폼 실행
                        }
                    }
                }
            }
        }