空白键|Cocos Creator中坐标空间的转换( 二 )
1.`onLoad () {`2.`// 1 屏幕坐标系 , 左下角为原点 , 向右为x轴正方向 , 向上为y轴正方向`3.`let worldPos : cc.Vec2 = new cc.Vec2(0, 0);`4.`console.log("worldPos=", worldPos);`6.`// 2: 相对(节点)坐标系 , 两种相对节点原点的方式(1) 左下角为原点, (2) 锚点为原点(AR)`7.`let localPos :cc.Vec2 = this.node.convertToNodeSpace(worldPos);`8.`console.log("localPos节点左下角为坐标原点:", localPos);`9.`localPos = this.node.convertToNodeSpaceAR(worldPos);`10.`console.log("localPosAR节点锚点为坐标原点", localPos);`12.`// 3: 节点坐标和屏幕坐标的相互转换; 我们到底使用哪个?通常情况下带AR;`13.`localPos = cc.v2(0, 0);`14.`worldPos = this.node.convertToWorldSpace(localPos);`15.`console.log("世界坐标", worldPos);`16.`worldPos = this.node.convertToWorldSpaceAR(localPos);`17.`console.log("世界坐标", worldPos);`19.`// 4: 获取在父亲节点坐标系下(AR为原点)的节点包围盒;`20.`let box : cc.Rect = this.node.getBoundingBox();`21.`console.log("父节点下的包围盒子=", box);`23.`// 5: 获取在世界坐标系下的节点包围盒;`24.`box = this.node.getBoundingBoxToWorld();`25.`console.log("世界坐标下的包围盒子=", box);`26.`}`
1.`start () {`2.`// 6: 触摸事件对象世界坐标与节点坐标的转换;`3.`this.node.on(cc.Node.EventType.TOUCH_START, function(e){`4.`let worldPos = e.getLocation();`5.`let localPos = this.node.convertToNodeSpaceAR(worldPos);`6.`console.log("触摸点的世界坐标和本地坐标:", worldPos, localPos);`8.`localPos =this.node.convertTouchToNodeSpace(e);`9.`console.log("触摸点的本地坐标(节点左下角为坐标原点):",localPos);`10.`localPos =this.node.convertTouchToNodeSpaceAR(e);`11.`console.log("触摸点的本地坐标(节点锚点为坐标原点):",localPos);`12.`}.bind(this), this);`13.`}`
运行结果如下 , 点击蓝色块中间的位置 。
【空白键|Cocos Creator中坐标空间的转换】关键点在于理解坐标参考原点在哪?
- 空白键|Visual Studio 2019新特性:位操作
- 空白键|git 如何比较不同分支的差异
- 北京青年报|民政局门前“演离婚”博眼球 此类视频监管存在空白
- 北京青年报|“演离婚”博眼球 此类视频监管存在空白
- 空白键|罗技机械键盘249元!拒绝樱桃,延长寿命,学习国货双飞燕用料
- 空白键|CTemplar号称世界上最安全的邮箱
- 空白键|DropBlock正则化的介绍
- VG战队|王者安卓q区惊现“诡异”现象,榜一职业标签神秘消失,电竞生涯空白
- 过往年少|三星卷土重来,酷派360出了手机,都在等待华为倒下形成的空白
- 空白键|阿里盯上百度后花园,“不限速”+2000亿能否搅局网盘业务?