向量表达:
/*var w_pos = new cc.Vec2(100, 100);
console.log(w_pos);
w_pos = cc.v2(200, 200);
console.log(w_pos);
w_pos = cc.p(300, 300);
console.log(w_pos);
向量计算
var src = cc.p(0, 0);
var dst = cc.p(100, 100);
var dir = cc.pSub(dst, src);//相减
向量长度:
var len = cc.pLength(dir);
var s = new cc.Size(100, 100); wh
console.log(s);
s = cc.size(200, 200); wh
console.log(s);
var r = new cc.Rect(0, 0, 100,100);
console.log(r);
r = cc.rect(0, 0, 200, 200); xy wh
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);
语句两个点=》以何种方式(是否AR)的原点,输入的点,
世界坐标 :屏幕坐标
相对坐标:节点左下角,锚点=》通常使用锚点 cocos默认使用锚点
// 节点坐标转到屏幕坐标 cc.p(0, 0),
屏幕坐标:
var w_pos = this.node.convertToWorldSpace(cc.p(0, 0)); // 节点左下角为原点的 cc.p(430, 270)
console.log(w_pos);
w_pos = this.node.convertToWorldSpaceAR(cc.p(0, 0)); // 节点锚点为原点 cc.p(480, 320)
console.log(w_pos);
// end
//屏幕坐标转 节点坐标cc.p(0, 0)
var w_pos = cc.p(480, 320);
相对坐标:
var node_pos = this.node.convertToNodeSpace(w_pos);
console.log(node_pos); // cc.p(50, 50)
node_pos = this.node.convertToNodeSpaceAR(w_pos);
console.log(node_pos); // cc.p(0, 0)
================================
坐标js
cc.Class({
extends: cc.Component,
properties: {
},
onLoad: function () {
},
start: function() {
// 获取节点的包围盒, 相对于父亲节点坐标系下的包围盒
var box = this.node.getBoundingBox();//父亲节点坐标系下是以AR锚点为原点
console.log(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(900, 600));
this.node.setPosition(node_pos); // 相对于this.node.parent这个为参照物,AR为原点的坐标系
// end setPosition是设置相对坐标
// 获取当前节点的世界坐标;
this.node.convertToWorldSpaceAR(cc.p(0, 0));//以锚点为原点的世界坐标
},
});