문제

저는 Java에서 공정한 크기의 병원 시뮬레이션 게임을 개발하고 있습니다. 지금, 내 통증 방법이 조금 커서 보이기 시작했고, 그것을 다른 섹션으로 나누는 방법이 필요합니다 ... 아이디어가 있지만 이것이 가장 좋은 방법인지 확실하지 않습니다. 잔디를 칠한 다음 병원 건물, 모든 건물, 사람들, 건물을 건축 할 때 미리보기로 시작합니다. 잔디와 병원 건물은 변하지 않으므로 한 번만 페인트하면됩니다. 건물 자체는 새로운 건물이 건축 될 때만 자주 변하지 않습니다.

나는 부울 값을 사용하여 어떤 섹션이 페인팅이 필요한지 결정 했습니까? 이상적, Id는 페인트 방법을 분할 한 다음 필요할 때 각각을 호출 할 수 있기를 원하지만 물리적으로 분할하는 방법은 확실하지 않습니다.

나는 여전히 Java를 처음 접했고 이동 중에 배우고 있습니다.

미리 감사드립니다.

rel

도움이 되었습니까?

해결책

또 다른 아이디어는 화면에 그려야하는 모든 항목에 대한 슈퍼 클래스 또는 인터페이스를 만드는 것입니다. 이 클래스 ScreenObject를 cvall로 보자. 그런 다음 ScreenObject 클래스에 지정된 Draw (Graphics2d G) 메소드를 가질 수 있습니다. 다음으로, 그려야하는 각 객체는 draw () 메소드를 구현하고 그 자체를 그리기에만 관심이 있습니다. 이 드로우 방법을 전혀 실행 해야하는지 결정하는 변수를 작성하는 것을 고려할 수도 있습니다.

화면을 페인트하는 메인 클래스에서는 ArrayList의 모든 ScreenObjects를 참조 할 수 있으며 Paint () 메소드는 각 객체 의이 호출 Draw ()를 반복합니다.

다른 팁

나는 당신의 설명에서 당신의 장면이 타일로 나뉘어 있다고 가정합니다. 부울 배열을 유지하는 것은 다음 업데이트에서 타일을 다시 그려야하는 타일을 추적하는 좋은 방법입니다. 링크 사전 목록은 어떤 상황에서는 조금 더 잘 수행 될 수 있습니다. (나는 다시 그리기 할 타일이 수많은 타일이있는 삶의 게임 시뮬레이션을 생각하고 있으며 각 이웃을 확인해야 하므로이 경로로 갈 필요가 없습니다.)

코드를 보지 않고도 페인트 방법을 분할하는 데 매우 구체적인 조언을 할 수 없습니다. 스프라이트 애니메이션에서 각 스프라이트 객체에는 일반적으로 기본 그래픽 객체 (또는 버퍼)를 매개 변수로 취하는 자체 드로우 메소드를 가지고 있다고 말할 수 있습니다. 스프라이트는 자체 이미지와 위치를 알아야하므로 기본 이미지로 끌어들일 수 있습니다. 그런 다음 페인트 방법을 다시 작성하고 드로우 방법을 호출 해야하는 스프라이트 목록을 통해 반복 할 수 있습니다.

당신은 볼 수 있습니다 Java의 킬러 게임 프로그래밍 더 자세한 정보는.

글쎄, 나는 실제로 프로그래밍 전문가가 아니지만 내 페인트 방법을 분할하기 위해 항상 그래픽 객체를 가져 와서 페인트에서 호출하는 새로운 방법을 만들었습니다. 항상 코드를 구성하는 데 도움이되었지만 결코 없었습니다. 당신이 일하고있는 것처럼 들리므로 상황에 맞지 않을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top