Browse Source

[lua] Added event volume and balance, see #1171.

badlogic 7 years ago
parent
commit
751c6e23db

+ 2 - 2
examples/export/runtimes.sh

@@ -90,7 +90,7 @@ cp -f ../raptor/export/raptor-pro.json ../../spine-corona/data
 cp -f ../raptor/export/raptor.atlas ../../spine-corona/data
 cp -f ../raptor/export/raptor.png ../../spine-corona/data
 
-cp -f ../spineboy/export/spineboy-ess.json ../../spine-corona/data
+cp -f ../spineboy/export/spineboy-pro.json ../../spine-corona/data
 cp -f ../spineboy/export/spineboy.atlas ../../spine-corona/data
 cp -f ../spineboy/export/spineboy.png ../../spine-corona/data
 
@@ -126,7 +126,7 @@ cp -f ../raptor/export/raptor-pro.json ../../spine-love/data
 cp -f ../raptor/export/raptor.atlas ../../spine-love/data
 cp -f ../raptor/export/raptor.png ../../spine-love/data
 
-cp -f ../spineboy/export/spineboy-ess.json ../../spine-love/data
+cp -f ../spineboy/export/spineboy-pro.json ../../spine-love/data
 cp -f ../spineboy/export/spineboy.atlas ../../spine-love/data
 cp -f ../spineboy/export/spineboy.png ../../spine-love/data
 

File diff suppressed because it is too large
+ 0 - 0
spine-corona/data/spineboy-ess.json


File diff suppressed because it is too large
+ 0 - 0
spine-corona/data/spineboy-pro.json


+ 2 - 2
spine-corona/main.lua

@@ -60,7 +60,7 @@ function loadSkeleton(atlasFile, jsonFile, x, y, scale, animation, skin)
 		print(entry.trackIndex.." dispose: "..entry.animation.name)
 	end
 	animationState.onEvent = function (entry, event)
-		print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'")
+		print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'" .. ", " .. event.volume .. ", " .. event.balance)
 	end
 	
   if atlasFile == "spineboy.atlas" then
@@ -81,9 +81,9 @@ function loadSkeleton(atlasFile, jsonFile, x, y, scale, animation, skin)
 	return { skeleton = skeleton, state = animationState }
 end
 
+table.insert(skeletons, loadSkeleton("spineboy.atlas", "spineboy-pro.json", 240, 300, 0.4, "walk"))
 table.insert(skeletons, loadSkeleton("stretchyman.atlas", "stretchyman-stretchy-ik.json", 40, 300, 0.5, "sneak"))
 table.insert(skeletons, loadSkeleton("coin.atlas", "coin-pro.json", 240, 300, 0.4, "rotate"))
-table.insert(skeletons, loadSkeleton("spineboy.atlas", "spineboy-ess.json", 240, 300, 0.4, "walk"))
 table.insert(skeletons, loadSkeleton("raptor.atlas", "raptor-pro.json", 200, 300, 0.25, "walk"))
 table.insert(skeletons, loadSkeleton("goblins.atlas", "goblins-pro.json", 240, 300, 0.8, "walk", "goblin"))
 table.insert(skeletons, loadSkeleton("stretchyman.atlas", "stretchyman-pro.json", 40, 300, 0.5, "sneak"))

File diff suppressed because it is too large
+ 0 - 0
spine-love/data/spineboy-ess.json


File diff suppressed because it is too large
+ 0 - 0
spine-love/data/spineboy-pro.json


+ 2 - 2
spine-love/main.lua

@@ -84,7 +84,7 @@ function loadSkeleton (jsonFile, atlasFile, animation, skin, scale, x, y)
 		print(entry.trackIndex.." dispose: "..entry.animation.name)
 	end
 	state.onEvent = function (entry, event)
-		print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'")
+		print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'" .. ", " .. event.volume .. ", " .. event.balance)
 	end
 	
 	state:update(0.5)
@@ -96,9 +96,9 @@ end
 function love.load(arg)
 	if arg[#arg] == "-debug" then require("mobdebug").start() end
 	skeletonRenderer = spine.SkeletonRenderer.new(true)
+	table.insert(skeletons, loadSkeleton("spineboy-pro", "spineboy", "walk", nil, 0.5, 400, 500))
 	table.insert(skeletons, loadSkeleton("stretchyman-pro", "stretchyman", "sneak", nil, 0.3, 200, 500))
 	table.insert(skeletons, loadSkeleton("coin-pro", "coin", "rotate", nil, 0.5, 400, 500))
-	table.insert(skeletons, loadSkeleton("spineboy-ess", "spineboy", "walk", nil, 0.5, 400, 500))
 	table.insert(skeletons, loadSkeleton("raptor-pro", "raptor", "walk", nil, 0.3, 400, 500))
 	table.insert(skeletons, loadSkeleton("goblins-pro", "goblins", "walk", "goblin", 1, 400, 500))
 	table.insert(skeletons, loadSkeleton("tank-pro", "tank", "drive", nil, 0.2, 600, 500))

+ 2 - 2
spine-lua/Animation.lua

@@ -1240,10 +1240,10 @@ function Animation.IkConstraintTimeline.new (frameCount)
 					if (math_floor(frames[zlen(frames) + PREV_STRETCH]) == 1) then constraint.stretch = true else constraint.stretch = false end
 				end
 			else
-				constraint.mix = constraint.mix + (frames[frames.length + PREV_MIX] - constraint.mix) * alpha;
+				constraint.mix = constraint.mix + (frames[zlen(frames) + PREV_MIX] - constraint.mix) * alpha;
 				if direction == MixDirection._in then 
 					constraint.bendDirection = math_floor(frames[zlen(frames) + PREV_BEND_DIRECTION])
-					if (math_floor(frames[zlen(frames) + PREV_COMPRES]) == 1) then constraint.compress = true else constraint.compress = false end
+					if (math_floor(frames[zlen(frames) + PREV_COMPRESS]) == 1) then constraint.compress = true else constraint.compress = false end
 					if (math_floor(frames[zlen(frames) + PREV_STRETCH]) == 1) then constraint.stretch = true else constraint.stretch = false end
 				end
 			end

+ 3 - 1
spine-lua/Event.lua

@@ -37,7 +37,9 @@ function Event.new (time, data)
 		intValue = 0,
 		floatValue = 0,
 		stringValue = nil,
-		time = time
+		time = time,
+		volume = 1,
+		balance = 0
 	}
 
 	return self

+ 4 - 1
spine-lua/EventData.lua

@@ -36,7 +36,10 @@ function EventData.new (name)
 		name = name,
 		intValue = 0,
 		floatValue = 0,
-		stringValue = nil
+		stringValue = nil,
+		audioPath = nil,
+		volume = 1,
+		balance = 0
 	}
 
 	return self

+ 9 - 0
spine-lua/SkeletonJson.lua

@@ -274,6 +274,11 @@ function SkeletonJson.new (attachmentLoader)
 				data.intValue = getValue(eventMap, "int", 0)
 				data.floatValue = getValue(eventMap, "float", 0)
 				data.stringValue = getValue(eventMap, "string", "")
+				data.audioPath = getValue(eventMap, "audio", nil)
+				if data.audioPath ~= nil then
+					data.volume = getValue(eventMap, "volume", 1)
+					data.balance = getValue(eventMap, "balance", 0)
+				end
 				table_insert(skeletonData.events, data)
 			end
 		end
@@ -826,6 +831,10 @@ function SkeletonJson.new (attachmentLoader)
 				else
 					event.stringValue = eventData.stringValue
 				end
+				if eventData.audioPath ~= nil then
+					event.volume = getValue(eventMap, "volume", 1)
+					event.balance = getValue(eventMap, "balance", 0)
+				end
 				timeline:setFrame(frameIndex, event)
 				frameIndex = frameIndex + 1
 			end

Some files were not shown because too many files changed in this diff