v1.4.4
This commit is contained in:
commit
9c94d113d3
10260 changed files with 1237388 additions and 0 deletions
72
assets/devel/objects/movingplatforms/movingplatform.lua
Normal file
72
assets/devel/objects/movingplatforms/movingplatform.lua
Normal file
|
@ -0,0 +1,72 @@
|
|||
require "/scripts/vec2.lua"
|
||||
require "/scripts/poly.lua"
|
||||
|
||||
function init()
|
||||
self.cycle = 0
|
||||
self.dir = 0
|
||||
self.platformStart = config.getParameter("platformStart")
|
||||
self.platformEnd = config.getParameter("platformEnd")
|
||||
self.platformMoveTime = config.getParameter("platformMoveTime")
|
||||
end
|
||||
|
||||
function getMode()
|
||||
if not object.isInputNodeConnected(0) then
|
||||
return "bounce"
|
||||
elseif object.getInputNodeLevel(0) then
|
||||
return "toend"
|
||||
else
|
||||
return "tostart"
|
||||
end
|
||||
end
|
||||
|
||||
function update()
|
||||
local mode = getMode()
|
||||
|
||||
local cycle = self.cycle
|
||||
local dir = self.dir
|
||||
|
||||
if mode == "tostart" then
|
||||
if cycle > 0.0 then
|
||||
dir = -1
|
||||
else
|
||||
dir = 0
|
||||
end
|
||||
elseif mode == "toend" then
|
||||
if cycle < 1.0 then
|
||||
dir = 1
|
||||
else
|
||||
dir = 0
|
||||
end
|
||||
else
|
||||
if dir == 0 then
|
||||
dir = 1
|
||||
end
|
||||
|
||||
if cycle == 1.0 then
|
||||
dir = -1
|
||||
elseif cycle == 0.0 then
|
||||
dir = 1
|
||||
end
|
||||
end
|
||||
|
||||
cycle = cycle + script.updateDt() / self.platformMoveTime * self.dir
|
||||
cycle = math.min(math.max(cycle, 0.0), 1.0)
|
||||
|
||||
if dir == 0 then
|
||||
animator.setAnimationState("moving", "off")
|
||||
else
|
||||
animator.setAnimationState("moving", "on")
|
||||
end
|
||||
|
||||
local pos = vec2.add(vec2.mul(self.platformStart, 1.0 - cycle), vec2.mul(self.platformEnd, cycle))
|
||||
physics.setCollisionPosition("platform", pos)
|
||||
animator.resetTransformationGroup("platform")
|
||||
animator.translateTransformationGroup("platform", pos)
|
||||
|
||||
if dir ~= self.dir then
|
||||
animator.playSound("changeDir")
|
||||
end
|
||||
|
||||
self.cycle = cycle
|
||||
self.dir = dir
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue