(lua) 基于cocos 的插入光效

具体的表现是:移动滚动容器到头部, 新增icon淡入并掉入格子,显示格子中的图标,icon放大并淡出

 1 function UISkyResource:playActivedEffect(id)
 2     if not id or id == 0 then
 3         return;
 4     end
 5 
 6     -- 找到设置的探索符石,滚动过去,选中它
 7     local index     = 1;
 8     -- 道具模块,用来查找道具(id)的 “...”属性
 9     local iconIndex = ItemM.query(id, "icon");
10     -- 封装的方法用来查找特定类型图片路径,参数为图片名
11     local iconPath  = getItemIconPath(iconIndex);
12     local stoneGrid = self.scrollView:getChildByName("item" .. index);
13     local stoneIcon = stoneGrid:getChildByName("icon");
14     stoneIcon:setVisible(false);
15 
16     -- 计算内部容器位移
17     -- 单元格间距(纵向)
18     local hGap = 10;
19     -- 顶部单元格与容器顶的距离
20     local topHGap  = 5;
21     -- 单元格高度
22     local iconHeight = 110;
23     -- 容器框高度
24     local viewHeight = self.scrollView:getContentSize().height;
25     -- 容器滚动高度
26     local innerHeight = self.scrollView:getInnerContainerSize().height;
27     -- 容器需要滚动的高度值
28     local y = innerHeight - topHGap - (math.floor(index / PAGE_COLUMN) - 1) * (iconHeight + hGap) - iconHeight / 2;
29 
30 
31     -- 容器最大允许的滚动高度值,大于则滚出界
32     local max = innerHeight - viewHeight / 2;
33     -- 容器最小云溪的滚动高度值,小于则不会滚
34     local min = viewHeight / 2;
35 
36     if y > max then
37         y = max;
38     end
39     if y < min then
40         y = min;
41     end
42 
43     -- 滚动内部容器
44     local moveTo = cc.MoveTo:create(0.1, cc.p(0, viewHeight / 2 - y));
45     self.scrollView:getInnerContainer():runAction(moveTo);
46 
47     -- 新增冈布奥icon淡入并掉入格子,显示格子中的冈布奥图标,icon放大并淡出
48     local icon = ccui.ImageView:create();
49     icon:loadTexture(iconPath);
50     icon:setOpacity(0);
51     icon:setPosition(stoneIcon:getPositionX(), stoneIcon:getPositionY() + 100);
52     stoneGrid:addChild(icon);
53 
54     local fadeIn = cc.FadeIn:create(0.3);
55     local moveTo = cc.EaseIn:create(cc.MoveBy:create(0.3, cc.p(0, -100)), 2.5);
56     local scale = stoneIcon:getScale();
57     local scaleTo = cc.ScaleTo:create(0.5, scale * 2);
58     local callFunc = cc.CallFunc:create(function()
59         stoneGrid:removeChild(icon);
60     end);
61     local showStone = cc.CallFunc:create(function()
62         stoneIcon:setVisible(true);
63     end);
64 
65     icon:runAction(cc.Sequence:create(cc.Spawn:create(fadeIn, moveTo), showStone, cc.Spawn:create(scaleTo,
66 
67 cc.FadeOut:create(0.5)), callFunc));
68 end
effect

 

 

转载于:https://www.cnblogs.com/kpxy/p/10146254.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值