一 : 前言
這幾天在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);