所以我使用這個spritesheet(4個精靈和一個coloumn中的3個精靈)來爲我製作的遊戲中的角色製作動畫。它動畫就好,沒有問題,就像我想要的那樣確定在python/pygame中動畫的第一個精靈
當我想要將狀態從「破折號」(運行到敵人)改變爲「攻擊」(好,攻擊敵人)時,問題開始出現。它似乎並沒有從一開始就播放攻擊精靈(索引0)
我在set_state(self)函數上使用了self._currentFrame = 3,所以當函數改變時它將幀重置爲第三幀,這使得(self.currentFrame + 1)%4返回0
但仍然,有時它不會做我想要的,並開始約2號或3號動畫(動畫結束)的動畫。我如何確保我的動畫從索引0開始?
我的更新代碼如下,如果它可以幫助
self.frameTime += dt
if self.fps is not -1:
while self.frameTime > 1.0/self.fps:
self.frameTime -= 1.0/self.fps
self.currentFrame = (self.currentFrame + 1) % 4
self.currentVFrame = (self.currentVFrame + 1) % 3
啊那是我的錯誤,我先編寫子類,然後將該currentFrame帶到父類。但是我現在已經更正了代碼,並且在執行邏輯之前已經打印了值 是的,在邏輯運行之前值是3,但它只在打印一次時纔像我想要的那樣工作。通常值3打印3次之前,它變成0(這意味着指數3首先呈現) 我不知道如何控制值,所以它打印爲3每次攻擊時,有什麼想法? – Daggio 2010-08-09 01:33:51
如果您希望任何人能夠進一步幫助您(例如,將「self.currentFrame」指定爲3的代碼),則需要使用附加代碼更新您的問題。 – Andrew 2010-08-09 02:44:43