一 : 前言
这几天在Game中遇到这几个需求 , 发送订单后玩家的金币需要增加,这个时候需要做一个飞金币的效果.如下图所示:
二 : 问题
很明显按钮的父容器和金币信息所在的父容器不是同一个父容器.但是金币移动的路径需要在同一个坐标系之中.
三 : 解决思路
将按钮和金币的相对坐标转成世界坐标,飘金币的效果在世界"Canvas"中播放
四 : 具体解决:
① , 获取当前Canvas
let $parent : cc.Node = cc.find("Canvas");
② , 获取路径终点坐标
1`$targetNode 既是几笔对象
2`无论$targetNode的锚点在哪 , 坐标转换都是以其左下为原点的.这个和Egret一样.
$end_pos = $targetNode.convertToWorldSpace( new cc.Vec2( $targetNode.width / 2 , $targetNode.height / 2 ) );
$end_pos.x -= ($parent.width / 2);
$end_pos.y -= ($parent.height / 2);