Coord2 二维位置
这是一个客户端API
该API仅在客户端脚本使用
构造函数¶
- Coord2(c2: {offset: [], ???3: }): 1
-
创建一个二维位置
参数 类型 说明 v 一个该二维位置的值 offset [] 该二维位置offset的值,为一个长度为 2
的数组??? [] 该二维位置scale的值,为一个长度为 2
的数组
属性¶
提示
虽然下面offset[scale](readonly)属性标记为只读,但只是你不能直接给这个属性赋值,你仍然可以使用属性自带的方法赋值或者直接给属性的属性赋值
同时你也不能像服务端那样x = ...;
的写法了
- offset:
- 相对于父节点的绝对偏移值,单位为px
- scale:
- 相对于父节点尺寸的缩放量,x和y的范围皆为\([0, 1]\)
举个例子,若x =0.5
,y =0.5
,那么该节点的位置就在父节点的中心(实际显示还和锚点有关);
若x =0
,y =0
,那么该节点的位置就在父节点的左上角
若x =1
,y =1
,那么该节点的位置就在父节点的右下角
方法¶
第三方重写¶
S-C-Link_client中重写的Coord2
需搭配S-C-Link_client中重写的Vector2使用,具体见Vec2 #第三方重写
/**
* 图像映射中区域的坐标
* 值为`offset`(绝对坐标)和`scale`(占父元素空间的百分比)之和
*/
class Coord2 {
offset = new Vector2(0, 0);
scale = new Vector2(0, 0);
constructor(offset, scale = new Vector2(0, 0)) {
this.offset = offset;
this.scale = scale;
}
/**
* 设置`offset.x`的值
* @param {number} value
*/
set x(value) {
this.offset.x = value;
}
/**
* 设置`offset.y`的值
* @param {number} value
*/
set y(value) {
this.offset.y = value;
}
set(offset, scale) {
this.offset = offset;
this.scale = scale;
}
copy(c) {
this.offset = c.offset.clone();
this.scale = c.scale.clone();
}
clone() {
return new Coord2(this.offset.clone(), this.scale.clone());
}
setCoord2(c) {
this.offset.setVec2(c.offset);
this.scale.setVec2(c.scale);
}
static fromCoord2(c) {
return new Coord2(Vector2.fromVec2(c.offset), Vector2.fromVec2(c.scale));
}
}