微信小程序-省心预览工具
This commit is contained in:
commit
edf1e51846
173 files changed
+78282
No files matched your search
+414
@@ -0,0 +1,414 @@
|
||||
/******************************************************************************
|
||||
* Spine Runtimes License Agreement
|
||||
* Last updated April 5, 2025. Replaces all prior versions.
|
||||
*
|
||||
* Copyright (c) 2013-2025, Esoteric Software LLC
|
||||
*
|
||||
* Integration of the Spine Runtimes into software or otherwise creating
|
||||
* derivative works of the Spine Runtimes is permitted under the terms and
|
||||
* conditions of Section 2 of the Spine Editor License Agreement:
|
||||
* http://esotericsoftware.com/spine-editor-license
|
||||
*
|
||||
* Otherwise, it is permitted to integrate the Spine Runtimes into software
|
||||
* or otherwise create derivative works of the Spine Runtimes (collectively,
|
||||
* "Products"), provided that each user of the Products must obtain their own
|
||||
* Spine Editor license and redistribution of the Products in any form must
|
||||
* include this license and copyright notice.
|
||||
*
|
||||
* THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
|
||||
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
|
||||
* BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
|
||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
export class IntSet {
|
||||
array = new Array();
|
||||
add(value) {
|
||||
let contains = this.contains(value);
|
||||
this.array[value | 0] = value | 0;
|
||||
return !contains;
|
||||
}
|
||||
contains(value) {
|
||||
return this.array[value | 0] != undefined;
|
||||
}
|
||||
remove(value) {
|
||||
this.array[value | 0] = undefined;
|
||||
}
|
||||
clear() {
|
||||
this.array.length = 0;
|
||||
}
|
||||
}
|
||||
export class StringSet {
|
||||
entries = {};
|
||||
size = 0;
|
||||
add(value) {
|
||||
let contains = this.entries[value];
|
||||
this.entries[value] = true;
|
||||
if (!contains) {
|
||||
this.size++;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
addAll(values) {
|
||||
let oldSize = this.size;
|
||||
for (var i = 0, n = values.length; i < n; i++)
|
||||
this.add(values[i]);
|
||||
return oldSize != this.size;
|
||||
}
|
||||
contains(value) {
|
||||
return this.entries[value];
|
||||
}
|
||||
clear() {
|
||||
this.entries = {};
|
||||
this.size = 0;
|
||||
}
|
||||
}
|
||||
export class Color {
|
||||
r;
|
||||
g;
|
||||
b;
|
||||
a;
|
||||
static WHITE = new Color(1, 1, 1, 1);
|
||||
static RED = new Color(1, 0, 0, 1);
|
||||
static GREEN = new Color(0, 1, 0, 1);
|
||||
static BLUE = new Color(0, 0, 1, 1);
|
||||
static MAGENTA = new Color(1, 0, 1, 1);
|
||||
constructor(r = 0, g = 0, b = 0, a = 0) {
|
||||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
||||
this.a = a;
|
||||
}
|
||||
set(r, g, b, a) {
|
||||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
||||
this.a = a;
|
||||
return this.clamp();
|
||||
}
|
||||
setFromColor(c) {
|
||||
this.r = c.r;
|
||||
this.g = c.g;
|
||||
this.b = c.b;
|
||||
this.a = c.a;
|
||||
return this;
|
||||
}
|
||||
setFromString(hex) {
|
||||
hex = hex.charAt(0) == '#' ? hex.substr(1) : hex;
|
||||
this.r = parseInt(hex.substr(0, 2), 16) / 255;
|
||||
this.g = parseInt(hex.substr(2, 2), 16) / 255;
|
||||
this.b = parseInt(hex.substr(4, 2), 16) / 255;
|
||||
this.a = hex.length != 8 ? 1 : parseInt(hex.substr(6, 2), 16) / 255;
|
||||
return this;
|
||||
}
|
||||
add(r, g, b, a) {
|
||||
this.r += r;
|
||||
this.g += g;
|
||||
this.b += b;
|
||||
this.a += a;
|
||||
return this.clamp();
|
||||
}
|
||||
clamp() {
|
||||
if (this.r < 0)
|
||||
this.r = 0;
|
||||
else if (this.r > 1)
|
||||
this.r = 1;
|
||||
if (this.g < 0)
|
||||
this.g = 0;
|
||||
else if (this.g > 1)
|
||||
this.g = 1;
|
||||
if (this.b < 0)
|
||||
this.b = 0;
|
||||
else if (this.b > 1)
|
||||
this.b = 1;
|
||||
if (this.a < 0)
|
||||
this.a = 0;
|
||||
else if (this.a > 1)
|
||||
this.a = 1;
|
||||
return this;
|
||||
}
|
||||
static rgba8888ToColor(color, value) {
|
||||
color.r = ((value & 0xff000000) >>> 24) / 255;
|
||||
color.g = ((value & 0x00ff0000) >>> 16) / 255;
|
||||
color.b = ((value & 0x0000ff00) >>> 8) / 255;
|
||||
color.a = ((value & 0x000000ff)) / 255;
|
||||
}
|
||||
static rgb888ToColor(color, value) {
|
||||
color.r = ((value & 0x00ff0000) >>> 16) / 255;
|
||||
color.g = ((value & 0x0000ff00) >>> 8) / 255;
|
||||
color.b = ((value & 0x000000ff)) / 255;
|
||||
}
|
||||
toRgb888() {
|
||||
const hex = (x) => ("0" + (x * 255).toString(16)).slice(-2);
|
||||
return Number("0x" + hex(this.r) + hex(this.g) + hex(this.b));
|
||||
}
|
||||
static fromString(hex, color = new Color()) {
|
||||
return color.setFromString(hex);
|
||||
}
|
||||
}
|
||||
export class MathUtils {
|
||||
static PI = 3.1415927;
|
||||
static PI2 = MathUtils.PI * 2;
|
||||
static invPI2 = 1 / MathUtils.PI2;
|
||||
static radiansToDegrees = 180 / MathUtils.PI;
|
||||
static radDeg = MathUtils.radiansToDegrees;
|
||||
static degreesToRadians = MathUtils.PI / 180;
|
||||
static degRad = MathUtils.degreesToRadians;
|
||||
static clamp(value, min, max) {
|
||||
if (value < min)
|
||||
return min;
|
||||
if (value > max)
|
||||
return max;
|
||||
return value;
|
||||
}
|
||||
static cosDeg(degrees) {
|
||||
return Math.cos(degrees * MathUtils.degRad);
|
||||
}
|
||||
static sinDeg(degrees) {
|
||||
return Math.sin(degrees * MathUtils.degRad);
|
||||
}
|
||||
static atan2Deg(y, x) {
|
||||
return Math.atan2(y, x) * MathUtils.degRad;
|
||||
}
|
||||
static signum(value) {
|
||||
return value > 0 ? 1 : value < 0 ? -1 : 0;
|
||||
}
|
||||
static toInt(x) {
|
||||
return x > 0 ? Math.floor(x) : Math.ceil(x);
|
||||
}
|
||||
static cbrt(x) {
|
||||
let y = Math.pow(Math.abs(x), 1 / 3);
|
||||
return x < 0 ? -y : y;
|
||||
}
|
||||
static randomTriangular(min, max) {
|
||||
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
||||
}
|
||||
static randomTriangularWith(min, max, mode) {
|
||||
let u = Math.random();
|
||||
let 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));
|
||||
}
|
||||
static isPowerOfTwo(value) {
|
||||
return value && (value & (value - 1)) === 0;
|
||||
}
|
||||
}
|
||||
export class Interpolation {
|
||||
apply(start, end, a) {
|
||||
return start + (end - start) * this.applyInternal(a);
|
||||
}
|
||||
}
|
||||
export class Pow extends Interpolation {
|
||||
power = 2;
|
||||
constructor(power) {
|
||||
super();
|
||||
this.power = power;
|
||||
}
|
||||
applyInternal(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;
|
||||
}
|
||||
}
|
||||
export class PowOut extends Pow {
|
||||
constructor(power) {
|
||||
super(power);
|
||||
}
|
||||
applyInternal(a) {
|
||||
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
||||
}
|
||||
}
|
||||
export class Utils {
|
||||
static SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";
|
||||
static arrayCopy(source, sourceStart, dest, destStart, numElements) {
|
||||
for (let i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) {
|
||||
dest[j] = source[i];
|
||||
}
|
||||
}
|
||||
static arrayFill(array, fromIndex, toIndex, value) {
|
||||
for (let i = fromIndex; i < toIndex; i++)
|
||||
array[i] = value;
|
||||
}
|
||||
static setArraySize(array, size, value = 0) {
|
||||
let oldSize = array.length;
|
||||
if (oldSize == size)
|
||||
return array;
|
||||
array.length = size;
|
||||
if (oldSize < size) {
|
||||
for (let i = oldSize; i < size; i++)
|
||||
array[i] = value;
|
||||
}
|
||||
return array;
|
||||
}
|
||||
static ensureArrayCapacity(array, size, value = 0) {
|
||||
if (array.length >= size)
|
||||
return array;
|
||||
return Utils.setArraySize(array, size, value);
|
||||
}
|
||||
static newArray(size, defaultValue) {
|
||||
let array = new Array(size);
|
||||
for (let i = 0; i < size; i++)
|
||||
array[i] = defaultValue;
|
||||
return array;
|
||||
}
|
||||
static newFloatArray(size) {
|
||||
if (Utils.SUPPORTS_TYPED_ARRAYS)
|
||||
return new Float32Array(size);
|
||||
else {
|
||||
let array = new Array(size);
|
||||
for (let i = 0; i < array.length; i++)
|
||||
array[i] = 0;
|
||||
return array;
|
||||
}
|
||||
}
|
||||
static newShortArray(size) {
|
||||
if (Utils.SUPPORTS_TYPED_ARRAYS)
|
||||
return new Int16Array(size);
|
||||
else {
|
||||
let array = new Array(size);
|
||||
for (let i = 0; i < array.length; i++)
|
||||
array[i] = 0;
|
||||
return array;
|
||||
}
|
||||
}
|
||||
static toFloatArray(array) {
|
||||
return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
|
||||
}
|
||||
static toSinglePrecision(value) {
|
||||
return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
|
||||
}
|
||||
// This function is used to fix WebKit 602 specific issue described at http://esotericsoftware.com/forum/iOS-10-disappearing-graphics-10109
|
||||
static webkit602BugfixHelper(alpha, blend) {
|
||||
}
|
||||
static contains(array, element, identity = true) {
|
||||
for (var i = 0; i < array.length; i++)
|
||||
if (array[i] == element)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
static enumValue(type, name) {
|
||||
return type[name[0].toUpperCase() + name.slice(1)];
|
||||
}
|
||||
}
|
||||
export class DebugUtils {
|
||||
static logBones(skeleton) {
|
||||
for (let i = 0; i < skeleton.bones.length; i++) {
|
||||
let bone = skeleton.bones[i];
|
||||
console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY);
|
||||
}
|
||||
}
|
||||
}
|
||||
export class Pool {
|
||||
items = new Array();
|
||||
instantiator;
|
||||
constructor(instantiator) {
|
||||
this.instantiator = instantiator;
|
||||
}
|
||||
obtain() {
|
||||
return this.items.length > 0 ? this.items.pop() : this.instantiator();
|
||||
}
|
||||
free(item) {
|
||||
if (item.reset)
|
||||
item.reset();
|
||||
this.items.push(item);
|
||||
}
|
||||
freeAll(items) {
|
||||
for (let i = 0; i < items.length; i++)
|
||||
this.free(items[i]);
|
||||
}
|
||||
clear() {
|
||||
this.items.length = 0;
|
||||
}
|
||||
}
|
||||
export class Vector2 {
|
||||
x;
|
||||
y;
|
||||
constructor(x = 0, y = 0) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
set(x, y) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
return this;
|
||||
}
|
||||
length() {
|
||||
let x = this.x;
|
||||
let y = this.y;
|
||||
return Math.sqrt(x * x + y * y);
|
||||
}
|
||||
normalize() {
|
||||
let len = this.length();
|
||||
if (len != 0) {
|
||||
this.x /= len;
|
||||
this.y /= len;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}
|
||||
export class TimeKeeper {
|
||||
maxDelta = 0.064;
|
||||
framesPerSecond = 0;
|
||||
delta = 0;
|
||||
totalTime = 0;
|
||||
lastTime = Date.now() / 1000;
|
||||
frameCount = 0;
|
||||
frameTime = 0;
|
||||
update() {
|
||||
let now = Date.now() / 1000;
|
||||
this.delta = now - this.lastTime;
|
||||
this.frameTime += this.delta;
|
||||
this.totalTime += this.delta;
|
||||
if (this.delta > this.maxDelta)
|
||||
this.delta = this.maxDelta;
|
||||
this.lastTime = now;
|
||||
this.frameCount++;
|
||||
if (this.frameTime > 1) {
|
||||
this.framesPerSecond = this.frameCount / this.frameTime;
|
||||
this.frameTime = 0;
|
||||
this.frameCount = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
export class WindowedMean {
|
||||
values;
|
||||
addedValues = 0;
|
||||
lastValue = 0;
|
||||
mean = 0;
|
||||
dirty = true;
|
||||
constructor(windowSize = 32) {
|
||||
this.values = new Array(windowSize);
|
||||
}
|
||||
hasEnoughData() {
|
||||
return this.addedValues >= this.values.length;
|
||||
}
|
||||
addValue(value) {
|
||||
if (this.addedValues < this.values.length)
|
||||
this.addedValues++;
|
||||
this.values[this.lastValue++] = value;
|
||||
if (this.lastValue > this.values.length - 1)
|
||||
this.lastValue = 0;
|
||||
this.dirty = true;
|
||||
}
|
||||
getMean() {
|
||||
if (this.hasEnoughData()) {
|
||||
if (this.dirty) {
|
||||
let mean = 0;
|
||||
for (let i = 0; i < this.values.length; i++)
|
||||
mean += this.values[i];
|
||||
this.mean = mean / this.values.length;
|
||||
this.dirty = false;
|
||||
}
|
||||
return this.mean;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBUy9FLE1BQU0sT0FBTyxNQUFNO0lBQ2xCLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBc0IsQ0FBQztJQUV4QyxHQUFHLENBQUUsS0FBYTtRQUNqQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUSxDQUFFLEtBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVELE1BQU0sQ0FBRSxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUNyQixPQUFPLEdBQXVCLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBRVQsR0FBRyxDQUFFLEtBQWE7UUFDakIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxFQUFFLENB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
Line truncated
|
||||
Reference in new issue
Block a user