저는 MonoGame/XNA를 처음 접했고 첫 번째 실제 게임에서 우주 침략자를 시도하고 재창조 할 것이라고 생각했습니다. 침입자의 움직임을 처리하기 위해 모든 것을 처리하기 위해 "InvaderManager"클래스를 만들었습니다. 그런 다음 "EntityManager"라는 다른 클래스를 만들어 총알과 같은 다른 모든 엔터티를 처리했습니다.좋은 엔티티 관리자 처리 - C# XNA/MonoGame
예를 들어, "Bullet"클래스의 충돌 코드로 침입자가 충돌했을 때 제거하려고 할 때 실제 게임의 의미를 처리하는 "MainGame"클래스 내에서만 해당 클래스에 액세스 할 수 있습니다. ("InvaderManager"클래스에 액세스해야 함을 의미), 조금 어색 해져서 기본적으로 이러한 관리자 클래스의 함수를 정적으로 만들어서 외부 클래스가 인스턴스없이 호출 할 수 있습니다.
for(int i = 0; i < InvaderManager.spaceInvaders.Count; i++)
{
if(CollisionDetect(InvaderManager.spaceInvaders[i]))
{
EntityManager.Remove(this);
InvaderManager.Remove(InvaderManager.spaceInvaders[i]);
}
}
이것은 물론 작동
하지만 뭔가이 그래서 아마도 내가이 모든 것을 처리 할 수있는 더 좋은 방법이 있다면 나는이 포럼을 물어 것이라고 생각 그것에 대해 갈 수있는 좋은 방법이 아니다 내게 말하고있다? 또는 내가 명시한 목적을 위해 특정 기능을 정적으로 만드는 것이 괜찮습니까?
각 클래스 내부에서 로직을 처리하지 마십시오. 로직은 게임 엔진 내부에서 처리되어야합니다. 이렇게하면 코드가 빨라지고 이러한 문제가 발생하지 않습니다. – Fredrik