瀏覽代碼

[LUA] AnimationState trackCount bugfixes (#466)

* resolved conflict

* made trackCount keep count, not maximum track index.
Matthew 9 年之前
父節點
當前提交
db2190e7db
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      spine-lua/AnimationState.lua

+ 4 - 4
spine-lua/AnimationState.lua

@@ -65,7 +65,7 @@ function AnimationState.new (data)
 		end
 		end
 
 
 		self.tracks[index] = entry
 		self.tracks[index] = entry
-		self.trackCount = math.max(self.trackCount, index)
+		self.trackCount = math.max(self.trackCount, index + 1)
 
 
 		if entry.onStart then entry.onStart(index) end
 		if entry.onStart then entry.onStart(index) end
 		if self.onStart then self.onStart(index) end
 		if self.onStart then self.onStart(index) end
@@ -73,7 +73,7 @@ function AnimationState.new (data)
 
 
 	function self:update (delta)
 	function self:update (delta)
 		delta = delta * self.timeScale
 		delta = delta * self.timeScale
-		for i = 0, self.trackCount do
+		for i = 0, self.trackCount - 1 do
 			local current = self.tracks[i]
 			local current = self.tracks[i]
 			if current then
 			if current then
 				current.time = current.time + delta * current.timeScale
 				current.time = current.time + delta * current.timeScale
@@ -96,7 +96,7 @@ function AnimationState.new (data)
 	end
 	end
 
 
 	function self:apply(skeleton)
 	function self:apply(skeleton)
-		for i = 0, self.trackCount do
+		for i = 0, self.trackCount - 1 do
 			local current = self.tracks[i]
 			local current = self.tracks[i]
 			if current then
 			if current then
 				local time = current.time
 				local time = current.time
@@ -211,7 +211,7 @@ function AnimationState.new (data)
 			end
 			end
 			last.next = entry
 			last.next = entry
 		else
 		else
-			self.tracks[trackIndex] = entry
+			setCurrent(trackIndex, entry)
 		end
 		end
 
 
 		delay = delay or 0
 		delay = delay or 0