内容简介: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。
这里大家可以自行测试。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- HQChart 1.9334 版本发布,增加等比坐标、黄金分割坐标、等分坐标
- 全局变量,静态全局变量,局部变量,静态局部变量
- arcgis for jsapi开发:坐标系、经纬度与平面坐标的互换
- iOS坐标系探究
- 坐标转换(c#) 原 荐
- 代码分析Python地图坐标转换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!