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

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

内容简介: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。

这里大家可以自行测试。


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

查看所有标签

猜你喜欢:

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

ANSI Common Lisp

ANSI Common Lisp

Paul Graham / Prentice Hall / 1995-11-12 / USD 116.40

For use as a core text supplement in any course covering common LISP such as Artificial Intelligence or Concepts of Programming Languages. Teaching students new and more powerful ways of thinking abo......一起来看看 《ANSI Common Lisp》 这本书的介绍吧!

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

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具