cocos creator教程之世界坐标和局部坐标

栏目: 编程语言 · IOS · 发布时间: 5年前

内容简介:cocos creator中的canvas画布,由用户自己设定的坐标是局部坐标,默认是在画布正中间,原点(0,0)坐标在正中间,而游戏生成之后,用户点触游戏界面中获取到的是世界地图坐标,世界地图的原点(0,0)在左下角。两个坐标是不一样的,在编码的时候需要自己进行转换,而cocos creator则提供了非常方便的转换方法。canvas为画布,画布监听了触控开始的事件,touches获取触控数组,多点触控则有多个数值,这里我们只获取第一个触控点,也就是touches[0],这里获取的touchLoc就是第

cocos creator中的canvas画布,由用户自己设定的坐标是局部坐标,默认是在画布正中间,原点(0,0)坐标在正中间,而游戏生成之后,用户点触游戏界面中获取到的是世界地图坐标,世界地图的原点(0,0)在左下角。两个坐标是不一样的,在编码的时候需要自己进行转换,而cocos creator则提供了非常方便的转换方法。

官方示例

var self = this;
self.canvas.on(cc.Node.EventType.TOUCH_START, function (event) {
            var touches = event.getTouches();
            var touchLoc = touches[0].getLocation();
            self.isMoving = true;
            self.moveToPos = self.follower.parent.convertToNodeSpaceAR(touchLoc);
            console.log(self.moveToPos.angle(cc.v2(0, 10)) * 180 / Math.PI);
            console.log(self.moveToPos);
            self.touchLocationDisplay.textKey = i18n.t("cases/03_gameplay/01_player_control/On/OnTouchCtrl.js.1") + Math.floor(touchLoc.x) + ', ' + Math.floor(touchLoc.y) + ')';
        }, self.node);

canvas为画布,画布监听了触控开始的事件,touches获取触控数组,多点触控则有多个数值,这里我们只获取第一个触控点,也就是touches[0],这里获取的touchLoc就是第一个触控点的位置坐标,类型是Vec2,Vec2是cocos creator代表向量和坐标的类型, 需要注意是touchLoc的坐标值是世界地图的坐标 ,所以如果用于编码的话需要将世界坐标转换为局部坐标,也就是node的坐标,cocos creator提供了一个方法node.convertToNodeSpaceAR()可以将世界地图坐标转换为node的局部坐标,这里获取的是folower这个node的父node的局部坐标。

如果想查看更多关于convertToNodeSpaceAR()的内容,可前往 http://docs.cocos.com/creator/api/zh/classes/Node.html#converttonodespacear 进行查看。

补充内容

在上面有一个方法angle(),其为Vec2类型的方法,用法为cc.v2(0,10).angle(cc.v2(10,0)),获取的是当前向量和参数中向量之间的弧度。

弧度可以转换为角度,也就是cc.v2(0,10).angle(cc.v2(10,0)) * 180 / Math.PI。

这里大家可以自行测试。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First HTML5 Programming(中文版)

Head First HTML5 Programming(中文版)

埃里克•弗里曼 (Eric Freeman)、伊丽莎白•罗布森 (Elisabeth Robson) / 中国电力出版社 / 2012-9 / 78.00元

《Head First HTML5 Programming(中文版)》内容简介:你可能想创建具有动态性、交互性、包含丰富数据而且互连的Web页面。先等一下,Web页面?为什么不用HTML5创建成熟的Web应用呢?另外,为什么不使用现代技术,像在移动设备上一样轻松地应用到桌面浏览器呢?当然,你肯定希望使用最新的HTML5技术来完成,比如地理定位、视频、2D绘制、Web存储、Web工作线程等,是不是?......一起来看看 《Head First HTML5 Programming(中文版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

MD5 加密
MD5 加密

MD5 加密工具