源战役客户端
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 line
1.2 KiB

  1. BarrageItem = BarrageItem or BaseClass()
  2. function BarrageItem:__init(parent,prefab,recycle_callback)
  3. local go = newObject(prefab)
  4. local label = go:GetComponent("Text")
  5. local transform = go.transform
  6. transform:SetParent(parent)
  7. transform.localScale = Vector3.one
  8. self.gameObject = go
  9. self.transform = transform
  10. self.label = label
  11. self.width = 0
  12. self.end_call_back = recycle_callback
  13. end
  14. function BarrageItem:SetData(data)
  15. self.label.text = data.str
  16. self.width = self.label.preferredWidth
  17. self.duration = data.duration or 5
  18. end
  19. function BarrageItem:Fire()
  20. local posY = BarrageManager:getInstance():GetRandomFirePosY()
  21. local half_screen_width = BarrageManager:getInstance().width/2
  22. self.transform.localPosition = Vector3(half_screen_width, posY, 0)
  23. self.tween_play = TweenLite.to(self, self.transform, TweenLite.UiAnimationType.POSX, -half_screen_width-self.width, self.duration, function()
  24. if self.end_call_back then
  25. self.end_call_back(self)
  26. end
  27. end, TweenFunc.LINEAR)
  28. end
  29. function BarrageItem:StopRunning()
  30. if self.tween_play then
  31. TweenLite.Stop(self.tween_play)
  32. self.tween_play = nil
  33. end
  34. end
  35. function BarrageItem:__delete()
  36. self:StopRunning()
  37. end