저는 제 친구와 함께 C++로 돌아가고 있습니다. 저는 기본 텍스트 기반 던전 게임을 작성하고 플레이어가 위, 아래, 왼쪽, 오른쪽으로 움직 이도록하려고합니다. 음, 내 질문에는 두 부분이 있습니다.여기에서 친구 클래스를 사용해야합니까?
Map 클래스, Player 클래스 및 GameLoop 클래스를 만들었습니다. 일어나는 모든 일은 분명히 내 GameLoop 안에 있습니다. Map 클래스에는 Move()라는 함수가있어 플레이어를 이동합니다. Map 클래스에서 Player 클래스가 Map 클래스에 대한 우정 액세스를 허용해야합니까? 나는 친구 수업을 언제 사용하는지 혼란 스럽다. 나는 게임 루프 함수가 map.Move()를 사용해야하는지, 아니면 Move()를 Player 클래스에 넣고 친구로 만들고 player.Move()를 사용해야하는지 궁금합니다.
내 지도 등급에는 내 플레이어가있는 좌표의 개인 데이터가 저장됩니다.
나는 이것이 약간 주관적일지도 모르지만 나는 일반적으로 다소 이야기하고있다. friend 클래스를 사용하여 Map 객체를 직접 사용하는 것이 더 효율적입니까?
내 두 번째 질문입니다. 나는 클래스가 매우 일반적이라는 것을 알고 있지만 객체가 있는지 궁금해하고 있습니다. 모든 클래스에 대해 적어도 하나의 객체를 만들어야합니까? 아니면 객체를 만들지 않고도 클래스를 만들고 사용할 수 있습니까?
왜'Move()'를'Player'가 아닌'Map'의 멤버 함수로 만들었습니까? – Maxpm
@ Maxx :이 작업을 수행해야하는 이유는 여러 가지가 있습니다. 그 중 하나는 플레이어의 위치를 캡슐화하는 '지도'입니다. 이 기능은 2D 그리드에서 충돌 감지를 수행 할 때 매우 유용합니다. –