源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

42 lines
1.2 KiB

BarrageItem = BarrageItem or BaseClass()
function BarrageItem:__init(parent,prefab,recycle_callback)
local go = newObject(prefab)
local label = go:GetComponent("Text")
local transform = go.transform
transform:SetParent(parent)
transform.localScale = Vector3.one
self.gameObject = go
self.transform = transform
self.label = label
self.width = 0
self.end_call_back = recycle_callback
end
function BarrageItem:SetData(data)
self.label.text = data.str
self.width = self.label.preferredWidth
self.duration = data.duration or 5
end
function BarrageItem:Fire()
local posY = BarrageManager:getInstance():GetRandomFirePosY()
local half_screen_width = BarrageManager:getInstance().width/2
self.transform.localPosition = Vector3(half_screen_width, posY, 0)
self.tween_play = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSX, -half_screen_width-self.width, self.duration, function()
if self.end_call_back then
self.end_call_back(self)
end
end, TweenFunc.LINEAR)
end
function BarrageItem:StopRunning()
if self.tween_play then
TweenLite.Stop(self.tween_play)
self.tween_play = nil
end
end
function BarrageItem:__delete()
self:StopRunning()
end