cc.Node—坐标系统
cc.Vec2
1: cc.Vec2 二维向量坐标, 表结构{x: 120, y: 120}; cc.v2(x, y) 创建一个二维向量 cc.p() 创建一个二外向量;
2: cc.pSub: 向量相减;
3: cc.pAdd: 向量相加;
4: cc.pLength: 向量长度;
cc.Size/cc.Rect
1: cc.Size: 包含宽度和高度信息的对象 {width: 100, height: 100};
2: new cc.Size(w, h), cc.size(w, h)创建一个 大小对象;
3: cc.Rect: 矩形对象 new cc.Rect(x, y, w, h); cc.rect(x, y, w, h); {x, y, width, height};
4: contains(Point): 点是否在矩形内;
5: intersects : 两个矩形是否相交;
creator坐标系
1: 世界(屏幕)坐标系;
2: 相对(节点)坐标系,两种相对节点原点的方式(1) 左下角为原点, (2) 锚点为原点(AR);
3: 节点坐标和屏幕坐标的相互转换; 我们到底使用哪个?通常情况下带AR;
4: 获取在父亲节点坐标系下(AR为原点)的节点包围盒;
5: 获取在世界坐标系下的节点包围盒;
6: 触摸事件对象世界坐标与节点坐标的转换;
// 获取节点的包围盒, 相对于父亲节点坐标系下的包围盒
var box = this.node.getBoundingBox();
console.log('box:',box); // 世界坐标系下的包围盒
var w_box = this.node.getBoundingBoxToWorld();
console.log(w_box); this.node.on(cc.Node.EventType.TOUCH_START, function(t) {
var w_pos = t.getLocation();
var pos = this.node.convertToNodeSpaceAR(w_pos);
console.log(pos); pos = this.node.convertTouchToNodeSpaceAR(t);
console.log("====", pos);
}, this); // 我要把当前这个sub移动到世界坐标为 900, 600;
// 把世界坐标转到相对于它的父亲节点的坐标
var node_pos = this.node.parent.convertToNodeSpaceAR(cc.p(500, 600));
this.node.setPosition(node_pos); // 相对于this.node.parent这个为参照物,AR为原点的坐标系
// 获取当前节点的世界坐标;
this.node.convertToWorldSpaceAR(cc.p(0, 0));
常用坐标函数
var pos = new cc.Vec2(100, 100);
console.log('Vec2 x:%f,y:%f', pos.x, pos.y); pos = cc.v2(200.45, 200.94);
console.log('v2 x:%f,y:%f', pos.x, pos.y); pos = cc.p(300, 300);
console.log('p x:%f,y:%f', pos.x, pos.y); var src = cc.p(50, 11);
var dst = cc.p(100, 100);
var dir = cc.pSub(dst, src); var len = cc.pLength(dir);
console.log('dir.pLength:%f,dir.x:%f,dir.y:%f', len, dir.x,dir.y); var s = new cc.Size(100, 100);
console.log('Size x:%f,y:%f,w:%f,h:%f', s.x, s.y, s.width, s.height); s = cc.size(200, 200);
console.log('Size x:%f,y:%f,w:%f,h:%f', s.x, s.y, s.width, s.height);
var r = new cc.Rect(0, 0, 100,100);
console.log(r); r = cc.rect(0, 0, 200, 200);
console.log(r);
var ret = r.contains(cc.p(300, 300));
console.log(ret);
var rhs = cc.rect(100, 100, 100, 100);
ret = r.intersects(rhs);
console.log(ret); // 节点坐标转到屏幕坐标 cc.p(0, 0)
var pos = this.node.convertToWorldSpace(cc.p(0, 0)); // 左下角为原点的 cc.p(430, 270)
console.log('x:%f,y:%f',pos.x, pos.y);
pos = this.node.convertToWorldSpaceAR(cc.p(0, 0)); // 锚点为原点 cc.p(480, 320)
console.log('x:%f,y:%f', pos.x, pos.y);
// end var pos = cc.p(480, 320); var node_pos = this.node.convertToNodeSpace(pos);
console.log('x:%f,y:%f', node_pos.x, node_pos.y); // cc.p(50, 50) node_pos = this.node.convertToNodeSpaceAR(pos);
console.log('x:%f,y:%f', node_pos.x, node_pos.y);// cc.p(0, 0)
cc.Node—坐标系统的更多相关文章
- cc.Node—场景树
对于cc.Node我分了四个模块学习: 1.场景树,2.事件响应,3.坐标系统,4.Action的使用:在此记录经验分享给大家. 场景树 1: creator是由一个一个的游戏场景组成,通过代码逻辑来 ...
- cc.Node 的坐标空间与ACTION的学习
1.创建二维的向量坐标 //创建向量坐标方法一 let new_pos1 = new cc.Vec2(100, 100); //创建向量坐标方法二 let new_pos2 = cc.v2(200, ...
- Cocos Creator cc.Node.点击事件
触摸事件 1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消; ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起. 2.监听 ...
- <7>Cocos Creator 节点 cc.Node
1.简介 节点(cc.Node)是渲染的必要组成部分.所有需要在游戏场景中显示的内容都必须是节点或者依附于节点之上.节点负责控制显示内容的位置.大小.旋转.缩放.颜色等信息. 2.节点属性 1: na ...
- cc.Node—事件响应
触摸事件1: 触摸事件类型: START, MOVED, ENDED(物体内), CANCEL(物体外);2: 监听触摸事件: node.on(类型, callback, target(回掉函数的th ...
- cc.Node—Action
1: Action类是动作命令,我们创建Action,然后节点运行action就能够执行Action的动作; 2: Action分为两类: (1) 瞬时就完成的ActionInstant, (2) 要 ...
- Cocos2d-JS坐标系统
标准屏幕坐标系 如果接触过iOS,Android,Windows Phone等系统的应用开发,或使用DOM,CSS开发过Web网页,开发者会非常熟悉所谓的标准屏幕坐标系:左上角为原点,向右为X轴正方向 ...
- Cocos2d-x 核心概念 - Node中的重要操作
作为跟类,Node有很多的重要的函数 local childNode = cc.Node:create() --创建节点 node:addChildNode(childNode,0,123) --创建 ...
- cc.Sprite
Classcc.Sprite Defined in: CCSprite.js Extends cc.NodeRGBA Class Summary Constructor Attributes Cons ...
随机推荐
- Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化
ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化 Java 实例 以下实例演示了通过 f ...
- json知识笔记
1.全称:JavaScript Object Notation 2.数据格式 3. 数据结构-object String+基本类型(或者数据结构) 数据结构-Array [基本类型] 4.一个样例a ...
- Ubuntu 18 通过ssh连接远程服务器
ps -e | grep ssh 查看自己的Ubuntu是否开启ssh服务,如果我们要连其他的,那需要有 ssh-client的进程 如果我们的作为主机,那需要有sshd的进程 相应的安装方法: cl ...
- Java Genericity
四. Java Genericity 1. Genericity 泛型 泛型 <T> 1. 泛型就是参数化类型 2. 作用:安全,方便 3. 适用于对多种数据类型执行相同功能的代码,主 ...
- shiro之IniRealm
Shiro认证过程 创建SecurityManager--->主体提交认证--->SecurityManager认证--->Authenticsto认证--->Realm验证 ...
- Hdu 5361 In Touch (dijkatrs+优先队列)
题目链接: Hdu 5361 In Touch 题目描述: 有n个传送机排成一排,编号从1到n,每个传送机都可以把自己位置的东西传送到距离自己[l, r]距离的位置,并且花费c,问从1号传送机到其他 ...
- 异或+构造 HDOJ 5416 CRB and Tree
题目传送门 题意:给一棵树,问f (u, v) 意思是u到v的所有路径的边权值的异或和,问f (u, v) == s 的u,v有几对 异或+构造:首先计算f (1, u) 的值,那么f (u, v) ...
- Sql Server把本地数据库传到服务器数据库
上一篇文章我们已经把网站布署到服务器中了,如果是动态网站肯定是有数据库的,接下来通过Sql Server把本地数据库上传到服务器数据库中. 打开Sql Server连接本地数据库,选中要导出的数据库, ...
- iOS 中集成海康威视 摄像视频
本文原文地址 http://www.cnblogs.com/qianLL/p/6652104.html 一.要导入相关的库,注意 这里比较坑的是 要用和他一样的 如果开始的工程中用了AFN或者MJE ...
- echarts 外观效果修改
<!DOCTYPE html> <html> <head> <title></title> <link rel="style ...