源战役客户端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 

56 рядки
1.5 KiB

StarLineItem = StarLineItem or BaseClass(BaseItem)
function StarLineItem:__init()
self.base_file = "starMap"
self.layout_file = "StarLineItem"
self.data = nil
self.is_delay_callback = true
self.model = StarMapModel:getInstance()
self:Load()
end
function StarLineItem:Load_callback()
self.checkmark = self:GetChild("checkmark"):GetComponent("ImageExtend")
if self.need_refreshData then
self:SetData(self.data)
end
if self.need_setLight then
self:SetLight(self.is_light)
end
end
function StarLineItem:SetData(data)
if data == nil then return end
self.data = data
if self.is_loaded then
local pos1 = self.model:GetPointPos(data.star_map_id)
local pos2 = self.model:GetPointPos(data.star_map_id+1)
if pos1 == nil or pos2 == nil then return end
local pos_x = math.floor((pos1.x + pos2.x)/2)
local pos_y = math.floor((pos1.y + pos2.y)/2)
local length = math.floor(GameMath.GetDistance(pos1.x,pos1.y,pos2.x,pos2.y,true))
local angle = math.atan((pos2.y-pos1.y)/(pos2.x-pos1.x))*180/math.pi
self.transform.sizeDelta = Vector2(length,14)
--self.checkmark.transform.sizeDelta = Vector2(length,4)
self:SetPosition(pos_x,pos_y)
self:SetRotation(0,0,angle)
self.need_refreshData = false
else
self.need_refreshData = true
end
end
function StarLineItem:SetLight(bool)
self.is_light = bool
if self.is_loaded then
self.checkmark.gray = not bool
self.need_setLight = false
else
self.need_setLight = true
end
end
function StarLineItem:__delete()
end