private void high_Btn_Click(object sender, EventArgs e) //하이스코어 버튼을 클릭시 { savescore s = new savescore(); //하이스코어를 보여주는 s.Highscore_Btn = true; //savescore 폼 생성 후 s.ShowDialog(); //modal로 실행 }
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로 하이스코어 폼 실행 } } } } }