COCOS CREATOR(TS)相对坐标转世界坐标
  RlWeLU85QNwT 2023年11月02日 31 0

一 : 前言

这几天在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);

========================================================================================== 更新(待测试 ......) 节点坐标与世界坐标的转化方法有: convertToNodeSpace(worldPoint);//将世界坐标转换为模型坐标。

convertToNodeSpaceAR(worldPoint);//将世界坐标转换为模型坐标。AR表示相对于锚点。

convertTouchToNodeSpace(touch);//将世界坐标中触摸点转换为模型坐标。

convertTouchToNodeSpaceAR(touch);//将世界坐标中触摸点转换为模型坐标。AR表示相对于锚点。

convertToWorldSpace(nodePoint);//将模型坐标转换为世界坐标。

convertToWorldSpaceAR(nodePoint);//将模型坐标转换为世界坐标。AR表示相对于锚点。

============================= 屏幕转世界 camera.getScreenToWorldPoint(point,out); 世界转屏幕 camera.getWorldToScreenPoint(point,out);

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

RlWeLU85QNwT