local ScreenShaker = class("ScreenShaker")
local scheduler = require("src.framework.scheduler")
function ScreenShaker:ctor(target, time)
self.init_x = 0 --[[初始位置x]]
self.init_y = 0 --[[初始位置y]]
self.diff_x = 0 --[[偏移量x]]
self.diff_y = 0 --[[偏移量y]]
self.diff_max = 8 --[[最大偏移量]]
self.interval = 0.01 --[[震动频率]]
self.totalTime = 0 --[[震动时间]]
self.time = 0 --[[计时器]]
self.target = target
self.init_x = target:getPositionX()
self.init_y = target:getPositionY()
self.totalTime = time
end
function ScreenShaker:run()
self.scheduler = scheduler.scheduleGlobal(function (ft)
self:shake(ft)
end, self.interval)
end
function ScreenShaker:shake(ft)
if self.time >= self.totalTime then
self:stop()
return
end