
아래는 구현한 프로그램의 기본적인 구조에 대한 간략한 내용.

InputManager 에 Console.KeyAvailable 을 추가하여 ReadKey에서 Interupt 가 걸리지 않도록 추가.Thead.Sleep) 추가.Enter->Render->Update->Exit순으로 동작하게 됨.Render와 Update는 Scene 내에서 반복적으로 발생할 수 있으므로 Render와 Update와 사용자 입력인 InputManager가 포함된 Loop가 기본적인 EventLoop 의 형태로 갖게됨.
Player, EnemyManager, Field, BuffBox를 관리.Player; 유저가 직접 제어하는 객체. 이동, BuffBox메뉴 선택, 총알 발사등 유저가 직접 제어해야 하는 모든 기능에 대한 권한 및 구현이 되어있음.Bullet; Player가 발사한 총알 객체. Player의 제어에 의해 생성됨.EnemyManager; 적 객체에 대한 관리를 맡고 있는 객체. 적의 맵 위 팝업, 적의 상태에 따른 객체수 등을 관리.Enemy; 적 개체. 플레이어를 따라 다니는 움직임 구현. Player 및 Bullet과의 상호작용.Field; 맵 객체. 2차원 배열이며, item 은 Tile객체로 이뤄져있음.Tile; 맵의 1칸에 해당하는 객체이며, 각 칸의 현재 GameObject와 처음 존재한 GameObject를 백업하여 지니고 있음.Buffbox; 맵 위에 존재하게 될 버프 제공 박스 개체. Buff에 대한 관리.Buff; Player의 능력치에 도움을 주는 내용으로, player와 상호작용.GameObject를 상속.Character를 상속. 단 Character 는 GameObject를 상속 받고 있음.Field, Enemy, Buffbox관련 데이터는 CSV로 별도 관리고 있음.




E는 플레이어를 지속적으로 쫒아옴.






