2016-08-15 1 views
-1

SFML에서 스프라이트 시트를 가지고 있으며 애니메이션 스프라이트를 직접 만들려고합니다. 내 생각에 키보드 키를 누를 때마다 IntRect를 사용하여 수행되는 경계를 변경하는 것이지만 Intellect 변수가 모든 것을 고치지 않고 정의를 변경하는 방법은 찾을 수 없습니다. 이해할 수있는 대답을 해주시면 감사하겠습니다. 제가이 초심자라는 것을 알 수 있습니다.일단 정의 된 IntRect 변경은 어떻게합니까?

내가하고 싶은 일을 명확히하는 것은 sf::IntRect characterRect(0,0,192,192)에서 (0,192,192,192)으로 변경하는 것입니다.

+0

'characterRect = sf :: IntRect (0,192,192,192);'; 책 가져와. – LogicStuff

+0

@LogicStuff 젠장,이게 어리석은 질문이라는 걸 깨달았 어. –

답변

3

SFML의 그래픽 라이브러리를 사용하는 경우 sf::Sprite의 하위 클래스를 만들어야합니다. sf::Sprite에 의해 사용되는 사각형을 변경하는 것은 간단하다

mySpriteInstance.setTextureRect(sf::IntRect(0, 192, 192, 192)); 

은 (예를 들어 sf::IntRect, 그 별명)이 sf::Rect<T> 기억 - 의도적으로 -을 만들 매우 저렴 합니다. 이미 가지고있는 속성을 변경하는 대신 버리고 새 속성을 만듭니다. 그것이 분명히 요구되는 경우에만 동일한 사각형을 변경/유지해야합니다.

sf :: Sprite 클래스에 대한 자습서는 here입니다.