2012-03-23 2 views
1

그래서 Age of Empires 2와 비슷한 게임을 만들고 있습니다. 지금까지 내가 해왔 던 것은 애플릿을 사용하고 타일과 격자 배열을 만들어 단위와 건물을 만드는 것입니다. 장기적으로 이것은 비효율적이라고 느낍니다. 아마도 GUI를 사용하여이 작업을 수행하는 더 좋은 방법이있을 것이라고 확신합니다. 그러나 나는 경험이 많은 프로그래머가 아니므로 더 원시적 인 방법을 사용했습니다. 맵에 문자와 건물이 포함 된 타일을 더 효율적이고 효과적으로 만드는 방법이 있습니까?게임 인터페이스 디자인

감사합니다. 이것은 일반적으로 2D 게임에서지도를 표시하는 데 사용되는 것입니다 - enter image description here

+7

당신을 어떤 식 으로든 격추 시키려고하지는 않지만, 매우 숙련 된 프로그래머가 아니라면, 약간 힘든 프로젝트로 시작하고 싶을 수도 있습니다. –

+1

또한 http://gamedev.stackexchange.com에 관심이있을 수 있습니다. –

답변

1

타일의 배열이 잘되어야 :

이 내가처럼 보이게하는 방법을 꽤 많이 있습니다. 각 사각형은 여러 개체을 포함 할 수있는 각 사각형은 하나 개의 타일을

  • 단위/건물/다른 게임 객체를 포함

    • 지도 지형 타일, : 당신은 아마 구별하기를 원할 것입니다

    지형의 경우 하나의 타일이 각 위치에 하나씩 있어도 괜찮습니다.

    다른 개체의 경우 각 사각형에 여러 개체를 저장하는 방법이 필요합니다. 각 사각형에 ArrayList가있는 배열을 사용할 수 있습니다. 그러나 많은 빈 ArrayList를 만들지 않도록 모든 내용이없는 모든 사각형에 null을 남기고 싶을 수도 있습니다.

    전체 게임 개체를 반복하고 전체지도를 검색하지 않고도 특정 개체를 빠르게 찾을 수 있도록 전역 개체 모음을 만드는 것이 유용합니다. 나는 일반적으로 정수 키가 각 게임 객체의 고유 ID 인 HashMap과 같은 것을 사용한다.

  • 0

    '비효율적 인 부분'으로 간주됩니다. 대부분의 배열 요소에 데이터가 포함될 경우 배열을 사용하는 것이 가장 좋은 방법이기 때문에 데이터를 빠르고 쉽게 찾을 수 있어야합니다. 이해하기 쉽고, 데이터 저장을 위해 기술 된 논리 mikera는 시작하기에 매우 좋은 방법입니다.

    매우 큰 타일 기반 게임이 데이터를 저장하는 데 사용되는 데이터 구조가 있습니다. 이들 대부분은 '스파 스'그래프에 최적화되어 있습니다. 스파 스 그래프는 대부분의 위치가 비어 있지만 그 중 일부는 내용이있는 그래프입니다. 매우 큰 세계지도는 종종 이러한 특성을 가지고 있습니다. 이러한 시나리오에 대해 궁금하다면 google "quad tree tiling"을 수행해야합니다.

    그러나 일반적으로 개발을 배우는 중이라면 배열을 고수하십시오. 조숙 한 최적화는 모든 악의 근원입니다. :)