1일차. 텍스트 게임 "Shelter" 스타트C#/텍스트 게임 "Shelter"2023. 11. 6. 13:41
Table of Contents
1. 개요
포스트 아포칼립스 분위기 장르로, 황폐한 세계의 안전한 장소인 "Shelter" 를 찾아가는 간단한 텍스트 게임 만들기
2. 개발 진행
- 로비 화면 (로비 디자인)
Text To ASCII ART
상단 사이트에서 내가 원하는 디자인의 로비 타이틀을 뽑아오고, 프로젝트의 글로벌 변수들을 모아놓을 클래스를 정의한다.
📄Globals.cs
// 전역 변수 모음 클래스
public static class Globals
{
// 로비 타이틀 아스키 아트
public const string LobbyTitle =
@"
_____ _ _ ______ _ _______ ______ _____
/ ____| | | | | | ____| | | |__ __| | ____| | __ \
| (___ | |__| | | |__ | | | | | |__ | |__) |
\___ \ | __ | | __| | | | | | __| | _ /
____) | | | | | | |____ | |____ | | | |____ | | \ \
|_____/ |_| |_| |______| |______| |_| |______| |_| \_\";
}
상단의 Globals 클래스는 앞으로 개발 과정 중에 종종 전역 변수를 이용해야 하는 상황에서 계속 사용할 예정이다. 특히 문자열 같은 경우 여러 클래스에 걸쳐 같은 문자열이 사용된다면 이를 전역 변수로 정의하여 공유하도록 사용 할 것이다. static class로 정의 하여 인스턴싱 없이 호출 할 수 있도록 하고, 여기 쓰이는 전역 변수들은 변하지 않는 변수들이므로 모두 const로 정의하였다.
- 아이템
📄IItem.cs
public interface IItem
{
public string Name { get; } // 아이템 이름
public string Desc { get; } // 아이템 설명
public int Price { get; } // 아이템 가격
}
모든 아이템의 공통적인 기능, 특징들을 Interface 안에 구현함. 인터페이스를 상속받는 자식 클래스들은 인터페이스 안의 함수나 프로퍼티들을 반드시 재정의 해야한다. 객체 지향 언어의 특징중 다형성을 통해 부모클래스인 인터페이스로 여러 자식들을 한번에 관리할 수 있다.
📄Item_Equip.cs
public class Item_Equip : IItem
{
// IItem 프로퍼티 재정의
public string Name { get; }
public string Desc { get; }
public int Price { get; }
// Item_Equip 변수
public EquipType Type;
public int Stat;
public Item_Equip(string name, string desc, EquipType type, int stat)
{
Name = name;
Desc = desc;
Type = type;
Stat = stat;
}
}
일단 지금 아이템이 공통으로 가져갈 이름, 설명, 가격은 인터페이스내 프로퍼티로 정의하고, 앞으로 사용아이템(Item_Useable), 재료아이템(Item_Material) 등 여러 자식 클래스에 쓰일 예정이다.
'C# > 텍스트 게임 "Shelter"' 카테고리의 다른 글
6일차. 게임 화면 꾸미기 (1) | 2023.11.13 |
---|---|
5일차. 상점 시스템 구현 (0) | 2023.11.10 |
4일차. 인벤토리 List 활용 & 스테이지 진행 (0) | 2023.11.09 |
3일차. 스크린 관리 (0) | 2023.11.08 |
2일차. 장비 관리 기능 구현 (0) | 2023.11.07 |