2010-04-21 68 views
5

可以說我有4個圖像,並且我想使用這4個圖像來動畫一個角色。這4個圖像代表走路的角色。只要我按下鍵移動動畫,但我想要動畫重複一次,但是當我壓下它時停止動畫。如果你不知道它,它不需要是SFML特有的,只有基礎理論才能真正幫助我。如何在SFML中爲精靈創建動畫

謝謝。

回答

10

你可能想要一些簡單的狀態機。當按鍵關閉時(請參閱sf::Input's IsKeyDown method),將字符置於「動畫」狀態。當鍵未關閉時,使字符處於「未動畫」狀態。當然,你總是可以跳過這個「狀態」,只是做下面提到的事情(具體取決於你在做什麼)。

然後,如果角色處於「動畫」狀態,則獲取下一個「圖像」(有關該圖像的更多細節,請參閱下一段落)。例如,如果您將圖像存儲在簡單的4元素數組中,則下一張圖像的格式爲(currentIndex + 1) % ARRAY_SIZE。根據你在做什麼,你可能想要將圖像幀存儲在更復雜的數據結構中。如果角色不處於「動畫」狀態,那麼你不會在這裏做任何更新。

如果您的「4張圖片」在同一個圖片文件中,您可以使用sf :: Sprite的SetSubRect方法更改所顯示圖片的部分。如果你實際上有4個不同的圖像,那麼你可能需要使用sf :: Sprite的SetImage方法來切換圖像。

+1

你會如何執行一個幀率,以便動畫不會發生得太快? – andrewtweber 2013-09-07 20:34:45