추상클래스 → 인터페이스로 변경, Environment.Exit(), 폴더

유승아·2024년 5월 2일

내일배움캠프

목록 보기
35/69

추상클래스로 두었던 Scene 클래스를 불러오는데 더 편하게 만들기 위해서
SceneManager 를 생성하여 싱글톤으로 만든 후 관리하기로 했다.

그 과정에서 Scene 클래스를 Interface로 변경하였다.

SceneManager에 각 Scene들의 객체를 생성했고 그 결과 불러오기 훨씬 편해졌다!!

원래 InventoryScene 에서 장비와 소모 아이템(포션) 둘 다 출력하고자 하였으나 PotionScene 에서 소모 아이템을 관리/사용 할 수 있게 했다.

그리고 각 Scene들에 진입, 메인으로 나갈 수 있도록 로직을 전반적으로 추가해주었다.


Environment.Exit(0);

이 메서드는 현재 실행 중인 프로세스를 종료한다.
0은 종료 코드이다.

switch(userInput)
{
    case 0: //게임 종료

        //게임 저장 기능 구현되면 추가하기

        ui.CountdownComment(2, "게임이 종료됩니다.");

		//정상 종료 코드 0, 음수값이 들어가면 비정상 종료
        Environment.Exit(0); 
        
        break;
	//생략

게임이 바로 종료되는 것을 방지하기 위해서 UI 클래스의 CountdownComment() 메서드를 사용했다.

public void CountdownComment(int time, string comment)
{
    for (int i = time; i > 0; i--)
    {
        Console.WriteLine($"{i}초 후 {comment}");
        Thread.Sleep(1000);
    }
}

폴더를 사용하기 전까지는 겪지 않았던 문제

Scene 관련된 클래스들이 늘어나면서 편의성을 위해 폴더를 생성하여 관련 cs 파일을 모두 옮겼다.

그 후 Ctrl + Shift + A 를 사용하여 새로운 파일을 만들 때마다 namespace 에 추가적으로 .폴더명이 붙어서 생성이 됐다.

처음에는 이게 무슨 오류인가 싶었는데 폴더를 사용하면서부터 겪은 걸로 보아 폴더 안에서 파일을 생성하면 namespace에 폴더명이 붙어서 생성되는 것이 아닌가... 하는 추측을 해봤고, 추측만 해봤다.

0개의 댓글