SFML 2에서 2D 하향식 게임을하고 있는데 모든 것이 작동하고 잘 어울리는 우아한 방법을 찾아야합니다.
설명해주세요. 모든 클래스에 그리기 메소드와 업데이트 메소드를 제공하는 추상 기반에서 상속되는 많은 클래스가 있습니다.
게임 루프에서 update를 호출 한 다음 각 클래스를 그립니다. 이것이 일반적인 접근법이라고 생각합니다. 타일, 충돌, 플레이어 및 모든 타일 / 이미지 / 텍스처를 포함하는 리소스 관리자에 대한 클래스가 있습니다. SFML에서 입력이 작동하는 방식으로 인해 업데이트 호출에서 각 클래스가 입력을 처리하도록 결정했습니다 (필요한 경우).
지금까지 필요에 따라 종속성을 전달했습니다. 예를 들어, 이동 키를 누를 때 플레이어 클래스에서 플레이어가 이동하려는 위치가 충돌인지 확인하기 위해 충돌 클래스의 메소드를 호출합니다. 충돌이없는 경우에만 플레이어를 움직입니다.
이것은 대부분 잘 작동하지만 더 잘 할 수 있다고 생각합니다. 어떻게 잘 모르겠습니다.
이제 구현해야하는 더 복잡한 작업이 있습니다. 예 : 플레이어가지면에있는 물체까지 걸어 갈 수 있으며, 키를 눌러 가져 와서 잃어버린 다음 인벤토리에 표시됩니다. 이것은 몇 가지 일이 발생해야 함을 의미합니다.
- 키를 누를 때 플레이어가 찾기 쉬운 아이템 범위에 있는지 확인하십시오. 그렇지 않으면 진행하지 마십시오.
- 항목을 찾으십시오.
- 항목의 스프라이트 텍스처를 기본 텍스처에서 "풀린"텍스처로 업데이트합니다.
- 항목의 충돌을 업데이트하십시오. 모양이 변경되었거나 완전히 제거되었을 수 있습니다.
- 추가 된 품목으로 재고를 갱신해야합니다.
모든 것을 의사 소통하려면 어떻게해야합니까? 현재 시스템을 사용하면 클래스가 범위를 벗어나고 어디서나 메소드 호출이 완료됩니다. 하나의 큰 관리자로 모든 수업을 묶고 각 관리자에게 부모 관리자 수업에 대한 참조를 제공 할 수는 있지만 약간 더 나은 것 같습니다.
어떤 도움이나 조언이라도 대단히 감사하겠습니다! 불분명 한 것이 있으면 확장 해 드리겠습니다.