坐标系操作

创作人 Leo


编辑时间 Wed Jan 1,2020 at 10:13


CocosCreater 坐标系操作

本地坐标系:屏幕中间为原点 (0,0)

世界坐标系:屏幕左下方为原点

转换到世界坐标系

convertToNodeSpaceAR ( worldPoint ) returns Vec2

将一个点转换到节点 (局部) 空间坐标系。结果以 Vec2 为单位。 返回值将基于节点坐标。

名称

类型

描述

worldPoint Vec2

返回:

类型: Vec2

示例:

var newVec2 = node.convertToNodeSpaceAR(cc.v2(100, 100));

转换到本地坐标系

convertToWorldSpaceAR ( nodePoint ) returns Vec2

将一个点转换到世界空间坐标系。结果以 Vec2 为单位。 返回值将基于节点坐标。

名称

类型

描述

nodePoint Vec2

返回:

类型: Vec2

示例:

var newVec2 = node.convertToWorldSpaceAR(cc.v2(100, 100));

在 canvas 中动态绘制npc或根据鼠标改变节点位置,需要将鼠标位置等转换成基于canvas的本地位置

例:

this.node.on('mousedown', function ( event ) {
     var loc = event.getLocation();
     cc.log('Hello! x '+ loc.x +' y '+ loc.y);
     
     var hero_loc = self.hero.getPosition();
     //self.hero.getNodeToWorldTransformAR();
     var _conv0 = self.node.convertToWorldSpaceAR(hero_loc);   //  与鼠标点击位置做计算需要转换到世界坐标系(鼠标位置基于世界坐标系)
     
     var _speed = loc.x - _conv0.x ;
     _speed = Math.abs(_speed) / 300;
     
     var _conv1 = self.node.convertToNodeSpaceAR(cc.v2(loc.x, loc.y));       //  设置节点位置需要转换到本地坐标系
     cc.log('convert! x '+ _conv1.x +' y '+ _conv1.y);
     
     var hero_go = cc.moveTo(_speed, cc.p(_conv1.x, hero_loc.y))
     self.hero.stopAllActions();
     self.hero.runAction(hero_go);
});


阅读:66
搜索
  • Linux 高性能网络编程库 Libevent 简介和示例 1935
  • Mac系统编译PHP7【20190929更新】 1804
  • Windows 安装Swoole 1562
  • Hadoop 高可用集群搭建 (Hadoop HA) 1482
  • Hadoop 高可用YARN 配置 1409
  • 小白鼠问题 1332
  • Hadoop Map Reduce 案例:好友推荐 1281
  • 自动化测试工具 Selenium 1141
  • GIT 分支管理 1079
  • 一致性哈希算法说明及PHP示例 992
简介
不定期分享软件开发经验,生活经验