Skip to content

Commit 3d9c869

Browse files
committed
框架优化
1 parent ea482da commit 3d9c869

31 files changed

+1048
-1103
lines changed

source/bin/framework.d.ts

Lines changed: 50 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -461,43 +461,12 @@ declare module es {
461461
*/
462462
static divide(value1: Vector2, value2: Vector2): Vector2;
463463
static divideScaler(value1: Vector2, value2: number): Vector2;
464-
/**
465-
*
466-
* @param value1
467-
* @param value2
468-
*/
469-
static multiply(value1: Vector2, value2: Vector2): Vector2;
470-
/**
471-
*
472-
* @param value1
473-
* @param value2
474-
* @returns
475-
*/
476-
static multiplyScaler(value1: Vector2, value2: number): Vector2;
477-
/**
478-
*
479-
* @param value1
480-
* @param value2
481-
*/
482-
static subtract(value1: Vector2, value2: Vector2): Vector2;
483-
/**
484-
* 创建一个新的Vector2
485-
* 它包含来自另一个向量的标准化值。
486-
* @param value
487-
*/
488-
static normalize(value: Vector2): Vector2;
489-
/**
490-
* 返回两个向量的点积
491-
* @param value1
492-
* @param value2
493-
*/
494-
static dot(value1: Vector2, value2: Vector2): number;
495464
/**
496465
* 返回两个向量之间距离的平方
497466
* @param value1
498467
* @param value2
499468
*/
500-
static distanceSquared(value1: Vector2, value2: Vector2): number;
469+
static sqrDistance(value1: Vector2, value2: Vector2): number;
501470
/**
502471
* 将指定的值限制在一个范围内
503472
* @param value1
@@ -539,7 +508,7 @@ declare module es {
539508
* @param value2
540509
* @returns 两个向量之间的距离
541510
*/
542-
static distance(value1: Vector2, value2: Vector2): number;
511+
static distance(vec1: Vector2, vec2: Vector2): number;
543512
/**
544513
* 返回两个向量之间的角度,单位是度数
545514
* @param from
@@ -568,6 +537,7 @@ declare module es {
568537
*/
569538
static smoothStep(value1: Vector2, value2: Vector2, amount: number): Vector2;
570539
setTo(x: number, y: number): void;
540+
negate(): Vector2;
571541
/**
572542
*
573543
* @param value
@@ -598,18 +568,20 @@ declare module es {
598568
*/
599569
sub(value: Vector2): Vector2;
600570
subEqual(v: Vector2): Vector2;
571+
dot(v: Vector2): number;
601572
/**
602573
*
603574
* @param size
604575
* @returns
605576
*/
606577
scale(size: number): Vector2;
578+
scaleEqual(size: number): Vector2;
579+
transform(matrix: Matrix2D): Vector2;
580+
normalize(): Vector2;
607581
/**
608582
* 将这个Vector2变成一个方向相同的单位向量
609583
*/
610-
normalize(): this;
611-
/** 返回它的长度 */
612-
length(): number;
584+
normalizeEqual(): Vector2;
613585
magnitude(): number;
614586
distance(v?: Vector2): number;
615587
/**
@@ -632,7 +604,7 @@ declare module es {
632604
* @param other 要比较的对象
633605
* @returns 如果实例相同true 否则false
634606
*/
635-
equals(other: Vector2 | object): boolean;
607+
equals(other: Vector2, tolerance?: number): boolean;
636608
isValid(): boolean;
637609
/**
638610
* 创建一个新的Vector2,其中包含来自两个向量的最小值
@@ -1337,6 +1309,8 @@ declare module es {
13371309
}
13381310
declare module es {
13391311
abstract class Collider extends Component {
1312+
static readonly lateSortOrder: number;
1313+
castSortOrder: number;
13401314
/**
13411315
* 对撞机的基本形状
13421316
*/
@@ -2652,7 +2626,10 @@ declare module es {
26522626
* 在这个过程中,t被修改为在曲线段的范围内。
26532627
* @param t
26542628
*/
2655-
pointIndexAtTime(t: Ref<number>): number;
2629+
pointIndexAtTime(t: number): {
2630+
time: number;
2631+
range: number;
2632+
};
26562633
/**
26572634
* 设置一个控制点,考虑到这是否是一个共享点,如果是,则适当调整
26582635
* @param index
@@ -3078,6 +3055,7 @@ declare module es {
30783055
* @returns
30793056
*/
30803057
static mapMinMax(value: number, leftMin: number, leftMax: number, rightMin: number, rightMax: any): number;
3058+
static fromAngle(angle: number): Vector2;
30813059
}
30823060
}
30833061
declare module es {
@@ -3139,6 +3117,8 @@ declare module es {
31393117
* 返回标识矩阵
31403118
*/
31413119
static readonly identity: Matrix2D;
3120+
setIdentity(): Matrix2D;
3121+
setValues(m11: number, m12: number, m21: number, m22: number, m31: number, m32: number): Matrix2D;
31423122
/**
31433123
* 储存在该矩阵中的位置
31443124
*/
@@ -3155,35 +3135,25 @@ declare module es {
31553135
* 储存在这个矩阵中的缩放
31563136
*/
31573137
scale: Vector2;
3158-
/**
3159-
* 构建一个矩阵
3160-
* @param m11
3161-
* @param m12
3162-
* @param m21
3163-
* @param m22
3164-
* @param m31
3165-
* @param m32
3166-
*/
3167-
constructor(m11: number, m12: number, m21: number, m22: number, m31: number, m32: number);
31683138
/**
31693139
* 创建一个新的围绕Z轴的旋转矩阵2D
31703140
* @param radians
31713141
*/
3172-
static createRotation(radians: number): Matrix2D;
3142+
static createRotation(radians: number, result: Matrix2D): void;
31733143
static createRotationOut(radians: number, result: Matrix2D): void;
31743144
/**
31753145
* 创建一个新的缩放矩阵2D
31763146
* @param xScale
31773147
* @param yScale
31783148
*/
3179-
static createScale(xScale: number, yScale: number): Matrix2D;
3149+
static createScale(xScale: number, yScale: number, result: Matrix2D): void;
31803150
static createScaleOut(xScale: number, yScale: number, result: Matrix2D): void;
31813151
/**
31823152
* 创建一个新的平移矩阵2D
31833153
* @param xPosition
31843154
* @param yPosition
31853155
*/
3186-
static createTranslation(xPosition: number, yPosition: number): Matrix2D;
3156+
static createTranslation(xPosition: number, yPosition: number, result: Matrix2D): Matrix2D;
31873157
static createTranslationOut(position: Vector2, result: Matrix2D): void;
31883158
static invert(matrix: Matrix2D): Matrix2D;
31893159
/**
@@ -3194,7 +3164,7 @@ declare module es {
31943164
substract(matrix: Matrix2D): Matrix2D;
31953165
divide(matrix: Matrix2D): Matrix2D;
31963166
multiply(matrix: Matrix2D): Matrix2D;
3197-
static multiply(matrix1: Matrix2D, matrix2: Matrix2D, result: Matrix2D): Matrix2D;
3167+
static multiply(matrix1: Matrix2D, matrix2: Matrix2D, result: Matrix2D): void;
31983168
determinant(): number;
31993169
/**
32003170
* 创建一个新的Matrix2D,包含指定矩阵中的线性插值。
@@ -3353,7 +3323,10 @@ declare module es {
33533323
* @param value 另一个用于测试的矩形
33543324
*/
33553325
intersects(value: Rectangle): boolean;
3356-
rayIntersects(ray: Ray2D, distance: Ref<number>): boolean;
3326+
rayIntersects(ray: Ray2D): {
3327+
intersected: boolean;
3328+
distance: number;
3329+
};
33573330
/**
33583331
* 获取所提供的矩形是否在此矩形的边界内
33593332
* @param value
@@ -3558,9 +3531,8 @@ declare module es {
35583531
*/
35593532
centroid: Vector2;
35603533
constructor(collider?: Collider, fraction?: number, distance?: number, point?: Vector2, normal?: Vector2);
3561-
setValues(collider: Collider, fraction: number, distance: number, point: Vector2): void;
3562-
setValuesNonCollider(fraction: number, distance: number, point: Vector2, normal: Vector2): void;
35633534
setAllValues(collider: Collider, fraction: number, distance: number, point: Vector2, normal: Vector2): void;
3535+
setValues(fraction: number, distance: number, point: Vector2, normal: Vector2): void;
35643536
reset(): void;
35653537
clone(): RaycastHit;
35663538
toString(): string;
@@ -3662,17 +3634,15 @@ declare module es {
36623634
* @param end
36633635
* @param layerMask
36643636
*/
3665-
static linecast(start: Vector2, end: Vector2, layerMask?: number): RaycastHit;
3666-
static linecastIgnoreCollider(start: Vector2, end: Vector2, layerMask?: number, ignoredColliders?: Set<Collider>): RaycastHit;
3637+
static linecast(start: Vector2, end: Vector2, layerMask?: number, ignoredColliders?: Set<Collider>): RaycastHit;
36673638
/**
36683639
* 通过空间散列强制执行一行,并用该行命中的任何碰撞器填充hits数组
36693640
* @param start
36703641
* @param end
36713642
* @param hits
36723643
* @param layerMask
36733644
*/
3674-
static linecastAll(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask?: number): number;
3675-
static linecastAllIgnoreCollider(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask?: number, ignoredColliders?: Set<Collider>): number;
3645+
static linecastAll(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask?: number, ignoredColliders?: Set<Collider>): number;
36763646
/**
36773647
* 检查是否有对撞机落在一个矩形区域中
36783648
* @param rect
@@ -3693,10 +3663,13 @@ declare module es {
36933663
* 不是真正的射线(射线只有开始和方向),作为一条线和射线。
36943664
*/
36953665
class Ray2D {
3696-
start: Vector2;
3697-
end: Vector2;
3698-
direction: Vector2;
3699-
constructor(position: Vector2, end: Vector2);
3666+
readonly start: Vector2;
3667+
readonly direction: Vector2;
3668+
readonly end: Vector2;
3669+
constructor(pos: Vector2, end: Vector2);
3670+
private _start;
3671+
private _direction;
3672+
private _end;
37003673
}
37013674
}
37023675
declare module es {
@@ -3762,8 +3735,7 @@ declare module es {
37623735
* @param hits
37633736
* @param layerMask
37643737
*/
3765-
linecast(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask: number): number;
3766-
linecastIgnoreCollider(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask: number, ignoredColliders: Set<Collider>): number;
3738+
linecast(start: Vector2, end: Vector2, hits: RaycastHit[], layerMask: number, ignoredColliders: Set<Collider>): number;
37673739
/**
37683740
* 获取所有在指定矩形范围内的碰撞器
37693741
* @param rect
@@ -3819,8 +3791,7 @@ declare module es {
38193791
_ray: Ray2D;
38203792
_layerMask: number;
38213793
private _ignoredColliders;
3822-
start(ray: Ray2D, hits: RaycastHit[], layerMask: number): void;
3823-
startIgnoreCollider(ray: Ray2D, hits: RaycastHit[], layerMask: number, ignoredColliders: Set<Collider>): void;
3794+
start(ray: Ray2D, hits: RaycastHit[], layerMask: number, ignoredColliders: Set<Collider>): void;
38243795
/**
38253796
* 如果hits数组被填充,返回true。单元格不能为空!
38263797
* @param cellX
@@ -3935,7 +3906,11 @@ declare module es {
39353906
* @param distanceSquared
39363907
* @param edgeNormal
39373908
*/
3938-
static getClosestPointOnPolygonToPoint(points: Vector2[], point: Vector2, distanceSquared: Ref<number>, edgeNormal: Vector2): Vector2;
3909+
static getClosestPointOnPolygonToPoint(points: Vector2[], point: Vector2): {
3910+
distanceSquared: number;
3911+
edgeNormal: Vector2;
3912+
closestPoint: Vector2;
3913+
};
39393914
/**
39403915
* 旋转原始点并复制旋转的值到旋转的点
39413916
* @param radians
@@ -3991,6 +3966,7 @@ declare module es {
39913966
overlaps(other: Shape): any;
39923967
collidesWithShape(other: Shape, result: CollisionResult): boolean;
39933968
collidesWithLine(start: Vector2, end: Vector2, hit: RaycastHit): boolean;
3969+
getPointAlongEdge(angle: number): Vector2;
39943970
/**
39953971
* 获取所提供的点是否在此范围内
39963972
* @param point
@@ -4017,18 +3993,20 @@ declare module es {
40173993
* 不是所有冲突类型都使用!在依赖这个字段之前,请检查ShapeCollisions切割类!
40183994
*/
40193995
point: Vector2;
3996+
reset(): void;
3997+
cloneTo(cr: CollisionResult): void;
40203998
/**
40213999
* 改变最小平移向量,如果没有相同方向上的运动,它将移除平移的x分量。
40224000
* @param deltaMovement
40234001
*/
4024-
removeHorizontal(deltaMovement: Vector2): void;
4025-
invertResult(): this;
4002+
removeHorizontalTranslation(deltaMovement: Vector2): void;
4003+
invertResult(): void;
40264004
toString(): string;
40274005
}
40284006
}
40294007
declare module es {
40304008
class RealtimeCollisions {
4031-
static intersectMovingCircleBox(s: Circle, b: Box, movement: Vector2, time: Ref<number>): boolean;
4009+
static intersectMovingCircleBox(s: Circle, b: Box, movement: Vector2, time: number): boolean;
40324010
/**
40334011
* 支持函数,返回索引为n的矩形vert
40344012
* @param b
@@ -4060,6 +4038,7 @@ declare module es {
40604038
}
40614039
declare module es {
40624040
class ShapeCollisionsCircle {
4041+
static circleToCircleCast(first: Circle, second: Circle, deltaMovement: Vector2, hit: RaycastHit): boolean;
40634042
static circleToCircle(first: Circle, second: Circle, result?: CollisionResult): boolean;
40644043
/**
40654044
* 适用于中心在框内的圆,也适用于与框外中心重合的圆。

0 commit comments

Comments
 (0)