2013-02-18 1 views
1

저는 j2me로 게임을 개발 중입니다. 나는 4 개의 이미지 세트에 대해 하나의 스프라이트를 사용하고 있으므로 sprite.setImage()을 사용하여 스프라이트의 이미지를 변경합니다. 나는 런타임 동안 스프라이트에 이미지를 무작위로 설정하고있다.이미지를 j2me로 설정하십시오.

런타임 중에 스프라이트가 사용하는 이미지를 확인하는 방법은 무엇입니까?

답변

1

짧은 버전 : 당신은 할 수 없거나 그렇게해서는 안됩니다.

긴 버전 : 두 가지 일반적인 패턴 (I는 한 번에 모두 사용한다)는 다음과 같습니다

  • 항상 모든 스프라이트 (타일, 그리고 다른 모든 것들)에 대해 하나 개의 이미지를 사용합니다. 그런 다음 프레임 또는 프레임 시퀀스를 변경하여 스프라이트를 수정합니다.

  • 기본 모델/뷰 분리를 적용하십시오. 보기 (스프라이트)를 게임 상태에 대한 지식의 원천으로 삼지 말고 쓰기 전용 리소스로 간주하십시오. 게임의 상태는 어떤 이미지가 어떤 스프라이트로 설정되었는지 잘 알고있는 어떤 모델 클래스에있다. 이러한 접근 방식은 더 많은 문제점을 해결할 수 있습니다. 일부 문제는 발생하기 전에 감지하기가 어렵습니다 (예 : 생명을 잃을 때 애니메이션이 발생하는 경우 스프라이트의 논리적 및 물리적 위치 간의 차이).

+0

모든 이미지에서 프레임 수가 동일하지 않은 경우. 단일 스프라이트에 사용 된 이미지 사이를 구별하는 방법은 무엇입니까? – Andy

+1

@ 앤디 : 내 답변의 짧은 버전에서와 마찬가지로 : 당신은 할 수 없습니다. 스프라이트는 대부분 쓰기 전용입니다 (그리고 그것은 훌륭합니다). 적절한 모델을 구축하여 프레임을 직접 관리하거나 포옹 할 수 있습니다. 또는 이미지가 포함 된 스프라이트로 색인화 된 Hashtable을 작성하여 둘러보십시오. 모델을 구축하는 것은 게임이 퐁 (pong)이 아니라면 피할 수없는 것입니다. 따라서 장기적으로 빨지 않는 유일한 솔루션입니다. – fdreger

관련 문제