2009-08-18 4 views
1

간단한 포인트 & 기본 게임 라이브러리가있는 C#에서 게임을 클릭하고 싶습니다.이 프로젝트에서는 openGL/SDL/Tao가 없습니다.C#에서 기본 그래픽으로 System.Drawing

간단히 말해서 양식의 레이어에서 클릭 가능한 이미지를 그릴 수있는 가장 좋은 방법에 대해 궁금합니다.

이상적으로, 나는

1) 환경 층 (경로, 문, 등)

2) 오브젝트 레이어 (항목)

3) 문자 층 (적)

있을 것입니다 이상적으로 다른 레이어 아래의 레이어는 여전히 볼 수 있으므로 객체 아래에 환경을 볼 수 있습니다 (객체를 그리는 데 사용하는 구성 요소가 투명해야 함).

이 게임은 타일 기반이 될 것입니다 ... 그래서 구성 요소의 일종의 2D 배열을 생성하고 양식에 넣어 것입니다. 문제는 무엇을 사용해야합니까? 친구가 패널을 생성하여 양식 위에 놓고 배경 이미지 속성을 사용하도록 권장했지만 더 좋은 방법이 있습니까?

나는 이것이 이상적인 개발 방법이 아니라는 것을 알고있다 ... 이것은 나 자신을위한 원형이다. 나중에 타오 (Tao)로 옮길 것입니다. 그러나 지금은 (즉, 내년 정도), 나는 매우 간단하게하고 싶습니다.

답변

2

타일은 단순히 UI를 구성하는 논리적 인 부분입니다. "타일"아이디어를 사용하기 위해 반드시 패널의 형태로 타일을 가질 필요는 없습니다. 타일을 바꾸는 것은 캐릭터가 타일 A의 오른쪽 가장자리에 도달했기 때문에 타일 B를 그 타일의 왼쪽 가장자리에 배치한다는 의미 일 수 있습니다. 따라서 메모리 구조는 무엇을 그리지 만 반드시 패널 일 필요는없는 정보에 대한 정보가 들어있는 논리 타일 객체의 2D 배열이어야합니다.이 옵션은 옵션이지만 권장하지 않습니다.

레이어 : 레이어에 대해 걱정할 필요가 없습니다. 당신이해야 할 일은 정확한 순서대로 그림을 그리는 것입니다 : 환경 우선, 객체와 문자. 닷넷과 아마 모든 프레임 워크는 앞쪽으로 그려집니다. 즉, 먼저 그려진 것이 나중에 그려지는 객체에 의해 전체적으로 또는 부분적으로 가려 질 수 있습니다. "겹침"은 자동으로 발생합니다. 자신의 범위 내에서 객체를 그리면 투명성에 대해 걱정할 필요가 없습니다. 예 : 20x20 픽셀 문자가 20x20 픽셀 경계 내에서 그려집니다.

이것은 모두 e.Graphics.Draw * 및 e.Graphics.Fill *의 원시 호출을 Paint 이벤트 핸들러에서 가정합니다. 소프트웨어에서와 마찬가지로 101 가지 방법이 있습니다 ...

관련 문제