TypeScript to CoffeeScript
This commit is contained in:
parent
3b422e82de
commit
189a5d62c8
14
src/app.coffee
Normal file
14
src/app.coffee
Normal file
|
@ -0,0 +1,14 @@
|
|||
class SimpleGame
|
||||
game: null
|
||||
constructor: () ->
|
||||
@game = new Phaser.Game(800, 600, Phaser.AUTO, 'content',
|
||||
{preload: this.preload, create: this.create})
|
||||
preload: () ->
|
||||
@game.stage.backgroundColor = '#ffffff'
|
||||
@game.load.image('logo', 'logo.png')
|
||||
create: () ->
|
||||
logo = @game.add.sprite(@game.world.centerX, @game.world.centerY, 'logo')
|
||||
logo.anchor.setTo(0.5, 0.5)
|
||||
|
||||
window.onload = () =>
|
||||
game = new SimpleGame()
|
23
src/app.ts
23
src/app.ts
|
@ -1,23 +0,0 @@
|
|||
class SimpleGame {
|
||||
|
||||
game: Phaser.Game;
|
||||
|
||||
constructor() {
|
||||
this.game = new Phaser.Game(800, 600, Phaser.AUTO, 'content',
|
||||
{preload: this.preload, create: this.create});
|
||||
}
|
||||
|
||||
preload() {
|
||||
this.game.stage.backgroundColor = '#ffffff'
|
||||
this.game.load.image('logo', 'logo.png');
|
||||
}
|
||||
|
||||
create() {
|
||||
let logo = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'logo');
|
||||
logo.anchor.setTo(0.5, 0.5);
|
||||
}
|
||||
}
|
||||
|
||||
window.onload = () => {
|
||||
let game = new SimpleGame();
|
||||
}
|
948
typings/p2.d.ts
vendored
948
typings/p2.d.ts
vendored
|
@ -1,948 +0,0 @@
|
|||
// Type definitions for p2.js v0.6.0
|
||||
// Project: https://github.com/schteppe/p2.js/
|
||||
|
||||
declare module p2 {
|
||||
|
||||
export class AABB {
|
||||
|
||||
constructor(options?: {
|
||||
upperBound?: number[];
|
||||
lowerBound?: number[];
|
||||
});
|
||||
|
||||
setFromPoints(points: number[][], position: number[], angle: number, skinSize: number): void;
|
||||
copy(aabb: AABB): void;
|
||||
extend(aabb: AABB): void;
|
||||
overlaps(aabb: AABB): boolean;
|
||||
|
||||
}
|
||||
|
||||
export class Broadphase {
|
||||
|
||||
static AABB: number;
|
||||
static BOUNDING_CIRCLE: number;
|
||||
|
||||
static NAIVE: number;
|
||||
static SAP: number;
|
||||
|
||||
static boundingRadiusCheck(bodyA: Body, bodyB: Body): boolean;
|
||||
static aabbCheck(bodyA: Body, bodyB: Body): boolean;
|
||||
static canCollide(bodyA: Body, bodyB: Body): boolean;
|
||||
|
||||
constructor(type: number);
|
||||
|
||||
type: number;
|
||||
result: Body[];
|
||||
world: World;
|
||||
boundingVolumeType: number;
|
||||
|
||||
setWorld(world: World): void;
|
||||
getCollisionPairs(world: World): Body[];
|
||||
boundingVolumeCheck(bodyA: Body, bodyB: Body): boolean;
|
||||
|
||||
}
|
||||
|
||||
export class GridBroadphase extends Broadphase {
|
||||
|
||||
constructor(options?: {
|
||||
xmin?: number;
|
||||
xmax?: number;
|
||||
ymin?: number;
|
||||
ymax?: number;
|
||||
nx?: number;
|
||||
ny?: number;
|
||||
});
|
||||
|
||||
xmin: number;
|
||||
xmax: number;
|
||||
ymin: number;
|
||||
ymax: number;
|
||||
nx: number;
|
||||
ny: number;
|
||||
binsizeX: number;
|
||||
binsizeY: number;
|
||||
|
||||
}
|
||||
|
||||
export class NativeBroadphase extends Broadphase {
|
||||
|
||||
}
|
||||
|
||||
export class Narrowphase {
|
||||
|
||||
contactEquations: ContactEquation[];
|
||||
frictionEquations: FrictionEquation[];
|
||||
enableFriction: boolean;
|
||||
slipForce: number;
|
||||
frictionCoefficient: number;
|
||||
surfaceVelocity: number;
|
||||
reuseObjects: boolean;
|
||||
resuableContactEquations: any[];
|
||||
reusableFrictionEquations: any[];
|
||||
restitution: number;
|
||||
stiffness: number;
|
||||
relaxation: number;
|
||||
frictionStiffness: number;
|
||||
frictionRelaxation: number;
|
||||
enableFrictionReduction: boolean;
|
||||
contactSkinSize: number;
|
||||
|
||||
collidedLastStep(bodyA: Body, bodyB: Body): boolean;
|
||||
reset(): void;
|
||||
createContactEquation(bodyA: Body, bodyB: Body, shapeA: Shape, shapeB: Shape): ContactEquation;
|
||||
createFrictionFromContact(c: ContactEquation): FrictionEquation;
|
||||
|
||||
}
|
||||
|
||||
export class SAPBroadphase extends Broadphase {
|
||||
|
||||
axisList: Body[];
|
||||
axisIndex: number;
|
||||
|
||||
}
|
||||
|
||||
export class Constraint {
|
||||
|
||||
static DISTANCE: number;
|
||||
static GEAR: number;
|
||||
static LOCK: number;
|
||||
static PRISMATIC: number;
|
||||
static REVOLUTE: number;
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
});
|
||||
|
||||
type: number;
|
||||
equeations: Equation[];
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
collideConnected: boolean;
|
||||
|
||||
update(): void;
|
||||
setStiffness(stiffness: number): void;
|
||||
setRelaxation(relaxation: number): void;
|
||||
|
||||
}
|
||||
|
||||
export class DistanceConstraint extends Constraint {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
distance?: number;
|
||||
localAnchorA?: number[];
|
||||
localAnchorB?: number[];
|
||||
maxForce?: number;
|
||||
});
|
||||
|
||||
localAnchorA: number[];
|
||||
localAnchorB: number[];
|
||||
distance: number;
|
||||
maxForce: number;
|
||||
upperLimitEnabled: boolean;
|
||||
upperLimit: number;
|
||||
lowerLimitEnabled: boolean;
|
||||
lowerLimit: number;
|
||||
position: number;
|
||||
|
||||
setMaxForce(f: number): void;
|
||||
getMaxForce(): number;
|
||||
|
||||
}
|
||||
|
||||
export class GearConstraint extends Constraint {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
angle?: number;
|
||||
ratio?: number;
|
||||
maxTorque?: number;
|
||||
});
|
||||
|
||||
ratio: number;
|
||||
angle: number;
|
||||
|
||||
setMaxTorque(torque: number): void;
|
||||
getMaxTorque(): number;
|
||||
|
||||
}
|
||||
|
||||
export class LockConstraint extends Constraint {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
localOffsetB?: number[];
|
||||
localAngleB?: number;
|
||||
maxForce?: number;
|
||||
});
|
||||
|
||||
setMaxForce(force: number): void;
|
||||
getMaxForce(): number;
|
||||
|
||||
}
|
||||
|
||||
export class PrismaticConstraint extends Constraint {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
maxForce?: number;
|
||||
localAnchorA?: number[];
|
||||
localAnchorB?: number[];
|
||||
localAxisA?: number[];
|
||||
disableRotationalLock?: boolean;
|
||||
upperLimit?: number;
|
||||
lowerLimit?: number;
|
||||
});
|
||||
|
||||
localAnchorA: number[];
|
||||
localAnchorB: number[];
|
||||
localAxisA: number[];
|
||||
position: number;
|
||||
velocity: number;
|
||||
lowerLimitEnabled: boolean;
|
||||
upperLimitEnabled: boolean;
|
||||
lowerLimit: number;
|
||||
upperLimit: number;
|
||||
upperLimitEquation: ContactEquation;
|
||||
lowerLimitEquation: ContactEquation;
|
||||
motorEquation: Equation;
|
||||
motorEnabled: boolean;
|
||||
motorSpeed: number;
|
||||
|
||||
enableMotor(): void;
|
||||
disableMotor(): void;
|
||||
setLimits(lower: number, upper: number): void;
|
||||
|
||||
}
|
||||
|
||||
export class RevoluteConstraint extends Constraint {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, type: number, options?: {
|
||||
collideConnected?: boolean;
|
||||
wakeUpBodies?: boolean;
|
||||
worldPivot?: number[];
|
||||
localPivotA?: number[];
|
||||
localPivotB?: number[];
|
||||
maxForce?: number;
|
||||
});
|
||||
|
||||
pivotA: number[];
|
||||
pivotB: number[];
|
||||
motorEquation: RotationalVelocityEquation;
|
||||
motorEnabled: boolean;
|
||||
angle: number;
|
||||
lowerLimitEnabled: boolean;
|
||||
upperLimitEnabled: boolean;
|
||||
lowerLimit: number;
|
||||
upperLimit: number;
|
||||
upperLimitEquation: ContactEquation;
|
||||
lowerLimitEquation: ContactEquation;
|
||||
|
||||
enableMotor(): void;
|
||||
disableMotor(): void;
|
||||
motorIsEnabled(): boolean;
|
||||
setLimits(lower: number, upper: number): void;
|
||||
setMotorSpeed(speed: number): void;
|
||||
getMotorSpeed(): number;
|
||||
|
||||
}
|
||||
|
||||
export class AngleLockEquation extends Equation {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, options?: {
|
||||
angle?: number;
|
||||
ratio?: number;
|
||||
});
|
||||
|
||||
computeGq(): number;
|
||||
setRatio(ratio: number): number;
|
||||
setMaxTorque(torque: number): number;
|
||||
|
||||
}
|
||||
|
||||
export class ContactEquation extends Equation {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body);
|
||||
|
||||
contactPointA: number[];
|
||||
penetrationVec: number[];
|
||||
contactPointB: number[];
|
||||
normalA: number[];
|
||||
restitution: number;
|
||||
firstImpact: boolean;
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
|
||||
computeB(a: number, b: number, h: number): number;
|
||||
|
||||
}
|
||||
|
||||
export class Equation {
|
||||
|
||||
static DEFAULT_STIFFNESS: number;
|
||||
static DEFAULT_RELAXATION: number;
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, minForce?: number, maxForce?: number);
|
||||
|
||||
minForce: number;
|
||||
maxForce: number;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
stiffness: number;
|
||||
relaxation: number;
|
||||
G: number[];
|
||||
offset: number;
|
||||
a: number;
|
||||
b: number;
|
||||
epsilon: number;
|
||||
timeStep: number;
|
||||
needsUpdate: boolean;
|
||||
multiplier: number;
|
||||
relativeVelocity: number;
|
||||
enabled: boolean;
|
||||
|
||||
gmult(G: number[], vi: number[], wi: number[], vj: number[], wj: number[]): number;
|
||||
computeB(a: number, b: number, h: number): number;
|
||||
computeGq(): number;
|
||||
computeGW(): number;
|
||||
computeGWlambda(): number;
|
||||
computeGiMf(): number;
|
||||
computeGiMGt(): number;
|
||||
addToWlambda(deltalambda: number): number;
|
||||
computeInvC(eps: number): number;
|
||||
|
||||
}
|
||||
|
||||
export class FrictionEquation extends Equation {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, slipForce: number);
|
||||
|
||||
contactPointA: number[];
|
||||
contactPointB: number[];
|
||||
t: number[];
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
frictionCoefficient: number;
|
||||
|
||||
setSlipForce(slipForce: number): number;
|
||||
getSlipForce(): number;
|
||||
computeB(a: number, b: number, h: number): number;
|
||||
|
||||
}
|
||||
|
||||
export class RotationalLockEquation extends Equation {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, options?: {
|
||||
angle?: number;
|
||||
});
|
||||
|
||||
angle: number;
|
||||
|
||||
computeGq(): number;
|
||||
|
||||
}
|
||||
|
||||
export class RotationalVelocityEquation extends Equation {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body);
|
||||
|
||||
computeB(a: number, b: number, h: number): number;
|
||||
|
||||
}
|
||||
|
||||
export class EventEmitter {
|
||||
|
||||
on(type: string, listener: Function, context: any): EventEmitter;
|
||||
has(type: string, listener: Function): boolean;
|
||||
off(type: string, listener: Function): EventEmitter;
|
||||
emit(event: any): EventEmitter;
|
||||
|
||||
}
|
||||
|
||||
export class ContactMaterialOptions {
|
||||
|
||||
friction: number;
|
||||
restitution: number;
|
||||
stiffness: number;
|
||||
relaxation: number;
|
||||
frictionStiffness: number;
|
||||
frictionRelaxation: number;
|
||||
surfaceVelocity: number;
|
||||
|
||||
}
|
||||
|
||||
export class ContactMaterial {
|
||||
|
||||
static idCounter: number;
|
||||
|
||||
constructor(materialA: Material, materialB: Material, options?: ContactMaterialOptions);
|
||||
|
||||
id: number;
|
||||
materialA: Material;
|
||||
materialB: Material;
|
||||
friction: number;
|
||||
restitution: number;
|
||||
stiffness: number;
|
||||
relaxation: number;
|
||||
frictionStuffness: number;
|
||||
frictionRelaxation: number;
|
||||
surfaceVelocity: number;
|
||||
contactSkinSize: number;
|
||||
|
||||
}
|
||||
|
||||
export class Material {
|
||||
|
||||
static idCounter: number;
|
||||
|
||||
constructor(id: number);
|
||||
|
||||
id: number;
|
||||
|
||||
}
|
||||
|
||||
export class vec2 {
|
||||
|
||||
static crossLength(a: number[], b: number[]): number;
|
||||
static crossVZ(out: number[], vec: number[], zcomp: number): number;
|
||||
static crossZV(out: number[], zcomp: number, vec: number[]): number;
|
||||
static rotate(out: number[], a: number[], angle: number): void;
|
||||
static rotate90cw(out: number[], a: number[]): number;
|
||||
static centroid(out: number[], a: number[], b: number[], c: number[]): number[];
|
||||
static create(): number[];
|
||||
static clone(a: number[]): number[];
|
||||
static fromValues(x: number, y: number): number[];
|
||||
static copy(out: number[], a: number[]): number[];
|
||||
static set(out: number[], x: number, y: number): number[];
|
||||
static toLocalFrame(out: number[], worldPoint: number[], framePosition: number[], frameAngle: number): void;
|
||||
static toGlobalFrame(out: number[], localPoint: number[], framePosition: number[], frameAngle: number): void;
|
||||
static add(out: number[], a: number[], b: number[]): number[];
|
||||
static subtract(out: number[], a: number[], b: number[]): number[];
|
||||
static sub(out: number[], a: number[], b: number[]): number[];
|
||||
static multiply(out: number[], a: number[], b: number[]): number[];
|
||||
static mul(out: number[], a: number[], b: number[]): number[];
|
||||
static divide(out: number[], a: number[], b: number[]): number[];
|
||||
static div(out: number[], a: number[], b: number[]): number[];
|
||||
static scale(out: number[], a: number[], b: number): number[];
|
||||
static distance(a: number[], b: number[]): number;
|
||||
static dist(a: number[], b: number[]): number;
|
||||
static squaredDistance(a: number[], b: number[]): number;
|
||||
static sqrDist(a: number[], b: number[]): number;
|
||||
static length(a: number[]): number;
|
||||
static len(a: number[]): number;
|
||||
static squaredLength(a: number[]): number;
|
||||
static sqrLen(a: number[]): number;
|
||||
static negate(out: number[], a: number[]): number[];
|
||||
static normalize(out: number[], a: number[]): number[];
|
||||
static dot(a: number[], b: number[]): number;
|
||||
static str(a: number[]): string;
|
||||
|
||||
}
|
||||
|
||||
export class BodyOptions {
|
||||
|
||||
mass: number;
|
||||
position: number[];
|
||||
velocity: number[];
|
||||
angle: number;
|
||||
angularVelocity: number;
|
||||
force: number[];
|
||||
angularForce: number;
|
||||
fixedRotation: number;
|
||||
|
||||
}
|
||||
|
||||
export class Body extends EventEmitter {
|
||||
|
||||
sleepyEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
sleepEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
wakeUpEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
static DYNAMIC: number;
|
||||
static STATIC: number;
|
||||
static KINEMATIC: number;
|
||||
static AWAKE: number;
|
||||
static SLEEPY: number;
|
||||
static SLEEPING: number;
|
||||
|
||||
constructor(options?: BodyOptions);
|
||||
|
||||
id: number;
|
||||
world: World;
|
||||
shapes: Shape[];
|
||||
shapeOffsets: number[][];
|
||||
shapeAngles: number[];
|
||||
mass: number;
|
||||
invMass: number;
|
||||
inertia: number;
|
||||
invInertia: number;
|
||||
invMassSolve: number;
|
||||
invInertiaSolve: number;
|
||||
fixedRotation: number;
|
||||
position: number[];
|
||||
interpolatedPosition: number[];
|
||||
interpolatedAngle: number;
|
||||
previousPosition: number[];
|
||||
previousAngle: number;
|
||||
velocity: number[];
|
||||
vlambda: number[];
|
||||
wlambda: number[];
|
||||
angle: number;
|
||||
angularVelocity: number;
|
||||
force: number[];
|
||||
angularForce: number;
|
||||
damping: number;
|
||||
angularDamping: number;
|
||||
type: number;
|
||||
boundingRadius: number;
|
||||
aabb: AABB;
|
||||
aabbNeedsUpdate: boolean;
|
||||
allowSleep: boolean;
|
||||
wantsToSleep: boolean;
|
||||
sleepState: number;
|
||||
sleepSpeedLimit: number;
|
||||
sleepTimeLimit: number;
|
||||
gravityScale: number;
|
||||
|
||||
updateSolveMassProperties(): void;
|
||||
setDensity(density: number): void;
|
||||
getArea(): number;
|
||||
getAABB(): AABB;
|
||||
updateAABB(): void;
|
||||
updateBoundingRadius(): void;
|
||||
addShape(shape: Shape, offset?: number[], angle?: number): void;
|
||||
removeShape(shape: Shape): boolean;
|
||||
updateMassProperties(): void;
|
||||
applyForce(force: number[], worldPoint: number[]): void;
|
||||
toLocalFrame(out: number[], worldPoint: number[]): void;
|
||||
toWorldFrame(out: number[], localPoint: number[]): void;
|
||||
fromPolygon(path: number[][], options?: {
|
||||
optimalDecomp?: boolean;
|
||||
skipSimpleCheck?: boolean;
|
||||
removeCollinearPoints?: any; //boolean | number
|
||||
}): boolean;
|
||||
adjustCenterOfMass(): void;
|
||||
setZeroForce(): void;
|
||||
resetConstraintVelocity(): void;
|
||||
applyDamping(dy: number): void;
|
||||
wakeUp(): void;
|
||||
sleep(): void;
|
||||
sleepTick(time: number, dontSleep: boolean, dt: number): void;
|
||||
getVelocityFromPosition(story: number[], dt: number): number[];
|
||||
getAngularVelocityFromPosition(timeStep: number): number;
|
||||
overlaps(body: Body): boolean;
|
||||
|
||||
}
|
||||
|
||||
export class Spring {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, options?: {
|
||||
|
||||
stiffness?: number;
|
||||
damping?: number;
|
||||
localAnchorA?: number[];
|
||||
localAnchorB?: number[];
|
||||
worldAnchorA?: number[];
|
||||
worldAnchorB?: number[];
|
||||
|
||||
});
|
||||
|
||||
stiffness: number;
|
||||
damping: number;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
|
||||
applyForce(): void;
|
||||
|
||||
}
|
||||
|
||||
export class LinearSpring extends Spring {
|
||||
|
||||
localAnchorA: number[];
|
||||
localAnchorB: number[];
|
||||
restLength: number;
|
||||
|
||||
setWorldAnchorA(worldAnchorA: number[]): void;
|
||||
setWorldAnchorB(worldAnchorB: number[]): void;
|
||||
getWorldAnchorA(result: number[]): number[];
|
||||
getWorldAnchorB(result: number[]): number[];
|
||||
applyForce(): void;
|
||||
|
||||
}
|
||||
|
||||
export class RotationalSpring extends Spring {
|
||||
|
||||
constructor(bodyA: Body, bodyB: Body, options?: {
|
||||
restAngle?: number;
|
||||
stiffness?: number;
|
||||
damping?: number;
|
||||
});
|
||||
|
||||
restAngle: number;
|
||||
|
||||
}
|
||||
|
||||
export class Capsule extends Shape {
|
||||
|
||||
constructor(length?: number, radius?: number);
|
||||
|
||||
length: number;
|
||||
radius: number;
|
||||
|
||||
}
|
||||
|
||||
export class Circle extends Shape {
|
||||
|
||||
constructor(radius: number);
|
||||
|
||||
radius: number;
|
||||
|
||||
}
|
||||
|
||||
export class Convex extends Shape {
|
||||
|
||||
static triangleArea(a: number[], b: number[], c: number[]): number;
|
||||
|
||||
constructor(vertices: number[][], axes: number[]);
|
||||
|
||||
vertices: number[][];
|
||||
axes: number[];
|
||||
centerOfMass: number[];
|
||||
triangles: number[];
|
||||
boundingRadius: number;
|
||||
|
||||
projectOntoLocalAxis(localAxis: number[], result: number[]): void;
|
||||
projectOntoWorldAxis(localAxis: number[], shapeOffset: number[], shapeAngle: number, result: number[]): void;
|
||||
|
||||
updateCenterOfMass(): void;
|
||||
|
||||
}
|
||||
|
||||
export class Heightfield extends Shape {
|
||||
|
||||
constructor(data: number[], options?: {
|
||||
minValue?: number;
|
||||
maxValue?: number;
|
||||
elementWidth: number;
|
||||
});
|
||||
|
||||
data: number[];
|
||||
maxValue: number;
|
||||
minValue: number;
|
||||
elementWidth: number;
|
||||
|
||||
}
|
||||
|
||||
export class Shape {
|
||||
|
||||
static idCounter: number;
|
||||
static CIRCLE: number;
|
||||
static PARTICLE: number;
|
||||
static PLANE: number;
|
||||
static CONVEX: number;
|
||||
static LINE: number;
|
||||
static RECTANGLE: number;
|
||||
static CAPSULE: number;
|
||||
static HEIGHTFIELD: number;
|
||||
|
||||
constructor(type: number);
|
||||
|
||||
type: number;
|
||||
id: number;
|
||||
boundingRadius: number;
|
||||
collisionGroup: number;
|
||||
collisionMask: number;
|
||||
material: Material;
|
||||
area: number;
|
||||
sensor: boolean;
|
||||
|
||||
computeMomentOfInertia(mass: number): number;
|
||||
updateBoundingRadius(): number;
|
||||
updateArea(): void;
|
||||
computeAABB(out: AABB, position: number[], angle: number): void;
|
||||
|
||||
}
|
||||
|
||||
export class Line extends Shape {
|
||||
|
||||
constructor(length?: number);
|
||||
|
||||
length: number;
|
||||
|
||||
}
|
||||
|
||||
export class Particle extends Shape {
|
||||
|
||||
}
|
||||
|
||||
export class Plane extends Shape {
|
||||
|
||||
}
|
||||
|
||||
export class Rectangle extends Shape {
|
||||
|
||||
static sameDimensions(a: Rectangle, b: Rectangle): boolean;
|
||||
|
||||
constructor(width?: number, height?: number);
|
||||
|
||||
width: number;
|
||||
height: number;
|
||||
|
||||
}
|
||||
|
||||
export class Solver extends EventEmitter {
|
||||
|
||||
static GS: number;
|
||||
static ISLAND: number;
|
||||
|
||||
constructor(options?: {}, type?: number);
|
||||
|
||||
type: number;
|
||||
equations: Equation[];
|
||||
equationSortFunction: Equation; //Equation | boolean
|
||||
|
||||
solve(dy: number, world: World): void;
|
||||
solveIsland(dy: number, island: Island): void;
|
||||
sortEquations(): void;
|
||||
addEquation(eq: Equation): void;
|
||||
addEquations(eqs: Equation[]): void;
|
||||
removeEquation(eq: Equation): void;
|
||||
removeAllEquations(): void;
|
||||
|
||||
}
|
||||
|
||||
export class GSSolver extends Solver {
|
||||
|
||||
constructor(options?: {
|
||||
iterations?: number;
|
||||
tolerance?: number;
|
||||
});
|
||||
|
||||
iterations: number;
|
||||
tolerance: number;
|
||||
useZeroRHS: boolean;
|
||||
frictionIterations: number;
|
||||
usedIterations: number;
|
||||
|
||||
solve(h: number, world: World): void;
|
||||
|
||||
}
|
||||
|
||||
export class OverlapKeeper {
|
||||
|
||||
constructor(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Shape);
|
||||
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
|
||||
tick(): void;
|
||||
setOverlapping(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Body): void;
|
||||
bodiesAreOverlapping(bodyA: Body, bodyB: Body): boolean;
|
||||
set(bodyA: Body, shapeA: Shape, bodyB: Body, shapeB: Shape): void;
|
||||
|
||||
}
|
||||
|
||||
export class TupleDictionary {
|
||||
|
||||
data: number[];
|
||||
keys: number[];
|
||||
|
||||
getKey(id1: number, id2: number): string;
|
||||
getByKey(key: number): number;
|
||||
get(i: number, j: number): number;
|
||||
set(i: number, j: number, value: number): number;
|
||||
reset(): void;
|
||||
copy(dict: TupleDictionary): void;
|
||||
|
||||
}
|
||||
|
||||
export class Utils {
|
||||
|
||||
static appendArray<T>(a: Array<T>, b: Array<T>): Array<T>;
|
||||
static chanceRoll(chance: number): boolean;
|
||||
static defaults(options: any, defaults: any): any;
|
||||
static extend(a: any, b: any): void;
|
||||
static randomChoice(choice1: any, choice2: any): any;
|
||||
static rotateArray(matrix: any[], direction: any): any[];
|
||||
static splice<T>(array: Array<T>, index: number, howMany: number): void;
|
||||
static shuffle<T>(array: T[]): T[];
|
||||
static transposeArray<T>(array: T[]): T[];
|
||||
|
||||
}
|
||||
|
||||
export class Island {
|
||||
|
||||
equations: Equation[];
|
||||
bodies: Body[];
|
||||
|
||||
reset(): void;
|
||||
getBodies(result: any): Body[];
|
||||
wantsToSleep(): boolean;
|
||||
sleep(): boolean;
|
||||
|
||||
}
|
||||
|
||||
export class IslandManager extends Solver {
|
||||
|
||||
static getUnvisitedNode(nodes: Node[]): IslandNode; // IslandNode | boolean
|
||||
|
||||
equations: Equation[];
|
||||
islands: Island[];
|
||||
nodes: IslandNode[];
|
||||
|
||||
visit(node: IslandNode, bds: Body[], eqs: Equation[]): void;
|
||||
bfs(root: IslandNode, bds: Body[], eqs: Equation[]): void;
|
||||
split(world: World): Island[];
|
||||
|
||||
}
|
||||
|
||||
export class IslandNode {
|
||||
|
||||
constructor(body: Body);
|
||||
|
||||
body: Body;
|
||||
neighbors: IslandNode[];
|
||||
equations: Equation[];
|
||||
visited: boolean;
|
||||
|
||||
reset(): void;
|
||||
|
||||
}
|
||||
|
||||
export class World extends EventEmitter {
|
||||
|
||||
postStepEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
addBodyEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
removeBodyEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
addSpringEvent: {
|
||||
type: string;
|
||||
};
|
||||
|
||||
impactEvent: {
|
||||
type: string;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
contactEquation: ContactEquation;
|
||||
};
|
||||
|
||||
postBroadphaseEvent: {
|
||||
type: string;
|
||||
pairs: Body[];
|
||||
};
|
||||
|
||||
beginContactEvent: {
|
||||
type: string;
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
contactEquations: ContactEquation[];
|
||||
};
|
||||
|
||||
endContactEvent: {
|
||||
type: string;
|
||||
shapeA: Shape;
|
||||
shapeB: Shape;
|
||||
bodyA: Body;
|
||||
bodyB: Body;
|
||||
};
|
||||
|
||||
preSolveEvent: {
|
||||
type: string;
|
||||
contactEquations: ContactEquation[];
|
||||
frictionEquations: FrictionEquation[];
|
||||
};
|
||||
|
||||
static NO_SLEEPING: number;
|
||||
static BODY_SLEEPING: number;
|
||||
static ISLAND_SLEEPING: number;
|
||||
|
||||
static integrateBody(body: Body, dy: number): void;
|
||||
|
||||
constructor(options?: {
|
||||
solver?: Solver;
|
||||
gravity?: number[];
|
||||
broadphase?: Broadphase;
|
||||
islandSplit?: boolean;
|
||||
doProfiling?: boolean;
|
||||
});
|
||||
|
||||
springs: Spring[];
|
||||
bodies: Body[];
|
||||
solver: Solver;
|
||||
narrowphase: Narrowphase;
|
||||
islandManager: IslandManager;
|
||||
gravity: number[];
|
||||
frictionGravity: number;
|
||||
useWorldGravityAsFrictionGravity: boolean;
|
||||
useFrictionGravityOnZeroGravity: boolean;
|
||||
doProfiling: boolean;
|
||||
lastStepTime: number;
|
||||
broadphase: Broadphase;
|
||||
constraints: Constraint[];
|
||||
defaultMaterial: Material;
|
||||
defaultContactMaterial: ContactMaterial;
|
||||
lastTimeStep: number;
|
||||
applySpringForces: boolean;
|
||||
applyDamping: boolean;
|
||||
applyGravity: boolean;
|
||||
solveConstraints: boolean;
|
||||
contactMaterials: ContactMaterial[];
|
||||
time: number;
|
||||
stepping: boolean;
|
||||
islandSplit: boolean;
|
||||
emitImpactEvent: boolean;
|
||||
sleepMode: number;
|
||||
|
||||
addConstraint(c: Constraint): void;
|
||||
addContactMaterial(contactMaterial: ContactMaterial): void;
|
||||
removeContactMaterial(cm: ContactMaterial): void;
|
||||
getContactMaterial(materialA: Material, materialB: Material): ContactMaterial; // ContactMaterial | boolean
|
||||
removeConstraint(c: Constraint): void;
|
||||
step(dy: number, timeSinceLastCalled?: number, maxSubSteps?: number): void;
|
||||
runNarrowphase(np: Narrowphase, bi: Body, si: Shape, xi: any[], ai: number, bj: Body, sj: Shape, xj: any[], aj: number, cm: number, glen: number): void;
|
||||
addSpring(s: Spring): void;
|
||||
removeSpring(s: Spring): void;
|
||||
addBody(body: Body): void;
|
||||
removeBody(body: Body): void;
|
||||
getBodyByID(id: number): Body; //Body | boolean
|
||||
disableBodyCollision(bodyA: Body, bodyB: Body): void;
|
||||
enableBodyCollision(bodyA: Body, bodyB: Body): void;
|
||||
clear(): void;
|
||||
clone(): World;
|
||||
hitTest(worldPoint: number[], bodies: Body[], precision: number): Body[];
|
||||
setGlobalEquationParameters(parameters: {
|
||||
relaxation?: number;
|
||||
stiffness?: number;
|
||||
}): void;
|
||||
setGlobalStiffness(stiffness: number): void;
|
||||
setGlobalRelaxation(relaxation: number): void;
|
||||
}
|
||||
|
||||
}
|
5705
typings/phaser.d.ts
vendored
5705
typings/phaser.d.ts
vendored
File diff suppressed because it is too large
Load diff
1855
typings/pixi.d.ts
vendored
1855
typings/pixi.d.ts
vendored
File diff suppressed because it is too large
Load diff
Binary file not shown.
Loading…
Reference in a new issue