74 lines
1.7 KiB
TypeScript
Raw Normal View History

2025-07-28 14:26:19 +08:00
interface Math {
/**
*
* @param value
* @param min
* @param max
*/
clampf(value: number, min: number, max: number): number;
/**
* min max (min和max)
* @param min
* @param max
*/
rand(min: number, max: number): number;
/**
* min max的数
* @param min
* @param max
*/
randRange(min: number, max: number): number;
/**
*
* @param angle
*/
rad(angle: number): number;
/**
*
* @param radian
*/
deg(radian: number): number;
/**
*
* @param num1
* @param num2
* @param elapsedTime
* @param responseTime
*/
smooth(num1: number, num2: number, elapsedTime: number, responseTime: number): number;
}
Math.clampf = function (value: number, min: number, max: number): number {
return Math.min(Math.max(value, min), max);
};
Math.rand = function (min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1) + min);
};
Math.randRange = function (min: number, max: number): number {
return Math.random() * (max - min) + min;
};
Math.rad = function (angle: number): number {
return (angle * Math.PI) / 180;
};
Math.deg = function (radian: number): number {
return (radian * 180) / Math.PI;
};
Math.smooth = function (num1: number, num2: number, elapsedTime: number, responseTime: number): number {
let out: number = num1;
if (elapsedTime > 0) {
out = out + (num2 - num1) * (elapsedTime / (elapsedTime + responseTime));
}
return out;
};