목차
최근 인프런에서 유니티 강의를 들으면서 공부를 해 보고 있다.
C++은 학부수준으로 조금 다뤄봤지만 C# 문법이랑은 뭐가 다른지 잘 모르기 때문에 우선 문법부터 배우는 중이다.
강사분이 아주 간단한 문법정도만 알려주신후 이를 기반으로 TextRPG의 틀을 만들어 보는 실습을 하셔서
이를 보고 내가 만들어보고 싶은 방향으로 간단하게 만들면서 문법을 익혀볼 심산이다.
오늘은 우선 캐릭터 생성까지만 만든 후, 내일 몬스터, 전투 등등 간단하게 만들어보고 다음 수업으로 넘어가야겠다.
인생은 실전이고... 인생은 공평하지 않기 때문에
내가 지향하는 게임의 바를 조금 녹여봤다.
캐릭터의 스탯을 무작위로 들어간다.
TextRPG로 깊이 만들 생각은 없기 때문에 생각하는 것을 끝까지 만들진 않겠지만...
만들게 된다면 초반 운빨이 끝까지 그대로 유지된다.
수익 모델을 내기에는 조금 힘들 것 같다는 생각이 들지만 뭐 내 재미인걸
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TextRPG
{
class Program
{
enum MonsterType
{
Fox = 0,
Rabbit = 1,
Bully = 2
}
struct Player
{
//플레이어 이름
public string NAME;
//플레이어 레벨
public byte LV;
//플레이어 체력
public int HP;
// 플레이어 내공
public int MP;
// 플레이어 근력
public int STR;
// 플레이어 민첩
public int DEX;
// 플레이어 오성(레벨 업 포인트로 부여 불가)
public int INT;
// 플레이어 행운(레벨 업 포인트로 부여 불가)
public int LUK;
// 추가 능력치
public int STAT;
// 레벨업 필요 경험치
public int EXP;
}
static void ShowStatus(Player user)
{
Console.WriteLine("-----------------------------");
Console.WriteLine("* 이름 : " + user.NAME);
Console.WriteLine("* 레벨 : " + user.LV);
Console.WriteLine("* 체력 : " + user.HP);
Console.WriteLine("* 내공 : " + user.MP);
Console.WriteLine("* 근력 : " + user.STR);
Console.WriteLine("* 민첩 : " + user.DEX);
Console.WriteLine("* 오성 : " + user.INT);
Console.WriteLine("* 행운 : " + user.LUK);
Console.WriteLine("* 잔여 능력치 : " + user.STAT);
Console.WriteLine("* 다음 레벨 필요 경험치 : " + user.EXP);
Console.WriteLine("-----------------------------");
}
static Player CreatePlayer()
{
Random rand = new Random();
Boolean end_sig = false;
byte cnt = 4;
Player user;
Console.WriteLine("무협 온라인에 온 것을 환영합니다.");
Console.WriteLine("당신의 이름은?");
user.NAME = Console.ReadLine();
Console.Write(user.NAME);
Console.WriteLine("... 좋은 이름이네요.\n 당신의 육체를 구성합니다...");
user.STAT = 10;
user.EXP = 1000;
do
{
user.LV = 1;
user.HP = 100 + rand.Next(-50, 50);
user.MP = 100 + rand.Next(-50, 50);
user.STR = 10 + rand.Next(-5, 5);
user.DEX = 10 + rand.Next(-5, 5);
user.INT = 10 + rand.Next(-9, 9);
user.LUK = 10 + rand.Next(-10, 10);
Console.WriteLine("완료되었습니다.\n 당신의 육체는 아래와 같습니다...");
ShowStatus(user);
while (cnt > 0)
{
Console.WriteLine(cnt + "번의 재구성 기회가 남아있습니다. \n[1]. 이대로 하겠습니다.\n[2]. 뭐야, 내 육체 돌려줘요");
string temp = Console.ReadLine();
if(temp == "1")
{
end_sig = true;
break;
}
else if(temp == "2")
{
break;
}
else
{
Console.WriteLine("잘못된 입력입니다. 다시 입력해주세요.");
}
}
} while (end_sig == false && cnt-- > 0);
Console.WriteLine("육체 구성이 완료되었습니다... 게임을 시작합니다.");
return user;
}
static void Main(string[] args)
{
//캐릭터 생성
Player User = CreatePlayer();
}
}
}
코드는 위와 같다.
아직 실력이 많이 미숙해서 이런 코드로밖에 구현할 수 없지만 꾸준히 하다 보면 많은 변화가 있겠지?
'Unity3D > 유니티 공부' 카테고리의 다른 글
[Unity 게임 개발을 위한 C# 공부 일지] 길찾기 - 3 (트리, 힙) (0) | 2021.05.15 |
---|---|
[Unity 게임 개발을 위한 C# 공부 일지] 길찾기 - 2 (그래프) (0) | 2021.05.12 |
[Unity 게임 개발을 위한 C# 공부 일지] 길찾기 - 1(미로 생성, 우수법) (0) | 2021.05.10 |
[Unity 게임 개발을 위한 C# 공부 일지] TextRPG 기초 제작 - 전투 (0) | 2021.04.07 |
[Unity 게임 개발을 위한 C# 공부 일지] TextRPG 기초 제작 - 몬스터 생성 (0) | 2021.04.05 |