mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-20 16:56:43 +08:00
[ts] Fixed SwirlEffect
This commit is contained in:
parent
5aebd65c01
commit
40010cb228
52
spine-ts/build/spine-all.d.ts
vendored
52
spine-ts/build/spine-all.d.ts
vendored
@ -962,6 +962,21 @@ declare module spine {
|
|||||||
static signum(value: number): number;
|
static signum(value: number): number;
|
||||||
static toInt(x: number): number;
|
static toInt(x: number): number;
|
||||||
static cbrt(x: number): number;
|
static cbrt(x: number): number;
|
||||||
|
static randomTriangular(min: number, max: number): number;
|
||||||
|
static randomTriangularWith(min: number, max: number, mode: number): number;
|
||||||
|
}
|
||||||
|
abstract class Interpolation {
|
||||||
|
protected abstract applyInternal(a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number;
|
||||||
|
}
|
||||||
|
class Pow extends Interpolation {
|
||||||
|
protected power: number;
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
|
}
|
||||||
|
class PowOut extends Pow {
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
}
|
}
|
||||||
class Utils {
|
class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS: boolean;
|
static SUPPORTS_TYPED_ARRAYS: boolean;
|
||||||
@ -1019,6 +1034,13 @@ declare module spine {
|
|||||||
getMean(): number;
|
getMean(): number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
interface VertexEffect {
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
abstract class Attachment {
|
abstract class Attachment {
|
||||||
name: string;
|
name: string;
|
||||||
@ -1169,6 +1191,31 @@ declare module spine {
|
|||||||
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
class JitterEffect implements VertexEffect {
|
||||||
|
jitterX: number;
|
||||||
|
jitterY: number;
|
||||||
|
constructor(jitterX: number, jitterY: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module spine {
|
||||||
|
class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation: PowOut;
|
||||||
|
centerX: number;
|
||||||
|
centerY: number;
|
||||||
|
radius: number;
|
||||||
|
angle: number;
|
||||||
|
private worldX;
|
||||||
|
private worldY;
|
||||||
|
constructor(radius: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine.canvas {
|
declare module spine.canvas {
|
||||||
class AssetManager extends spine.AssetManager {
|
class AssetManager extends spine.AssetManager {
|
||||||
constructor(pathPrefix?: string);
|
constructor(pathPrefix?: string);
|
||||||
@ -1571,6 +1618,7 @@ declare module spine.webgl {
|
|||||||
class SkeletonRenderer {
|
class SkeletonRenderer {
|
||||||
static QUAD_TRIANGLES: number[];
|
static QUAD_TRIANGLES: number[];
|
||||||
premultipliedAlpha: boolean;
|
premultipliedAlpha: boolean;
|
||||||
|
vertexEffect: VertexEffect;
|
||||||
private tempColor;
|
private tempColor;
|
||||||
private tempColor2;
|
private tempColor2;
|
||||||
private vertices;
|
private vertices;
|
||||||
@ -1578,6 +1626,10 @@ declare module spine.webgl {
|
|||||||
private twoColorTint;
|
private twoColorTint;
|
||||||
private renderable;
|
private renderable;
|
||||||
private clipper;
|
private clipper;
|
||||||
|
private temp;
|
||||||
|
private temp2;
|
||||||
|
private temp3;
|
||||||
|
private temp4;
|
||||||
constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean);
|
constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean);
|
||||||
draw(batcher: PolygonBatcher, skeleton: Skeleton): void;
|
draw(batcher: PolygonBatcher, skeleton: Skeleton): void;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5747,6 +5747,16 @@ var spine;
|
|||||||
var y = Math.pow(Math.abs(x), 1 / 3);
|
var y = Math.pow(Math.abs(x), 1 / 3);
|
||||||
return x < 0 ? -y : y;
|
return x < 0 ? -y : y;
|
||||||
};
|
};
|
||||||
|
MathUtils.randomTriangular = function (min, max) {
|
||||||
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||||
|
};
|
||||||
|
MathUtils.randomTriangularWith = function (min, max, mode) {
|
||||||
|
var u = Math.random();
|
||||||
|
var d = max - min;
|
||||||
|
if (u <= (mode - min) / d)
|
||||||
|
return min + Math.sqrt(u * d * (mode - min));
|
||||||
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
||||||
|
};
|
||||||
return MathUtils;
|
return MathUtils;
|
||||||
}());
|
}());
|
||||||
MathUtils.PI = 3.1415927;
|
MathUtils.PI = 3.1415927;
|
||||||
@ -5756,6 +5766,42 @@ var spine;
|
|||||||
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
||||||
MathUtils.degRad = MathUtils.degreesToRadians;
|
MathUtils.degRad = MathUtils.degreesToRadians;
|
||||||
spine.MathUtils = MathUtils;
|
spine.MathUtils = MathUtils;
|
||||||
|
var Interpolation = (function () {
|
||||||
|
function Interpolation() {
|
||||||
|
}
|
||||||
|
Interpolation.prototype.apply = function (start, end, a) {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
};
|
||||||
|
return Interpolation;
|
||||||
|
}());
|
||||||
|
spine.Interpolation = Interpolation;
|
||||||
|
var Pow = (function (_super) {
|
||||||
|
__extends(Pow, _super);
|
||||||
|
function Pow(power) {
|
||||||
|
var _this = _super.call(this) || this;
|
||||||
|
_this.power = 2;
|
||||||
|
_this.power = power;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
Pow.prototype.applyInternal = function (a) {
|
||||||
|
if (a <= 0.5)
|
||||||
|
return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
};
|
||||||
|
return Pow;
|
||||||
|
}(Interpolation));
|
||||||
|
spine.Pow = Pow;
|
||||||
|
var PowOut = (function (_super) {
|
||||||
|
__extends(PowOut, _super);
|
||||||
|
function PowOut(power) {
|
||||||
|
return _super.call(this, power) || this;
|
||||||
|
}
|
||||||
|
PowOut.prototype.applyInternal = function (a) {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
};
|
||||||
|
return PowOut;
|
||||||
|
}(Pow));
|
||||||
|
spine.PowOut = PowOut;
|
||||||
var Utils = (function () {
|
var Utils = (function () {
|
||||||
function Utils() {
|
function Utils() {
|
||||||
}
|
}
|
||||||
@ -6317,6 +6363,63 @@ var spine;
|
|||||||
spine.RegionAttachment = RegionAttachment;
|
spine.RegionAttachment = RegionAttachment;
|
||||||
})(spine || (spine = {}));
|
})(spine || (spine = {}));
|
||||||
var spine;
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var JitterEffect = (function () {
|
||||||
|
function JitterEffect(jitterX, jitterY) {
|
||||||
|
this.jitterX = 0;
|
||||||
|
this.jitterY = 0;
|
||||||
|
this.jitterX = jitterX;
|
||||||
|
this.jitterY = jitterY;
|
||||||
|
}
|
||||||
|
JitterEffect.prototype.begin = function (skeleton) {
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return JitterEffect;
|
||||||
|
}());
|
||||||
|
spine.JitterEffect = JitterEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var SwirlEffect = (function () {
|
||||||
|
function SwirlEffect(radius) {
|
||||||
|
this.centerX = 0;
|
||||||
|
this.centerY = 0;
|
||||||
|
this.radius = 0;
|
||||||
|
this.angle = 0;
|
||||||
|
this.worldX = 0;
|
||||||
|
this.worldY = 0;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
SwirlEffect.prototype.begin = function (skeleton) {
|
||||||
|
this.worldX = skeleton.x + this.centerX;
|
||||||
|
this.worldY = skeleton.y + this.centerY;
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
var radAngle = this.angle * spine.MathUtils.degreesToRadians;
|
||||||
|
var x = position.x - this.worldX;
|
||||||
|
var y = position.y - this.worldY;
|
||||||
|
var dist = Math.sqrt(x * x + y * y);
|
||||||
|
if (dist < this.radius) {
|
||||||
|
var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
|
var cos = Math.cos(theta);
|
||||||
|
var sin = Math.sin(theta);
|
||||||
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
position.y = sin * x + cos * y + this.worldY;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return SwirlEffect;
|
||||||
|
}());
|
||||||
|
SwirlEffect.interpolation = new spine.PowOut(2);
|
||||||
|
spine.SwirlEffect = SwirlEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
(function (spine) {
|
(function (spine) {
|
||||||
var canvas;
|
var canvas;
|
||||||
(function (canvas) {
|
(function (canvas) {
|
||||||
@ -8674,12 +8777,17 @@ var spine;
|
|||||||
function SkeletonRenderer(context, twoColorTint) {
|
function SkeletonRenderer(context, twoColorTint) {
|
||||||
if (twoColorTint === void 0) { twoColorTint = true; }
|
if (twoColorTint === void 0) { twoColorTint = true; }
|
||||||
this.premultipliedAlpha = false;
|
this.premultipliedAlpha = false;
|
||||||
|
this.vertexEffect = null;
|
||||||
this.tempColor = new spine.Color();
|
this.tempColor = new spine.Color();
|
||||||
this.tempColor2 = new spine.Color();
|
this.tempColor2 = new spine.Color();
|
||||||
this.vertexSize = 2 + 2 + 4;
|
this.vertexSize = 2 + 2 + 4;
|
||||||
this.twoColorTint = false;
|
this.twoColorTint = false;
|
||||||
this.renderable = new Renderable(null, 0, 0);
|
this.renderable = new Renderable(null, 0, 0);
|
||||||
this.clipper = new spine.SkeletonClipping();
|
this.clipper = new spine.SkeletonClipping();
|
||||||
|
this.temp = new spine.Vector2();
|
||||||
|
this.temp2 = new spine.Vector2();
|
||||||
|
this.temp3 = new spine.Color();
|
||||||
|
this.temp4 = new spine.Color();
|
||||||
this.twoColorTint = twoColorTint;
|
this.twoColorTint = twoColorTint;
|
||||||
if (twoColorTint)
|
if (twoColorTint)
|
||||||
this.vertexSize += 4;
|
this.vertexSize += 4;
|
||||||
@ -8690,6 +8798,10 @@ var spine;
|
|||||||
var premultipliedAlpha = this.premultipliedAlpha;
|
var premultipliedAlpha = this.premultipliedAlpha;
|
||||||
var twoColorTint = this.twoColorTint;
|
var twoColorTint = this.twoColorTint;
|
||||||
var blendMode = null;
|
var blendMode = null;
|
||||||
|
var tempPos = this.temp;
|
||||||
|
var tempUv = this.temp2;
|
||||||
|
var tempLight = this.temp3;
|
||||||
|
var tempDark = this.temp4;
|
||||||
var renderable = this.renderable;
|
var renderable = this.renderable;
|
||||||
var uvs = null;
|
var uvs = null;
|
||||||
var triangles = null;
|
var triangles = null;
|
||||||
@ -8764,28 +8876,75 @@ var spine;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var verts = renderable.vertices;
|
var verts = renderable.vertices;
|
||||||
if (!twoColorTint) {
|
if (this.vertexEffect != null) {
|
||||||
for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) {
|
var vertexEffect = this.vertexEffect;
|
||||||
verts[v] = finalColor.r;
|
if (!twoColorTint) {
|
||||||
verts[v + 1] = finalColor.g;
|
for (var v = 0, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) {
|
||||||
verts[v + 2] = finalColor.b;
|
tempPos.x = verts[v];
|
||||||
verts[v + 3] = finalColor.a;
|
tempPos.y = verts[v + 1];
|
||||||
verts[v + 4] = uvs[u];
|
tempUv.x = uvs[u];
|
||||||
verts[v + 5] = uvs[u + 1];
|
tempUv.y = uvs[u + 1];
|
||||||
|
tempLight.setFromColor(finalColor);
|
||||||
|
tempDark.set(0, 0, 0, 0);
|
||||||
|
vertexEffect.transform(tempPos, tempUv, tempLight, tempDark);
|
||||||
|
verts[v] = tempPos.x;
|
||||||
|
verts[v + 1] = tempPos.y;
|
||||||
|
verts[v + 2] = tempLight.r;
|
||||||
|
verts[v + 3] = tempLight.g;
|
||||||
|
verts[v + 4] = tempLight.b;
|
||||||
|
verts[v + 5] = tempLight.a;
|
||||||
|
verts[v + 6] = tempUv.x;
|
||||||
|
verts[v + 7] = tempUv.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (var v = 0, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) {
|
||||||
|
tempPos.x = verts[v];
|
||||||
|
tempPos.y = verts[v + 1];
|
||||||
|
tempUv.x = uvs[u];
|
||||||
|
tempUv.y = uvs[u + 1];
|
||||||
|
tempLight.setFromColor(finalColor);
|
||||||
|
tempDark.setFromColor(darkColor);
|
||||||
|
vertexEffect.transform(tempPos, tempUv, tempLight, tempDark);
|
||||||
|
verts[v] = tempPos.x;
|
||||||
|
verts[v + 1] = tempPos.y;
|
||||||
|
verts[v + 2] = tempLight.r;
|
||||||
|
verts[v + 3] = tempLight.g;
|
||||||
|
verts[v + 4] = tempLight.b;
|
||||||
|
verts[v + 5] = tempLight.a;
|
||||||
|
verts[v + 6] = tempUv.x;
|
||||||
|
verts[v + 7] = tempUv.y;
|
||||||
|
verts[v + 8] = tempDark.r;
|
||||||
|
verts[v + 9] = tempDark.g;
|
||||||
|
verts[v + 10] = tempDark.b;
|
||||||
|
verts[v + 11] = tempDark.a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) {
|
if (!twoColorTint) {
|
||||||
verts[v] = finalColor.r;
|
for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) {
|
||||||
verts[v + 1] = finalColor.g;
|
verts[v] = finalColor.r;
|
||||||
verts[v + 2] = finalColor.b;
|
verts[v + 1] = finalColor.g;
|
||||||
verts[v + 3] = finalColor.a;
|
verts[v + 2] = finalColor.b;
|
||||||
verts[v + 4] = uvs[u];
|
verts[v + 3] = finalColor.a;
|
||||||
verts[v + 5] = uvs[u + 1];
|
verts[v + 4] = uvs[u];
|
||||||
verts[v + 6] = darkColor.r;
|
verts[v + 5] = uvs[u + 1];
|
||||||
verts[v + 7] = darkColor.g;
|
}
|
||||||
verts[v + 8] = darkColor.b;
|
}
|
||||||
verts[v + 9] = darkColor.a;
|
else {
|
||||||
|
for (var v = 2, u = 0, n_6 = renderable.numFloats; v < n_6; v += vertexSize, u += 2) {
|
||||||
|
verts[v] = finalColor.r;
|
||||||
|
verts[v + 1] = finalColor.g;
|
||||||
|
verts[v + 2] = finalColor.b;
|
||||||
|
verts[v + 3] = finalColor.a;
|
||||||
|
verts[v + 4] = uvs[u];
|
||||||
|
verts[v + 5] = uvs[u + 1];
|
||||||
|
verts[v + 6] = darkColor.r;
|
||||||
|
verts[v + 7] = darkColor.g;
|
||||||
|
verts[v + 8] = darkColor.b;
|
||||||
|
verts[v + 9] = darkColor.a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var view = renderable.vertices.subarray(0, renderable.numFloats);
|
var view = renderable.vertices.subarray(0, renderable.numFloats);
|
||||||
@ -9153,7 +9312,7 @@ var spine;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var verts = vertices;
|
var verts = vertices;
|
||||||
for (var v = 2, u = 0, n_5 = numFloats; v < n_5; v += vertexSize, u += 2) {
|
for (var v = 2, u = 0, n_7 = numFloats; v < n_7; v += vertexSize, u += 2) {
|
||||||
verts[v] = color.r;
|
verts[v] = color.r;
|
||||||
verts[v + 1] = color.g;
|
verts[v + 1] = color.g;
|
||||||
verts[v + 2] = color.b;
|
verts[v + 2] = color.b;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
47
spine-ts/build/spine-canvas.d.ts
vendored
47
spine-ts/build/spine-canvas.d.ts
vendored
@ -962,6 +962,21 @@ declare module spine {
|
|||||||
static signum(value: number): number;
|
static signum(value: number): number;
|
||||||
static toInt(x: number): number;
|
static toInt(x: number): number;
|
||||||
static cbrt(x: number): number;
|
static cbrt(x: number): number;
|
||||||
|
static randomTriangular(min: number, max: number): number;
|
||||||
|
static randomTriangularWith(min: number, max: number, mode: number): number;
|
||||||
|
}
|
||||||
|
abstract class Interpolation {
|
||||||
|
protected abstract applyInternal(a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number;
|
||||||
|
}
|
||||||
|
class Pow extends Interpolation {
|
||||||
|
protected power: number;
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
|
}
|
||||||
|
class PowOut extends Pow {
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
}
|
}
|
||||||
class Utils {
|
class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS: boolean;
|
static SUPPORTS_TYPED_ARRAYS: boolean;
|
||||||
@ -1019,6 +1034,13 @@ declare module spine {
|
|||||||
getMean(): number;
|
getMean(): number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
interface VertexEffect {
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
abstract class Attachment {
|
abstract class Attachment {
|
||||||
name: string;
|
name: string;
|
||||||
@ -1169,6 +1191,31 @@ declare module spine {
|
|||||||
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
class JitterEffect implements VertexEffect {
|
||||||
|
jitterX: number;
|
||||||
|
jitterY: number;
|
||||||
|
constructor(jitterX: number, jitterY: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module spine {
|
||||||
|
class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation: PowOut;
|
||||||
|
centerX: number;
|
||||||
|
centerY: number;
|
||||||
|
radius: number;
|
||||||
|
angle: number;
|
||||||
|
private worldX;
|
||||||
|
private worldY;
|
||||||
|
constructor(radius: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine.canvas {
|
declare module spine.canvas {
|
||||||
class AssetManager extends spine.AssetManager {
|
class AssetManager extends spine.AssetManager {
|
||||||
constructor(pathPrefix?: string);
|
constructor(pathPrefix?: string);
|
||||||
|
|||||||
@ -5747,6 +5747,16 @@ var spine;
|
|||||||
var y = Math.pow(Math.abs(x), 1 / 3);
|
var y = Math.pow(Math.abs(x), 1 / 3);
|
||||||
return x < 0 ? -y : y;
|
return x < 0 ? -y : y;
|
||||||
};
|
};
|
||||||
|
MathUtils.randomTriangular = function (min, max) {
|
||||||
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||||
|
};
|
||||||
|
MathUtils.randomTriangularWith = function (min, max, mode) {
|
||||||
|
var u = Math.random();
|
||||||
|
var d = max - min;
|
||||||
|
if (u <= (mode - min) / d)
|
||||||
|
return min + Math.sqrt(u * d * (mode - min));
|
||||||
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
||||||
|
};
|
||||||
return MathUtils;
|
return MathUtils;
|
||||||
}());
|
}());
|
||||||
MathUtils.PI = 3.1415927;
|
MathUtils.PI = 3.1415927;
|
||||||
@ -5756,6 +5766,42 @@ var spine;
|
|||||||
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
||||||
MathUtils.degRad = MathUtils.degreesToRadians;
|
MathUtils.degRad = MathUtils.degreesToRadians;
|
||||||
spine.MathUtils = MathUtils;
|
spine.MathUtils = MathUtils;
|
||||||
|
var Interpolation = (function () {
|
||||||
|
function Interpolation() {
|
||||||
|
}
|
||||||
|
Interpolation.prototype.apply = function (start, end, a) {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
};
|
||||||
|
return Interpolation;
|
||||||
|
}());
|
||||||
|
spine.Interpolation = Interpolation;
|
||||||
|
var Pow = (function (_super) {
|
||||||
|
__extends(Pow, _super);
|
||||||
|
function Pow(power) {
|
||||||
|
var _this = _super.call(this) || this;
|
||||||
|
_this.power = 2;
|
||||||
|
_this.power = power;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
Pow.prototype.applyInternal = function (a) {
|
||||||
|
if (a <= 0.5)
|
||||||
|
return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
};
|
||||||
|
return Pow;
|
||||||
|
}(Interpolation));
|
||||||
|
spine.Pow = Pow;
|
||||||
|
var PowOut = (function (_super) {
|
||||||
|
__extends(PowOut, _super);
|
||||||
|
function PowOut(power) {
|
||||||
|
return _super.call(this, power) || this;
|
||||||
|
}
|
||||||
|
PowOut.prototype.applyInternal = function (a) {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
};
|
||||||
|
return PowOut;
|
||||||
|
}(Pow));
|
||||||
|
spine.PowOut = PowOut;
|
||||||
var Utils = (function () {
|
var Utils = (function () {
|
||||||
function Utils() {
|
function Utils() {
|
||||||
}
|
}
|
||||||
@ -6317,6 +6363,63 @@ var spine;
|
|||||||
spine.RegionAttachment = RegionAttachment;
|
spine.RegionAttachment = RegionAttachment;
|
||||||
})(spine || (spine = {}));
|
})(spine || (spine = {}));
|
||||||
var spine;
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var JitterEffect = (function () {
|
||||||
|
function JitterEffect(jitterX, jitterY) {
|
||||||
|
this.jitterX = 0;
|
||||||
|
this.jitterY = 0;
|
||||||
|
this.jitterX = jitterX;
|
||||||
|
this.jitterY = jitterY;
|
||||||
|
}
|
||||||
|
JitterEffect.prototype.begin = function (skeleton) {
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return JitterEffect;
|
||||||
|
}());
|
||||||
|
spine.JitterEffect = JitterEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var SwirlEffect = (function () {
|
||||||
|
function SwirlEffect(radius) {
|
||||||
|
this.centerX = 0;
|
||||||
|
this.centerY = 0;
|
||||||
|
this.radius = 0;
|
||||||
|
this.angle = 0;
|
||||||
|
this.worldX = 0;
|
||||||
|
this.worldY = 0;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
SwirlEffect.prototype.begin = function (skeleton) {
|
||||||
|
this.worldX = skeleton.x + this.centerX;
|
||||||
|
this.worldY = skeleton.y + this.centerY;
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
var radAngle = this.angle * spine.MathUtils.degreesToRadians;
|
||||||
|
var x = position.x - this.worldX;
|
||||||
|
var y = position.y - this.worldY;
|
||||||
|
var dist = Math.sqrt(x * x + y * y);
|
||||||
|
if (dist < this.radius) {
|
||||||
|
var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
|
var cos = Math.cos(theta);
|
||||||
|
var sin = Math.sin(theta);
|
||||||
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
position.y = sin * x + cos * y + this.worldY;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return SwirlEffect;
|
||||||
|
}());
|
||||||
|
SwirlEffect.interpolation = new spine.PowOut(2);
|
||||||
|
spine.SwirlEffect = SwirlEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
(function (spine) {
|
(function (spine) {
|
||||||
var canvas;
|
var canvas;
|
||||||
(function (canvas) {
|
(function (canvas) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
47
spine-ts/build/spine-core.d.ts
vendored
47
spine-ts/build/spine-core.d.ts
vendored
@ -962,6 +962,21 @@ declare module spine {
|
|||||||
static signum(value: number): number;
|
static signum(value: number): number;
|
||||||
static toInt(x: number): number;
|
static toInt(x: number): number;
|
||||||
static cbrt(x: number): number;
|
static cbrt(x: number): number;
|
||||||
|
static randomTriangular(min: number, max: number): number;
|
||||||
|
static randomTriangularWith(min: number, max: number, mode: number): number;
|
||||||
|
}
|
||||||
|
abstract class Interpolation {
|
||||||
|
protected abstract applyInternal(a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number;
|
||||||
|
}
|
||||||
|
class Pow extends Interpolation {
|
||||||
|
protected power: number;
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
|
}
|
||||||
|
class PowOut extends Pow {
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
}
|
}
|
||||||
class Utils {
|
class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS: boolean;
|
static SUPPORTS_TYPED_ARRAYS: boolean;
|
||||||
@ -1019,6 +1034,13 @@ declare module spine {
|
|||||||
getMean(): number;
|
getMean(): number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
interface VertexEffect {
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
abstract class Attachment {
|
abstract class Attachment {
|
||||||
name: string;
|
name: string;
|
||||||
@ -1169,3 +1191,28 @@ declare module spine {
|
|||||||
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
class JitterEffect implements VertexEffect {
|
||||||
|
jitterX: number;
|
||||||
|
jitterY: number;
|
||||||
|
constructor(jitterX: number, jitterY: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module spine {
|
||||||
|
class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation: PowOut;
|
||||||
|
centerX: number;
|
||||||
|
centerY: number;
|
||||||
|
radius: number;
|
||||||
|
angle: number;
|
||||||
|
private worldX;
|
||||||
|
private worldY;
|
||||||
|
constructor(radius: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -5747,6 +5747,16 @@ var spine;
|
|||||||
var y = Math.pow(Math.abs(x), 1 / 3);
|
var y = Math.pow(Math.abs(x), 1 / 3);
|
||||||
return x < 0 ? -y : y;
|
return x < 0 ? -y : y;
|
||||||
};
|
};
|
||||||
|
MathUtils.randomTriangular = function (min, max) {
|
||||||
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||||
|
};
|
||||||
|
MathUtils.randomTriangularWith = function (min, max, mode) {
|
||||||
|
var u = Math.random();
|
||||||
|
var d = max - min;
|
||||||
|
if (u <= (mode - min) / d)
|
||||||
|
return min + Math.sqrt(u * d * (mode - min));
|
||||||
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
||||||
|
};
|
||||||
return MathUtils;
|
return MathUtils;
|
||||||
}());
|
}());
|
||||||
MathUtils.PI = 3.1415927;
|
MathUtils.PI = 3.1415927;
|
||||||
@ -5756,6 +5766,42 @@ var spine;
|
|||||||
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
||||||
MathUtils.degRad = MathUtils.degreesToRadians;
|
MathUtils.degRad = MathUtils.degreesToRadians;
|
||||||
spine.MathUtils = MathUtils;
|
spine.MathUtils = MathUtils;
|
||||||
|
var Interpolation = (function () {
|
||||||
|
function Interpolation() {
|
||||||
|
}
|
||||||
|
Interpolation.prototype.apply = function (start, end, a) {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
};
|
||||||
|
return Interpolation;
|
||||||
|
}());
|
||||||
|
spine.Interpolation = Interpolation;
|
||||||
|
var Pow = (function (_super) {
|
||||||
|
__extends(Pow, _super);
|
||||||
|
function Pow(power) {
|
||||||
|
var _this = _super.call(this) || this;
|
||||||
|
_this.power = 2;
|
||||||
|
_this.power = power;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
Pow.prototype.applyInternal = function (a) {
|
||||||
|
if (a <= 0.5)
|
||||||
|
return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
};
|
||||||
|
return Pow;
|
||||||
|
}(Interpolation));
|
||||||
|
spine.Pow = Pow;
|
||||||
|
var PowOut = (function (_super) {
|
||||||
|
__extends(PowOut, _super);
|
||||||
|
function PowOut(power) {
|
||||||
|
return _super.call(this, power) || this;
|
||||||
|
}
|
||||||
|
PowOut.prototype.applyInternal = function (a) {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
};
|
||||||
|
return PowOut;
|
||||||
|
}(Pow));
|
||||||
|
spine.PowOut = PowOut;
|
||||||
var Utils = (function () {
|
var Utils = (function () {
|
||||||
function Utils() {
|
function Utils() {
|
||||||
}
|
}
|
||||||
@ -6316,4 +6362,61 @@ var spine;
|
|||||||
RegionAttachment.V4 = 31;
|
RegionAttachment.V4 = 31;
|
||||||
spine.RegionAttachment = RegionAttachment;
|
spine.RegionAttachment = RegionAttachment;
|
||||||
})(spine || (spine = {}));
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var JitterEffect = (function () {
|
||||||
|
function JitterEffect(jitterX, jitterY) {
|
||||||
|
this.jitterX = 0;
|
||||||
|
this.jitterY = 0;
|
||||||
|
this.jitterX = jitterX;
|
||||||
|
this.jitterY = jitterY;
|
||||||
|
}
|
||||||
|
JitterEffect.prototype.begin = function (skeleton) {
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return JitterEffect;
|
||||||
|
}());
|
||||||
|
spine.JitterEffect = JitterEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var SwirlEffect = (function () {
|
||||||
|
function SwirlEffect(radius) {
|
||||||
|
this.centerX = 0;
|
||||||
|
this.centerY = 0;
|
||||||
|
this.radius = 0;
|
||||||
|
this.angle = 0;
|
||||||
|
this.worldX = 0;
|
||||||
|
this.worldY = 0;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
SwirlEffect.prototype.begin = function (skeleton) {
|
||||||
|
this.worldX = skeleton.x + this.centerX;
|
||||||
|
this.worldY = skeleton.y + this.centerY;
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
var radAngle = this.angle * spine.MathUtils.degreesToRadians;
|
||||||
|
var x = position.x - this.worldX;
|
||||||
|
var y = position.y - this.worldY;
|
||||||
|
var dist = Math.sqrt(x * x + y * y);
|
||||||
|
if (dist < this.radius) {
|
||||||
|
var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
|
var cos = Math.cos(theta);
|
||||||
|
var sin = Math.sin(theta);
|
||||||
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
position.y = sin * x + cos * y + this.worldY;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return SwirlEffect;
|
||||||
|
}());
|
||||||
|
SwirlEffect.interpolation = new spine.PowOut(2);
|
||||||
|
spine.SwirlEffect = SwirlEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
//# sourceMappingURL=spine-core.js.map
|
//# sourceMappingURL=spine-core.js.map
|
||||||
File diff suppressed because one or more lines are too long
47
spine-ts/build/spine-threejs.d.ts
vendored
47
spine-ts/build/spine-threejs.d.ts
vendored
@ -962,6 +962,21 @@ declare module spine {
|
|||||||
static signum(value: number): number;
|
static signum(value: number): number;
|
||||||
static toInt(x: number): number;
|
static toInt(x: number): number;
|
||||||
static cbrt(x: number): number;
|
static cbrt(x: number): number;
|
||||||
|
static randomTriangular(min: number, max: number): number;
|
||||||
|
static randomTriangularWith(min: number, max: number, mode: number): number;
|
||||||
|
}
|
||||||
|
abstract class Interpolation {
|
||||||
|
protected abstract applyInternal(a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number;
|
||||||
|
}
|
||||||
|
class Pow extends Interpolation {
|
||||||
|
protected power: number;
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
|
}
|
||||||
|
class PowOut extends Pow {
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
}
|
}
|
||||||
class Utils {
|
class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS: boolean;
|
static SUPPORTS_TYPED_ARRAYS: boolean;
|
||||||
@ -1019,6 +1034,13 @@ declare module spine {
|
|||||||
getMean(): number;
|
getMean(): number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
interface VertexEffect {
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
abstract class Attachment {
|
abstract class Attachment {
|
||||||
name: string;
|
name: string;
|
||||||
@ -1169,6 +1191,31 @@ declare module spine {
|
|||||||
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
class JitterEffect implements VertexEffect {
|
||||||
|
jitterX: number;
|
||||||
|
jitterY: number;
|
||||||
|
constructor(jitterX: number, jitterY: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module spine {
|
||||||
|
class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation: PowOut;
|
||||||
|
centerX: number;
|
||||||
|
centerY: number;
|
||||||
|
radius: number;
|
||||||
|
angle: number;
|
||||||
|
private worldX;
|
||||||
|
private worldY;
|
||||||
|
constructor(radius: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine.threejs {
|
declare module spine.threejs {
|
||||||
class AssetManager extends spine.AssetManager {
|
class AssetManager extends spine.AssetManager {
|
||||||
constructor(pathPrefix?: string);
|
constructor(pathPrefix?: string);
|
||||||
|
|||||||
@ -5747,6 +5747,16 @@ var spine;
|
|||||||
var y = Math.pow(Math.abs(x), 1 / 3);
|
var y = Math.pow(Math.abs(x), 1 / 3);
|
||||||
return x < 0 ? -y : y;
|
return x < 0 ? -y : y;
|
||||||
};
|
};
|
||||||
|
MathUtils.randomTriangular = function (min, max) {
|
||||||
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||||
|
};
|
||||||
|
MathUtils.randomTriangularWith = function (min, max, mode) {
|
||||||
|
var u = Math.random();
|
||||||
|
var d = max - min;
|
||||||
|
if (u <= (mode - min) / d)
|
||||||
|
return min + Math.sqrt(u * d * (mode - min));
|
||||||
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
||||||
|
};
|
||||||
return MathUtils;
|
return MathUtils;
|
||||||
}());
|
}());
|
||||||
MathUtils.PI = 3.1415927;
|
MathUtils.PI = 3.1415927;
|
||||||
@ -5756,6 +5766,42 @@ var spine;
|
|||||||
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
||||||
MathUtils.degRad = MathUtils.degreesToRadians;
|
MathUtils.degRad = MathUtils.degreesToRadians;
|
||||||
spine.MathUtils = MathUtils;
|
spine.MathUtils = MathUtils;
|
||||||
|
var Interpolation = (function () {
|
||||||
|
function Interpolation() {
|
||||||
|
}
|
||||||
|
Interpolation.prototype.apply = function (start, end, a) {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
};
|
||||||
|
return Interpolation;
|
||||||
|
}());
|
||||||
|
spine.Interpolation = Interpolation;
|
||||||
|
var Pow = (function (_super) {
|
||||||
|
__extends(Pow, _super);
|
||||||
|
function Pow(power) {
|
||||||
|
var _this = _super.call(this) || this;
|
||||||
|
_this.power = 2;
|
||||||
|
_this.power = power;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
Pow.prototype.applyInternal = function (a) {
|
||||||
|
if (a <= 0.5)
|
||||||
|
return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
};
|
||||||
|
return Pow;
|
||||||
|
}(Interpolation));
|
||||||
|
spine.Pow = Pow;
|
||||||
|
var PowOut = (function (_super) {
|
||||||
|
__extends(PowOut, _super);
|
||||||
|
function PowOut(power) {
|
||||||
|
return _super.call(this, power) || this;
|
||||||
|
}
|
||||||
|
PowOut.prototype.applyInternal = function (a) {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
};
|
||||||
|
return PowOut;
|
||||||
|
}(Pow));
|
||||||
|
spine.PowOut = PowOut;
|
||||||
var Utils = (function () {
|
var Utils = (function () {
|
||||||
function Utils() {
|
function Utils() {
|
||||||
}
|
}
|
||||||
@ -6317,6 +6363,63 @@ var spine;
|
|||||||
spine.RegionAttachment = RegionAttachment;
|
spine.RegionAttachment = RegionAttachment;
|
||||||
})(spine || (spine = {}));
|
})(spine || (spine = {}));
|
||||||
var spine;
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var JitterEffect = (function () {
|
||||||
|
function JitterEffect(jitterX, jitterY) {
|
||||||
|
this.jitterX = 0;
|
||||||
|
this.jitterY = 0;
|
||||||
|
this.jitterX = jitterX;
|
||||||
|
this.jitterY = jitterY;
|
||||||
|
}
|
||||||
|
JitterEffect.prototype.begin = function (skeleton) {
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return JitterEffect;
|
||||||
|
}());
|
||||||
|
spine.JitterEffect = JitterEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var SwirlEffect = (function () {
|
||||||
|
function SwirlEffect(radius) {
|
||||||
|
this.centerX = 0;
|
||||||
|
this.centerY = 0;
|
||||||
|
this.radius = 0;
|
||||||
|
this.angle = 0;
|
||||||
|
this.worldX = 0;
|
||||||
|
this.worldY = 0;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
SwirlEffect.prototype.begin = function (skeleton) {
|
||||||
|
this.worldX = skeleton.x + this.centerX;
|
||||||
|
this.worldY = skeleton.y + this.centerY;
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
var radAngle = this.angle * spine.MathUtils.degreesToRadians;
|
||||||
|
var x = position.x - this.worldX;
|
||||||
|
var y = position.y - this.worldY;
|
||||||
|
var dist = Math.sqrt(x * x + y * y);
|
||||||
|
if (dist < this.radius) {
|
||||||
|
var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
|
var cos = Math.cos(theta);
|
||||||
|
var sin = Math.sin(theta);
|
||||||
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
position.y = sin * x + cos * y + this.worldY;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return SwirlEffect;
|
||||||
|
}());
|
||||||
|
SwirlEffect.interpolation = new spine.PowOut(2);
|
||||||
|
spine.SwirlEffect = SwirlEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
(function (spine) {
|
(function (spine) {
|
||||||
var threejs;
|
var threejs;
|
||||||
(function (threejs) {
|
(function (threejs) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
3050
spine-ts/build/spine-webgl.d.ts
vendored
3050
spine-ts/build/spine-webgl.d.ts
vendored
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
52
spine-ts/build/spine-widget.d.ts
vendored
52
spine-ts/build/spine-widget.d.ts
vendored
@ -962,6 +962,21 @@ declare module spine {
|
|||||||
static signum(value: number): number;
|
static signum(value: number): number;
|
||||||
static toInt(x: number): number;
|
static toInt(x: number): number;
|
||||||
static cbrt(x: number): number;
|
static cbrt(x: number): number;
|
||||||
|
static randomTriangular(min: number, max: number): number;
|
||||||
|
static randomTriangularWith(min: number, max: number, mode: number): number;
|
||||||
|
}
|
||||||
|
abstract class Interpolation {
|
||||||
|
protected abstract applyInternal(a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number;
|
||||||
|
}
|
||||||
|
class Pow extends Interpolation {
|
||||||
|
protected power: number;
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
|
}
|
||||||
|
class PowOut extends Pow {
|
||||||
|
constructor(power: number);
|
||||||
|
applyInternal(a: number): number;
|
||||||
}
|
}
|
||||||
class Utils {
|
class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS: boolean;
|
static SUPPORTS_TYPED_ARRAYS: boolean;
|
||||||
@ -1019,6 +1034,13 @@ declare module spine {
|
|||||||
getMean(): number;
|
getMean(): number;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
interface VertexEffect {
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine {
|
declare module spine {
|
||||||
abstract class Attachment {
|
abstract class Attachment {
|
||||||
name: string;
|
name: string;
|
||||||
@ -1169,6 +1191,31 @@ declare module spine {
|
|||||||
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
computeWorldVertices(bone: Bone, worldVertices: ArrayLike<number>, offset: number, stride: number): void;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
declare module spine {
|
||||||
|
class JitterEffect implements VertexEffect {
|
||||||
|
jitterX: number;
|
||||||
|
jitterY: number;
|
||||||
|
constructor(jitterX: number, jitterY: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module spine {
|
||||||
|
class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation: PowOut;
|
||||||
|
centerX: number;
|
||||||
|
centerY: number;
|
||||||
|
radius: number;
|
||||||
|
angle: number;
|
||||||
|
private worldX;
|
||||||
|
private worldY;
|
||||||
|
constructor(radius: number);
|
||||||
|
begin(skeleton: Skeleton): void;
|
||||||
|
transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void;
|
||||||
|
end(): void;
|
||||||
|
}
|
||||||
|
}
|
||||||
declare module spine.webgl {
|
declare module spine.webgl {
|
||||||
class AssetManager extends spine.AssetManager {
|
class AssetManager extends spine.AssetManager {
|
||||||
constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string);
|
constructor(context: ManagedWebGLRenderingContext | WebGLRenderingContext, pathPrefix?: string);
|
||||||
@ -1540,6 +1587,7 @@ declare module spine.webgl {
|
|||||||
class SkeletonRenderer {
|
class SkeletonRenderer {
|
||||||
static QUAD_TRIANGLES: number[];
|
static QUAD_TRIANGLES: number[];
|
||||||
premultipliedAlpha: boolean;
|
premultipliedAlpha: boolean;
|
||||||
|
vertexEffect: VertexEffect;
|
||||||
private tempColor;
|
private tempColor;
|
||||||
private tempColor2;
|
private tempColor2;
|
||||||
private vertices;
|
private vertices;
|
||||||
@ -1547,6 +1595,10 @@ declare module spine.webgl {
|
|||||||
private twoColorTint;
|
private twoColorTint;
|
||||||
private renderable;
|
private renderable;
|
||||||
private clipper;
|
private clipper;
|
||||||
|
private temp;
|
||||||
|
private temp2;
|
||||||
|
private temp3;
|
||||||
|
private temp4;
|
||||||
constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean);
|
constructor(context: ManagedWebGLRenderingContext, twoColorTint?: boolean);
|
||||||
draw(batcher: PolygonBatcher, skeleton: Skeleton): void;
|
draw(batcher: PolygonBatcher, skeleton: Skeleton): void;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5747,6 +5747,16 @@ var spine;
|
|||||||
var y = Math.pow(Math.abs(x), 1 / 3);
|
var y = Math.pow(Math.abs(x), 1 / 3);
|
||||||
return x < 0 ? -y : y;
|
return x < 0 ? -y : y;
|
||||||
};
|
};
|
||||||
|
MathUtils.randomTriangular = function (min, max) {
|
||||||
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||||
|
};
|
||||||
|
MathUtils.randomTriangularWith = function (min, max, mode) {
|
||||||
|
var u = Math.random();
|
||||||
|
var d = max - min;
|
||||||
|
if (u <= (mode - min) / d)
|
||||||
|
return min + Math.sqrt(u * d * (mode - min));
|
||||||
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
||||||
|
};
|
||||||
return MathUtils;
|
return MathUtils;
|
||||||
}());
|
}());
|
||||||
MathUtils.PI = 3.1415927;
|
MathUtils.PI = 3.1415927;
|
||||||
@ -5756,6 +5766,42 @@ var spine;
|
|||||||
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
||||||
MathUtils.degRad = MathUtils.degreesToRadians;
|
MathUtils.degRad = MathUtils.degreesToRadians;
|
||||||
spine.MathUtils = MathUtils;
|
spine.MathUtils = MathUtils;
|
||||||
|
var Interpolation = (function () {
|
||||||
|
function Interpolation() {
|
||||||
|
}
|
||||||
|
Interpolation.prototype.apply = function (start, end, a) {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
};
|
||||||
|
return Interpolation;
|
||||||
|
}());
|
||||||
|
spine.Interpolation = Interpolation;
|
||||||
|
var Pow = (function (_super) {
|
||||||
|
__extends(Pow, _super);
|
||||||
|
function Pow(power) {
|
||||||
|
var _this = _super.call(this) || this;
|
||||||
|
_this.power = 2;
|
||||||
|
_this.power = power;
|
||||||
|
return _this;
|
||||||
|
}
|
||||||
|
Pow.prototype.applyInternal = function (a) {
|
||||||
|
if (a <= 0.5)
|
||||||
|
return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
};
|
||||||
|
return Pow;
|
||||||
|
}(Interpolation));
|
||||||
|
spine.Pow = Pow;
|
||||||
|
var PowOut = (function (_super) {
|
||||||
|
__extends(PowOut, _super);
|
||||||
|
function PowOut(power) {
|
||||||
|
return _super.call(this, power) || this;
|
||||||
|
}
|
||||||
|
PowOut.prototype.applyInternal = function (a) {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
};
|
||||||
|
return PowOut;
|
||||||
|
}(Pow));
|
||||||
|
spine.PowOut = PowOut;
|
||||||
var Utils = (function () {
|
var Utils = (function () {
|
||||||
function Utils() {
|
function Utils() {
|
||||||
}
|
}
|
||||||
@ -6317,6 +6363,63 @@ var spine;
|
|||||||
spine.RegionAttachment = RegionAttachment;
|
spine.RegionAttachment = RegionAttachment;
|
||||||
})(spine || (spine = {}));
|
})(spine || (spine = {}));
|
||||||
var spine;
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var JitterEffect = (function () {
|
||||||
|
function JitterEffect(jitterX, jitterY) {
|
||||||
|
this.jitterX = 0;
|
||||||
|
this.jitterY = 0;
|
||||||
|
this.jitterX = jitterX;
|
||||||
|
this.jitterY = jitterY;
|
||||||
|
}
|
||||||
|
JitterEffect.prototype.begin = function (skeleton) {
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
position.x += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
position.y += spine.MathUtils.randomTriangular(-this.jitterX, this.jitterY);
|
||||||
|
};
|
||||||
|
JitterEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return JitterEffect;
|
||||||
|
}());
|
||||||
|
spine.JitterEffect = JitterEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
|
(function (spine) {
|
||||||
|
var SwirlEffect = (function () {
|
||||||
|
function SwirlEffect(radius) {
|
||||||
|
this.centerX = 0;
|
||||||
|
this.centerY = 0;
|
||||||
|
this.radius = 0;
|
||||||
|
this.angle = 0;
|
||||||
|
this.worldX = 0;
|
||||||
|
this.worldY = 0;
|
||||||
|
this.radius = radius;
|
||||||
|
}
|
||||||
|
SwirlEffect.prototype.begin = function (skeleton) {
|
||||||
|
this.worldX = skeleton.x + this.centerX;
|
||||||
|
this.worldY = skeleton.y + this.centerY;
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.transform = function (position, uv, light, dark) {
|
||||||
|
var radAngle = this.angle * spine.MathUtils.degreesToRadians;
|
||||||
|
var x = position.x - this.worldX;
|
||||||
|
var y = position.y - this.worldY;
|
||||||
|
var dist = Math.sqrt(x * x + y * y);
|
||||||
|
if (dist < this.radius) {
|
||||||
|
var theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
|
var cos = Math.cos(theta);
|
||||||
|
var sin = Math.sin(theta);
|
||||||
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
position.y = sin * x + cos * y + this.worldY;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
SwirlEffect.prototype.end = function () {
|
||||||
|
};
|
||||||
|
return SwirlEffect;
|
||||||
|
}());
|
||||||
|
SwirlEffect.interpolation = new spine.PowOut(2);
|
||||||
|
spine.SwirlEffect = SwirlEffect;
|
||||||
|
})(spine || (spine = {}));
|
||||||
|
var spine;
|
||||||
(function (spine) {
|
(function (spine) {
|
||||||
var webgl;
|
var webgl;
|
||||||
(function (webgl) {
|
(function (webgl) {
|
||||||
@ -8420,12 +8523,17 @@ var spine;
|
|||||||
function SkeletonRenderer(context, twoColorTint) {
|
function SkeletonRenderer(context, twoColorTint) {
|
||||||
if (twoColorTint === void 0) { twoColorTint = true; }
|
if (twoColorTint === void 0) { twoColorTint = true; }
|
||||||
this.premultipliedAlpha = false;
|
this.premultipliedAlpha = false;
|
||||||
|
this.vertexEffect = null;
|
||||||
this.tempColor = new spine.Color();
|
this.tempColor = new spine.Color();
|
||||||
this.tempColor2 = new spine.Color();
|
this.tempColor2 = new spine.Color();
|
||||||
this.vertexSize = 2 + 2 + 4;
|
this.vertexSize = 2 + 2 + 4;
|
||||||
this.twoColorTint = false;
|
this.twoColorTint = false;
|
||||||
this.renderable = new Renderable(null, 0, 0);
|
this.renderable = new Renderable(null, 0, 0);
|
||||||
this.clipper = new spine.SkeletonClipping();
|
this.clipper = new spine.SkeletonClipping();
|
||||||
|
this.temp = new spine.Vector2();
|
||||||
|
this.temp2 = new spine.Vector2();
|
||||||
|
this.temp3 = new spine.Color();
|
||||||
|
this.temp4 = new spine.Color();
|
||||||
this.twoColorTint = twoColorTint;
|
this.twoColorTint = twoColorTint;
|
||||||
if (twoColorTint)
|
if (twoColorTint)
|
||||||
this.vertexSize += 4;
|
this.vertexSize += 4;
|
||||||
@ -8436,6 +8544,10 @@ var spine;
|
|||||||
var premultipliedAlpha = this.premultipliedAlpha;
|
var premultipliedAlpha = this.premultipliedAlpha;
|
||||||
var twoColorTint = this.twoColorTint;
|
var twoColorTint = this.twoColorTint;
|
||||||
var blendMode = null;
|
var blendMode = null;
|
||||||
|
var tempPos = this.temp;
|
||||||
|
var tempUv = this.temp2;
|
||||||
|
var tempLight = this.temp3;
|
||||||
|
var tempDark = this.temp4;
|
||||||
var renderable = this.renderable;
|
var renderable = this.renderable;
|
||||||
var uvs = null;
|
var uvs = null;
|
||||||
var triangles = null;
|
var triangles = null;
|
||||||
@ -8510,28 +8622,75 @@ var spine;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var verts = renderable.vertices;
|
var verts = renderable.vertices;
|
||||||
if (!twoColorTint) {
|
if (this.vertexEffect != null) {
|
||||||
for (var v = 2, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) {
|
var vertexEffect = this.vertexEffect;
|
||||||
verts[v] = finalColor.r;
|
if (!twoColorTint) {
|
||||||
verts[v + 1] = finalColor.g;
|
for (var v = 0, u = 0, n_3 = renderable.numFloats; v < n_3; v += vertexSize, u += 2) {
|
||||||
verts[v + 2] = finalColor.b;
|
tempPos.x = verts[v];
|
||||||
verts[v + 3] = finalColor.a;
|
tempPos.y = verts[v + 1];
|
||||||
verts[v + 4] = uvs[u];
|
tempUv.x = uvs[u];
|
||||||
verts[v + 5] = uvs[u + 1];
|
tempUv.y = uvs[u + 1];
|
||||||
|
tempLight.setFromColor(finalColor);
|
||||||
|
tempDark.set(0, 0, 0, 0);
|
||||||
|
vertexEffect.transform(tempPos, tempUv, tempLight, tempDark);
|
||||||
|
verts[v] = tempPos.x;
|
||||||
|
verts[v + 1] = tempPos.y;
|
||||||
|
verts[v + 2] = tempLight.r;
|
||||||
|
verts[v + 3] = tempLight.g;
|
||||||
|
verts[v + 4] = tempLight.b;
|
||||||
|
verts[v + 5] = tempLight.a;
|
||||||
|
verts[v + 6] = tempUv.x;
|
||||||
|
verts[v + 7] = tempUv.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (var v = 0, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) {
|
||||||
|
tempPos.x = verts[v];
|
||||||
|
tempPos.y = verts[v + 1];
|
||||||
|
tempUv.x = uvs[u];
|
||||||
|
tempUv.y = uvs[u + 1];
|
||||||
|
tempLight.setFromColor(finalColor);
|
||||||
|
tempDark.setFromColor(darkColor);
|
||||||
|
vertexEffect.transform(tempPos, tempUv, tempLight, tempDark);
|
||||||
|
verts[v] = tempPos.x;
|
||||||
|
verts[v + 1] = tempPos.y;
|
||||||
|
verts[v + 2] = tempLight.r;
|
||||||
|
verts[v + 3] = tempLight.g;
|
||||||
|
verts[v + 4] = tempLight.b;
|
||||||
|
verts[v + 5] = tempLight.a;
|
||||||
|
verts[v + 6] = tempUv.x;
|
||||||
|
verts[v + 7] = tempUv.y;
|
||||||
|
verts[v + 8] = tempDark.r;
|
||||||
|
verts[v + 9] = tempDark.g;
|
||||||
|
verts[v + 10] = tempDark.b;
|
||||||
|
verts[v + 11] = tempDark.a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (var v = 2, u = 0, n_4 = renderable.numFloats; v < n_4; v += vertexSize, u += 2) {
|
if (!twoColorTint) {
|
||||||
verts[v] = finalColor.r;
|
for (var v = 2, u = 0, n_5 = renderable.numFloats; v < n_5; v += vertexSize, u += 2) {
|
||||||
verts[v + 1] = finalColor.g;
|
verts[v] = finalColor.r;
|
||||||
verts[v + 2] = finalColor.b;
|
verts[v + 1] = finalColor.g;
|
||||||
verts[v + 3] = finalColor.a;
|
verts[v + 2] = finalColor.b;
|
||||||
verts[v + 4] = uvs[u];
|
verts[v + 3] = finalColor.a;
|
||||||
verts[v + 5] = uvs[u + 1];
|
verts[v + 4] = uvs[u];
|
||||||
verts[v + 6] = darkColor.r;
|
verts[v + 5] = uvs[u + 1];
|
||||||
verts[v + 7] = darkColor.g;
|
}
|
||||||
verts[v + 8] = darkColor.b;
|
}
|
||||||
verts[v + 9] = darkColor.a;
|
else {
|
||||||
|
for (var v = 2, u = 0, n_6 = renderable.numFloats; v < n_6; v += vertexSize, u += 2) {
|
||||||
|
verts[v] = finalColor.r;
|
||||||
|
verts[v + 1] = finalColor.g;
|
||||||
|
verts[v + 2] = finalColor.b;
|
||||||
|
verts[v + 3] = finalColor.a;
|
||||||
|
verts[v + 4] = uvs[u];
|
||||||
|
verts[v + 5] = uvs[u + 1];
|
||||||
|
verts[v + 6] = darkColor.r;
|
||||||
|
verts[v + 7] = darkColor.g;
|
||||||
|
verts[v + 8] = darkColor.b;
|
||||||
|
verts[v + 9] = darkColor.a;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var view = renderable.vertices.subarray(0, renderable.numFloats);
|
var view = renderable.vertices.subarray(0, renderable.numFloats);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -171,6 +171,37 @@ module spine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export abstract class Interpolation {
|
||||||
|
protected abstract applyInternal (a: number): number;
|
||||||
|
apply(start: number, end: number, a: number): number {
|
||||||
|
return start + (end - start) * this.applyInternal(a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Pow extends Interpolation {
|
||||||
|
protected power = 2;
|
||||||
|
|
||||||
|
constructor (power: number) {
|
||||||
|
super();
|
||||||
|
this.power = power;
|
||||||
|
}
|
||||||
|
|
||||||
|
applyInternal (a: number): number {
|
||||||
|
if (a <= 0.5) return Math.pow(a * 2, this.power) / 2;
|
||||||
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class PowOut extends Pow {
|
||||||
|
constructor (power: number) {
|
||||||
|
super(power);
|
||||||
|
}
|
||||||
|
|
||||||
|
applyInternal (a: number) : number {
|
||||||
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class Utils {
|
export class Utils {
|
||||||
static SUPPORTS_TYPED_ARRAYS = typeof(Float32Array) !== "undefined";
|
static SUPPORTS_TYPED_ARRAYS = typeof(Float32Array) !== "undefined";
|
||||||
|
|
||||||
|
|||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
module spine {
|
module spine {
|
||||||
export class SwirlEffect implements VertexEffect {
|
export class SwirlEffect implements VertexEffect {
|
||||||
|
static interpolation = new PowOut(2);
|
||||||
centerX = 0;
|
centerX = 0;
|
||||||
centerY = 0;
|
centerY = 0;
|
||||||
radius = 0;
|
radius = 0;
|
||||||
@ -53,7 +53,7 @@ module spine {
|
|||||||
let y = position.y - this.worldY;
|
let y = position.y - this.worldY;
|
||||||
let dist = Math.sqrt(x * x + y * y);
|
let dist = Math.sqrt(x * x + y * y);
|
||||||
if (dist < this.radius) {
|
if (dist < this.radius) {
|
||||||
let theta = radAngle * (Math.pow(((this.radius - dist) / this.radius) - 1, 2) * (2 % 2 == 0 ? -1 : 1) + 1);
|
let theta = SwirlEffect.interpolation.apply(0, radAngle, (this.radius - dist) / this.radius);
|
||||||
let cos = Math.cos(theta);
|
let cos = Math.cos(theta);
|
||||||
let sin = Math.sin(theta);
|
let sin = Math.sin(theta);
|
||||||
position.x = cos * x - sin * y + this.worldX;
|
position.x = cos * x - sin * y + this.worldX;
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
var FILE = "raptor";
|
var FILE = "raptor-pro";
|
||||||
var ANIMATION = "walk";
|
var ANIMATION = "walk";
|
||||||
var NUM_SKELETONS = 1;
|
var NUM_SKELETONS = 1;
|
||||||
var SCALE = 0.5;
|
var SCALE = 0.5;
|
||||||
@ -23,6 +23,9 @@ var timeKeeper;
|
|||||||
var label = document.getElementById("label");
|
var label = document.getElementById("label");
|
||||||
var updateMean = new spine.WindowedMean();
|
var updateMean = new spine.WindowedMean();
|
||||||
var renderMean = new spine.WindowedMean();
|
var renderMean = new spine.WindowedMean();
|
||||||
|
var swirlEffect = new spine.SwirlEffect();
|
||||||
|
var swirlTime = 0;
|
||||||
|
var interpolation = new spine.Pow(2);
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
canvas = document.getElementById("canvas");
|
canvas = document.getElementById("canvas");
|
||||||
@ -36,13 +39,18 @@ function init() {
|
|||||||
renderer.skeletonDebugRenderer.drawMeshHull = false;
|
renderer.skeletonDebugRenderer.drawMeshHull = false;
|
||||||
renderer.skeletonDebugRenderer.drawRegionAttachments = false;
|
renderer.skeletonDebugRenderer.drawRegionAttachments = false;
|
||||||
renderer.skeletonDebugRenderer.drawBoundingBoxes = false;
|
renderer.skeletonDebugRenderer.drawBoundingBoxes = false;
|
||||||
|
renderer.skeletonRenderer.vertexEffect = swirlEffect;
|
||||||
|
|
||||||
|
swirlEffect.centerX = 0;
|
||||||
|
swirlEffect.centerY = 200;
|
||||||
|
swirlEffect.radius = 500;
|
||||||
|
|
||||||
assetManager = new spine.webgl.AssetManager(context, "assets/");
|
assetManager = new spine.webgl.AssetManager(context, "assets/");
|
||||||
var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); };
|
var textureLoader = function(img) { return new spine.webgl.GLTexture(gl, img); };
|
||||||
input = new spine.webgl.Input(canvas);
|
input = new spine.webgl.Input(canvas);
|
||||||
|
|
||||||
assetManager.loadTexture(FILE + ".png");
|
assetManager.loadTexture(FILE.replace("-pro", "").replace("-oss", "") + ".png");
|
||||||
assetManager.loadText(FILE + ".atlas");
|
assetManager.loadText(FILE.replace("-pro", "").replace("-oss", "") + ".atlas");
|
||||||
assetManager.loadText(FILE + ".json");
|
assetManager.loadText(FILE + ".json");
|
||||||
|
|
||||||
timeKeeper = new spine.TimeKeeper();
|
timeKeeper = new spine.TimeKeeper();
|
||||||
@ -52,7 +60,7 @@ function init() {
|
|||||||
function load() {
|
function load() {
|
||||||
timeKeeper.update();
|
timeKeeper.update();
|
||||||
if (assetManager.isLoadingComplete()) {
|
if (assetManager.isLoadingComplete()) {
|
||||||
var atlas = new spine.TextureAtlas(assetManager.get(FILE + ".atlas"), function(path) {
|
var atlas = new spine.TextureAtlas(assetManager.get(FILE.replace("-pro", "").replace("-oss", "") + ".atlas"), function(path) {
|
||||||
return assetManager.get(path);
|
return assetManager.get(path);
|
||||||
});
|
});
|
||||||
var atlasLoader = new spine.AtlasAttachmentLoader(atlas);
|
var atlasLoader = new spine.AtlasAttachmentLoader(atlas);
|
||||||
@ -89,6 +97,11 @@ function render() {
|
|||||||
var delta = timeKeeper.delta;
|
var delta = timeKeeper.delta;
|
||||||
delta = 0.016;
|
delta = 0.016;
|
||||||
|
|
||||||
|
swirlTime += delta;
|
||||||
|
var percent = swirlTime % 2;
|
||||||
|
if (percent > 1) percent = 1 - (percent - 1);
|
||||||
|
swirlEffect.angle = interpolation.apply(-60, 60, percent);
|
||||||
|
|
||||||
for (var i = 0; i < skeletons.length; i++) {
|
for (var i = 0; i < skeletons.length; i++) {
|
||||||
var state = skeletons[i].state;
|
var state = skeletons[i].state;
|
||||||
var skeleton = skeletons[i].skeleton;
|
var skeleton = skeletons[i].skeleton;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user