From 694ef22777e8f4bdaac5d66b3a06b9ba598ccd67 Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Wed, 31 May 2023 20:11:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A0=BC=E5=AD=90=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E4=B8=8Bspine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/ui/battle/cell/grid_cell.lua | 23 +++++++++++++++++-- .../userdata/battle/battle_grid_entity.lua | 12 ++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/lua/app/ui/battle/cell/grid_cell.lua b/lua/app/ui/battle/cell/grid_cell.lua index d0f88f5f..b1f7b52a 100644 --- a/lua/app/ui/battle/cell/grid_cell.lua +++ b/lua/app/ui/battle/cell/grid_cell.lua @@ -29,8 +29,27 @@ function GridCell:refresh(gridEntity, curElement, skillPosId) if self.lastGridType ~= gridEntity:getGridType() then self.lastGridType = gridEntity:getGridType() - local atlas, icon = gridEntity:getIcon() - uiMap["grid_cell.touch_node.ani_node.up_bg"]:setSprite(atlas, icon) + local spineObj = uiMap["grid_cell.touch_node.ani_node.up_bg.ui_spine_obj"] + local upBg = uiMap["grid_cell.touch_node.ani_node.up_bg"] + if gridEntity:getSpineAsset() then + spineObj:setActive(true) + Logger.logHighlight(gridEntity:getSpineIdleName()) + spineObj:loadAssetAsync(gridEntity:getSpineAsset(), function() + if gridEntity:getSpineChangeName() then + spineObj:playAnimComplete(gridEntity:getSpineChangeName(), false, true, function() + spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) + end, true) + else + Logger.logHighlight("----") + spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) + end + end) + upBg:setSprite(GConst.ATLAS_PATH.COMMON, "common_alpha") + else + spineObj:setActive(false) + local atlas, icon = gridEntity:getIcon() + upBg:setSprite(atlas, icon) + end end local skillIcon = uiMap["grid_cell.touch_node.ani_node.skill_icon"] diff --git a/lua/app/userdata/battle/battle_grid_entity.lua b/lua/app/userdata/battle/battle_grid_entity.lua index a83f3d79..9984e0e7 100644 --- a/lua/app/userdata/battle/battle_grid_entity.lua +++ b/lua/app/userdata/battle/battle_grid_entity.lua @@ -394,4 +394,16 @@ function BattleGridEntity:getBreakFlyToCharacterIcon() return self:getGridTypeConfig().bftc_icon end +function BattleGridEntity:getSpineAsset() + return self:getGridTypeConfig().spine_name +end + +function BattleGridEntity:getSpineIdleName() + return self:getGridTypeConfig().spine_idle +end + +function BattleGridEntity:getSpineChangeName() + return self:getGridTypeConfig().spine_change +end + return BattleGridEntity \ No newline at end of file From 3259281fe86bb4290baefe9b82e70967346e532f Mon Sep 17 00:00:00 2001 From: xiekaidong Date: Wed, 31 May 2023 20:18:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lua/app/bf/unity/ui_spine_object.lua | 4 ++-- lua/app/ui/battle/cell/grid_cell.lua | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lua/app/bf/unity/ui_spine_object.lua b/lua/app/bf/unity/ui_spine_object.lua index 414a5ce1..8366e4f5 100644 --- a/lua/app/bf/unity/ui_spine_object.lua +++ b/lua/app/bf/unity/ui_spine_object.lua @@ -95,8 +95,8 @@ function UISpineObject:rePlayAnim(animName, loop, forceRefresh) end end -function UISpineObject:playAnimComplete(animName, loop, forceRefresh, complete) - local spineAnim = self:getAnimation(self:playAnim(animName, loop, forceRefresh)) +function UISpineObject:playAnimComplete(animName, loop, forceRefresh, complete, forceGetSG) + local spineAnim = self:getAnimation(self:playAnim(animName, loop, forceRefresh, forceGetSG)) local duration = spineAnim.Duration local sequence = self:createBindTweenSequence() sequence:AppendInterval(duration) diff --git a/lua/app/ui/battle/cell/grid_cell.lua b/lua/app/ui/battle/cell/grid_cell.lua index b1f7b52a..3fee2761 100644 --- a/lua/app/ui/battle/cell/grid_cell.lua +++ b/lua/app/ui/battle/cell/grid_cell.lua @@ -33,14 +33,12 @@ function GridCell:refresh(gridEntity, curElement, skillPosId) local upBg = uiMap["grid_cell.touch_node.ani_node.up_bg"] if gridEntity:getSpineAsset() then spineObj:setActive(true) - Logger.logHighlight(gridEntity:getSpineIdleName()) spineObj:loadAssetAsync(gridEntity:getSpineAsset(), function() if gridEntity:getSpineChangeName() then spineObj:playAnimComplete(gridEntity:getSpineChangeName(), false, true, function() spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) end, true) else - Logger.logHighlight("----") spineObj:playAnim(gridEntity:getSpineIdleName(), true, false, true) end end) @@ -238,6 +236,7 @@ end function GridCell:setGridTypeIcon(icon) local uiMap = self:getUIMap() uiMap["grid_cell.touch_node.ani_node.up_bg"]:setSprite(GConst.ATLAS_PATH.BATTLE, icon) + uiMap["grid_cell.touch_node.ani_node.up_bg.ui_spine_obj"]:setActive(false) end return GridCell \ No newline at end of file