인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

몽몽이 바보다옹~님의 프로필 이미지
몽몽이 바보다옹~

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

TextRPG2 게임 진행

오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다.

작성

·

633

0

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace CSharp

{

enum Playertype

{

None=0,

Knight=1,

Archer=2,

Mage=3

}

class Player:Creature

{

protected Playertype type = Playertype.None;

protected int hp = 0;

protected int attack = 0;

protected Player(Playertype type):base(CreatureType.Player)

{

this.type = type;

}

public void SetInfo(int hp, int attack)

{

this.hp = hp;

this.attack = attack;

}

public Playertype GetPlayertype() { return type; }

public int GetHp() { return hp; }

public int GetAttack() { return attack; }

public bool IsDead() { return hp <= 0; }

public void OnDamaged(int damage)

{

hp -= damage;

if (hp <= 0)

{ hp = 0; }

}

class Knight : Player

{

public Knight() : base(Playertype.Knight)

{

SetInfo(100, 10);

}

}

class Archer : Player

{

public Archer() : base(Playertype.Archer)

{

SetInfo(70, 15);

}

}

class Mage : Player

{

public Mage() : base(Playertype.Mage)

{

SetInfo(60, 20);

}

}

}

}


 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace CSharp

{

enum Mode

{

None,

Lobby,

Gild,

Biliage

}

;

internal class Game

{

Player player = null;

Monster monster = null;

Mode mode = Mode.Lobby;

public void Process()

{

switch(mode)

{

case Mode.Lobby:

ProcessLobby();

break;

}

}

public void ProcessLobby()

{

while (true)

{

Console.WriteLine("직업을 선택하세요");

Console.WriteLine("[1]검사");

Console.WriteLine("[2]궁");

Console.WriteLine("[3]마법사");

string input = Console.ReadLine();

switch (input)

{

case "1":

player = new Knight();

break;

}

}

}

}

}

 

이렇게 있을 때 두번째 파일의 player = new Knight();

에서 심각도 오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.

라는 오류가 뜹니다 아무리 찾아봐도 뭐가 문젠지 모르겠어요ㅠㅠ

 

처음엔 오류의 원인을 찾는게 원래 이렇게 어려운건가요?

찾아볼 때 그 과정에서도 모르는 말이 너무 많아서 하나하나 찾아가다보면 이렇게 오래 걸릴 단계가 아닌 것 같은데 시간이 많이 지체되고 결국 잘못된 방향으로 찾아서 해결책도 찾지 못할 때가 많아요.

처음 공부할 때는 너무 막히면 질문하고 일단 넘어가고 나중에 돌아오는게 맞을까요? 아니면 끝까지 문제를 파악하고 넘어가야할까요?

 

답변 2

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

image
class Knight의 위치가 잘못 되었습니다.
밖에다가 만들어야 하는데 class Player 내부에다 만들어서 발생한 문제입니다.
image
요렇게 밖에다 해주셔야 합니다.

감사합니다!! 강의 너무 재밌어요

열심히 할게요><

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

처음에 문법 헤딩은 정말 끔찍하고
별 것도 아닌 것 가지고 1시간씩 낭비하고 그런 일이 비일비재합니다.
그런 무한 헤딩과 경험이 쌓이다 보면,
나중에는 에러 메시지만 보고도 원인이 유추되는 내공이 쌓입니다.

위 내용이 보기가 어려워서 잘 모르겠는데
정말 해결이 안되면 전체 솔루션 압축해서 rookiss@naver.com 로 보내주세요.

몽몽이 바보다옹~님의 프로필 이미지
몽몽이 바보다옹~

작성한 질문수

질문하기