mirror of
https://github.com/wassname/phaser.git
synced 2026-07-14 01:10:16 +08:00
Small refactoring and massively optimised the canvas renderer, also added new Mat3 class.
This commit is contained in:
+4
-4
@@ -1,9 +1,9 @@
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="math/LinkedList.ts" />
|
||||
/// <reference path="math/QuadTree.ts" />
|
||||
/// <reference path="core/Point.ts" />
|
||||
/// <reference path="core/Vec2.ts" />
|
||||
/// <reference path="core/Circle.ts" />
|
||||
/// <reference path="geom/Point.ts" />
|
||||
/// <reference path="math/Vec2.ts" />
|
||||
/// <reference path="geom/Circle.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Signal.ts" />
|
||||
/// <reference path="core/SignalBinding.ts" />
|
||||
|
||||
+28
-24
@@ -87,27 +87,11 @@
|
||||
<Content Include="Game.js">
|
||||
<DependentUpon>Game.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="core\Rectangle.ts" />
|
||||
<TypeScriptCompile Include="core\Point.ts" />
|
||||
<TypeScriptCompile Include="components\camera\CameraFX.ts" />
|
||||
<Content Include="components\camera\CameraFX.js">
|
||||
<DependentUpon>CameraFX.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="components\ScrollRegion.ts" />
|
||||
<Content Include="core\Point.js">
|
||||
<DependentUpon>Point.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="core\Polygon.ts" />
|
||||
<Content Include="core\Polygon.js">
|
||||
<DependentUpon>Polygon.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="core\Rectangle.js">
|
||||
<DependentUpon>Rectangle.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="core\Vec2.ts" />
|
||||
<Content Include="core\Vec2.js">
|
||||
<DependentUpon>Vec2.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="gameobjects\DynamicTexture.js">
|
||||
<DependentUpon>DynamicTexture.ts</DependentUpon>
|
||||
</Content>
|
||||
@@ -126,6 +110,22 @@
|
||||
<Content Include="gameobjects\Tilemap.js">
|
||||
<DependentUpon>Tilemap.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Circle.ts" />
|
||||
<Content Include="geom\Circle.js">
|
||||
<DependentUpon>Circle.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Line.ts" />
|
||||
<Content Include="geom\Line.js">
|
||||
<DependentUpon>Line.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Point.ts" />
|
||||
<Content Include="geom\Point.js">
|
||||
<DependentUpon>Point.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="geom\Rectangle.ts" />
|
||||
<Content Include="geom\Rectangle.js">
|
||||
<DependentUpon>Rectangle.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="math\GameMath.js">
|
||||
<DependentUpon>GameMath.ts</DependentUpon>
|
||||
</Content>
|
||||
@@ -144,6 +144,14 @@
|
||||
<TypeScriptCompile Include="physics\PhysicsManager.ts" />
|
||||
<TypeScriptCompile Include="physics\Body.ts" />
|
||||
<TypeScriptCompile Include="math\QuadTree.ts" />
|
||||
<TypeScriptCompile Include="math\Mat3.ts" />
|
||||
<Content Include="math\Mat3.js">
|
||||
<DependentUpon>Mat3.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="math\Mat3Utils.ts" />
|
||||
<Content Include="math\Mat3Utils.js">
|
||||
<DependentUpon>Mat3Utils.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="math\QuadTree.js">
|
||||
<DependentUpon>QuadTree.ts</DependentUpon>
|
||||
</Content>
|
||||
@@ -152,6 +160,10 @@
|
||||
<DependentUpon>LinkedList.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="Motion.ts" />
|
||||
<TypeScriptCompile Include="math\Vec2.ts" />
|
||||
<Content Include="math\Vec2.js">
|
||||
<DependentUpon>Vec2.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="Motion.js">
|
||||
<DependentUpon>Motion.ts</DependentUpon>
|
||||
</Content>
|
||||
@@ -200,15 +212,9 @@
|
||||
<Content Include="utils\RectangleUtils.js">
|
||||
<DependentUpon>RectangleUtils.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="core\Circle.js">
|
||||
<DependentUpon>Circle.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="math\IntersectResult.js">
|
||||
<DependentUpon>IntersectResult.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="core\Line.js">
|
||||
<DependentUpon>Line.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="math\Vec2Utils.ts" />
|
||||
<Content Include="math\Vec2Utils.js">
|
||||
<DependentUpon>Vec2Utils.ts</DependentUpon>
|
||||
@@ -341,9 +347,7 @@
|
||||
<TypeScriptCompile Include="components\animation\Frame.ts" />
|
||||
<TypeScriptCompile Include="loader\AnimationLoader.ts" />
|
||||
<TypeScriptCompile Include="components\animation\Animation.ts" />
|
||||
<TypeScriptCompile Include="core\Line.ts" />
|
||||
<TypeScriptCompile Include="math\IntersectResult.ts" />
|
||||
<TypeScriptCompile Include="core\Circle.ts" />
|
||||
<Content Include="core\Group.js">
|
||||
<DependentUpon>Group.ts</DependentUpon>
|
||||
</Content>
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
/// <reference path="Game.ts" />
|
||||
/// <reference path="cameras/CameraManager.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="physics/PhysicsManager.ts" />
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../components/camera/CameraFX.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - ScrollRegion
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Components - Transform
|
||||
@@ -17,6 +18,8 @@ module Phaser.Components {
|
||||
this.game = parent.game;
|
||||
this.parent = parent;
|
||||
|
||||
this.local = new Mat3;
|
||||
|
||||
this.scrollFactor = new Phaser.Vec2(1, 1);
|
||||
this.origin = new Phaser.Vec2;
|
||||
this.scale = new Phaser.Vec2(1, 1);
|
||||
@@ -24,6 +27,77 @@ module Phaser.Components {
|
||||
|
||||
}
|
||||
|
||||
public local: Mat3;
|
||||
|
||||
private _sin: number;
|
||||
private _cos: number;
|
||||
|
||||
public update() {
|
||||
|
||||
// 0 a = scale x
|
||||
// 3 b = skew x
|
||||
// 1 c = skew y
|
||||
// 4 d = scale y
|
||||
// 2 e = translate x
|
||||
// 5 f = translate y
|
||||
|
||||
// Scale & Skew
|
||||
|
||||
// if (sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0))
|
||||
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
|
||||
if (this.parent.texture.renderRotation)
|
||||
{
|
||||
this._sin = GameMath.sinA[this.rotation + this.rotationOffset];
|
||||
this._cos = GameMath.cosA[this.rotation + this.rotationOffset];
|
||||
}
|
||||
|
||||
if (this.parent.texture.flippedX)
|
||||
{
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * -this.scale.x;
|
||||
this.local.data[3] = (this._sin * -this.scale.x) + this.skew.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * this.scale.x;
|
||||
this.local.data[3] = (this._sin * this.scale.x) + this.skew.x;
|
||||
}
|
||||
|
||||
if (this.parent.texture.flippedY)
|
||||
{
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * -this.scale.y;
|
||||
this.local.data[1] = -(this._sin * -this.scale.y) + this.skew.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * this.scale.y;
|
||||
this.local.data[1] = -(this._sin * this.scale.y) + this.skew.y;
|
||||
}
|
||||
|
||||
// Translate
|
||||
this.local.data[2] = this.parent.x;
|
||||
this.local.data[5] = this.parent.y;
|
||||
|
||||
}
|
||||
|
||||
public get calculatedX(): number {
|
||||
return this.origin.x * this.scale.x;
|
||||
}
|
||||
|
||||
public get calculatedY(): number {
|
||||
return this.origin.y * this.scale.y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reference to Phaser.Game
|
||||
*/
|
||||
@@ -50,7 +124,7 @@ module Phaser.Components {
|
||||
public scrollFactor: Phaser.Vec2;
|
||||
|
||||
/**
|
||||
* The origin is the point around which scale and rotation takes place.
|
||||
* The origin is the point around which scale and rotation takes place and defaults to the center of the sprite.
|
||||
*/
|
||||
public origin: Phaser.Vec2;
|
||||
|
||||
@@ -67,6 +141,20 @@ module Phaser.Components {
|
||||
*/
|
||||
public rotation: number = 0;
|
||||
|
||||
/**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
public get centerX(): number {
|
||||
return this.parent.width / 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
public get centerY(): number {
|
||||
return this.parent.height / 2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Polygon
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Polygon {
|
||||
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(game: Game, points: Point[]) {
|
||||
|
||||
this.game = game;
|
||||
this.context = game.stage.context;
|
||||
|
||||
this.points = [];
|
||||
|
||||
for (var i = 0; i < points.length; i++)
|
||||
{
|
||||
this.points.push(new Point().copyFrom(points[i]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public points: Point[];
|
||||
public game: Game;
|
||||
public context: CanvasRenderingContext2D;
|
||||
|
||||
public render() {
|
||||
|
||||
this.context.beginPath();
|
||||
this.context.strokeStyle = 'rgb(255,255,0)';
|
||||
this.context.moveTo(this.points[0].x, this.points[0].y);
|
||||
|
||||
for (var i = 1; i < this.points.length; i++)
|
||||
{
|
||||
this.context.lineTo(this.points[i].x, this.points[i].y);
|
||||
}
|
||||
|
||||
this.context.lineTo(this.points[0].x, this.points[0].y);
|
||||
|
||||
this.context.stroke();
|
||||
this.context.closePath();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/ScrollRegion.ts" />
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/animation/AnimationManager.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
@@ -40,11 +40,12 @@ module Phaser {
|
||||
this.z = -1;
|
||||
this.group = null;
|
||||
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
// No dependencies
|
||||
this.animations = new Phaser.Components.AnimationManager(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.input = new Phaser.Components.Sprite.Input(this);
|
||||
this.events = new Phaser.Components.Sprite.Events(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
|
||||
if (key !== null)
|
||||
{
|
||||
@@ -233,10 +234,14 @@ module Phaser {
|
||||
*/
|
||||
public preUpdate() {
|
||||
|
||||
this.transform.update();
|
||||
|
||||
//this.worldView.x = this.x * this.transform.scrollFactor.x;
|
||||
//this.worldView.y = this.y * this.transform.scrollFactor.y;
|
||||
this.worldView.x = this.x - this.transform.origin.x;
|
||||
this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.x = this.x;
|
||||
this.worldView.y = this.y;
|
||||
//this.worldView.x = this.x - this.transform.origin.x;
|
||||
//this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.width = this.width;
|
||||
this.worldView.height = this.height;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Pointer
|
||||
|
||||
@@ -12,11 +12,26 @@ module Phaser {
|
||||
export class GameMath {
|
||||
|
||||
constructor(game: Game) {
|
||||
|
||||
this.game = game;
|
||||
|
||||
GameMath.sinA = [];
|
||||
GameMath.cosA = [];
|
||||
|
||||
for (var i = 0; i < 360; i++)
|
||||
{
|
||||
GameMath.sinA.push(Math.sin(this.degreesToRadians(i)));
|
||||
GameMath.cosA.push(Math.cos(this.degreesToRadians(i)));
|
||||
}
|
||||
}
|
||||
|
||||
public game: Game;
|
||||
|
||||
// Pre-calculated tables containing Math.sin(angle) and Math.cos(angle) from -180 to 180
|
||||
// So sinA[sprite.rotation] would be the same as Math.sin(sprite.rotation) without a call to Math.sin
|
||||
static sinA: number[];
|
||||
static cosA: number[];
|
||||
|
||||
static PI: number = 3.141592653589793; //number pi
|
||||
static PI_2: number = 1.5707963267948965; //PI / 2 OR 90 deg
|
||||
static PI_4: number = 0.7853981633974483; //PI / 4 OR 45 deg
|
||||
|
||||
@@ -0,0 +1,275 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Mat3
|
||||
*
|
||||
* A 3x3 Matrix
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Mat3 {
|
||||
|
||||
/**
|
||||
* Creates a new Mat3 object.
|
||||
* @class Mat3
|
||||
* @constructor
|
||||
* @return {Mat3} This object
|
||||
**/
|
||||
constructor() {
|
||||
this.data = [1, 0, 0, 0, 1, 0, 0, 0, 1];
|
||||
}
|
||||
|
||||
// Temporary vars used for internal calculations
|
||||
private _a00: number;
|
||||
private _a01: number;
|
||||
private _a02: number;
|
||||
private _a10: number;
|
||||
private _a11: number;
|
||||
private _a12: number;
|
||||
private _a20: number;
|
||||
private _a21: number;
|
||||
private _a22: number;
|
||||
|
||||
public data: number[];
|
||||
|
||||
public get a00(): number {
|
||||
return this.data[0];
|
||||
}
|
||||
|
||||
public set a00(value: number) {
|
||||
this.data[0] = value;
|
||||
}
|
||||
|
||||
public get a01(): number {
|
||||
return this.data[1];
|
||||
}
|
||||
|
||||
public set a01(value: number) {
|
||||
this.data[1] = value;
|
||||
}
|
||||
|
||||
public get a02(): number {
|
||||
return this.data[2];
|
||||
}
|
||||
|
||||
public set a02(value: number) {
|
||||
this.data[2] = value;
|
||||
}
|
||||
|
||||
public get a10(): number {
|
||||
return this.data[3];
|
||||
}
|
||||
|
||||
public set a10(value: number) {
|
||||
this.data[3] = value;
|
||||
}
|
||||
|
||||
public get a11(): number {
|
||||
return this.data[4];
|
||||
}
|
||||
|
||||
public set a11(value: number) {
|
||||
this.data[4] = value;
|
||||
}
|
||||
|
||||
public get a12(): number {
|
||||
return this.data[5];
|
||||
}
|
||||
|
||||
public set a12(value: number) {
|
||||
this.data[5] = value;
|
||||
}
|
||||
|
||||
public get a20(): number {
|
||||
return this.data[6];
|
||||
}
|
||||
|
||||
public set a20(value: number) {
|
||||
this.data[6] = value;
|
||||
}
|
||||
|
||||
public get a21(): number {
|
||||
return this.data[7];
|
||||
}
|
||||
|
||||
public set a21(value: number) {
|
||||
this.data[7] = value;
|
||||
}
|
||||
|
||||
public get a22(): number {
|
||||
return this.data[8];
|
||||
}
|
||||
|
||||
public set a22(value: number) {
|
||||
this.data[8] = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the values from one Mat3 into this Mat3.
|
||||
* @method copyFromMat3
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public copyFromMat3(source: Mat3): Mat3 {
|
||||
|
||||
this.data[0] = source.data[0];
|
||||
this.data[1] = source.data[1];
|
||||
this.data[2] = source.data[2];
|
||||
this.data[3] = source.data[3];
|
||||
this.data[4] = source.data[4];
|
||||
this.data[5] = source.data[5];
|
||||
this.data[6] = source.data[6];
|
||||
this.data[7] = source.data[7];
|
||||
this.data[8] = source.data[8];
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the upper-left 3x3 values into this Mat3.
|
||||
* @method copyFromMat4
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public copyFromMat4(source: any): Mat3 {
|
||||
|
||||
this.data[0] = source[0];
|
||||
this.data[1] = source[1];
|
||||
this.data[2] = source[2];
|
||||
this.data[3] = source[4];
|
||||
this.data[4] = source[5];
|
||||
this.data[5] = source[6];
|
||||
this.data[6] = source[8];
|
||||
this.data[7] = source[9];
|
||||
this.data[8] = source[10];
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clones this Mat3 into a new Mat3
|
||||
* @param {Mat3} out The output Mat3, if none is given a new Mat3 object will be created.
|
||||
* @return {Mat3} The new Mat3
|
||||
**/
|
||||
public clone(out?:Mat3 = new Phaser.Mat3): Mat3 {
|
||||
|
||||
out[0] = this.data[0];
|
||||
out[1] = this.data[1];
|
||||
out[2] = this.data[2];
|
||||
out[3] = this.data[3];
|
||||
out[4] = this.data[4];
|
||||
out[5] = this.data[5];
|
||||
out[6] = this.data[6];
|
||||
out[7] = this.data[7];
|
||||
out[8] = this.data[8];
|
||||
|
||||
return out;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets this Mat3 to the identity matrix.
|
||||
* @method identity
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public identity(): Mat3 {
|
||||
return this.setTo(1, 0, 0, 0, 1, 0, 0, 0, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates this Mat3 by the given vector
|
||||
**/
|
||||
public translate(v:Phaser.Vec2): Mat3 {
|
||||
|
||||
this.a20 = v.x * this.a00 + v.y * this.a10 + this.a20;
|
||||
this.a21 = v.x * this.a01 + v.y * this.a11 + this.a21;
|
||||
this.a22 = v.x * this.a02 + v.y * this.a12 + this.a22;
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
private setTemps() {
|
||||
|
||||
this._a00 = this.data[0];
|
||||
this._a01 = this.data[1];
|
||||
this._a02 = this.data[2];
|
||||
this._a10 = this.data[3];
|
||||
this._a11 = this.data[4];
|
||||
this._a12 = this.data[5];
|
||||
this._a20 = this.data[6];
|
||||
this._a21 = this.data[7];
|
||||
this._a22 = this.data[8];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Rotates this Mat3 by the given angle (given in radians)
|
||||
**/
|
||||
public rotate(rad:number): Mat3 {
|
||||
|
||||
this.setTemps();
|
||||
|
||||
var s = GameMath.sinA[rad];
|
||||
var c = GameMath.cosA[rad];
|
||||
|
||||
this.data[0] = c * this._a00 + s * this._a10;
|
||||
this.data[1] = c * this._a01 + s * this._a10;
|
||||
this.data[2] = c * this._a02 + s * this._a12;
|
||||
|
||||
this.data[3] = c * this._a10 - s * this._a00;
|
||||
this.data[4] = c * this._a11 - s * this._a01;
|
||||
this.data[5] = c * this._a12 - s * this._a02;
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Scales this Mat3 by the given vector
|
||||
**/
|
||||
public scale(v: Vec2): Mat3 {
|
||||
|
||||
this.data[0] = v.x * this.data[0];
|
||||
this.data[1] = v.x * this.data[1];
|
||||
this.data[2] = v.x * this.data[2];
|
||||
|
||||
this.data[3] = v.y * this.data[3];
|
||||
this.data[4] = v.y * this.data[4];
|
||||
this.data[5] = v.y * this.data[5];
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
public setTo(a00: number, a01: number, a02: number, a10: number, a11: number, a12: number, a20: number, a21: number, a22: number): Mat3 {
|
||||
|
||||
this.data[0] = a00;
|
||||
this.data[1] = a01;
|
||||
this.data[2] = a02;
|
||||
this.data[3] = a10;
|
||||
this.data[4] = a11;
|
||||
this.data[5] = a12;
|
||||
this.data[6] = a20;
|
||||
this.data[7] = a21;
|
||||
this.data[8] = a22;
|
||||
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this object.
|
||||
* @method toString
|
||||
* @return {string} a string representation of the object.
|
||||
**/
|
||||
public toString(): string {
|
||||
return '';
|
||||
//return "[{Vec2 (x=" + this.x + " y=" + this.y + ")}]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Mat3Utils
|
||||
*
|
||||
* A collection of methods useful for manipulating and performing operations on Mat3 objects.
|
||||
*
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
|
||||
export class Mat3Utils {
|
||||
|
||||
/**
|
||||
* Transpose the values of a Mat3
|
||||
**/
|
||||
static transpose(source:Phaser.Mat3, dest?:Phaser.Mat3 = null): Mat3 {
|
||||
|
||||
if (dest === null)
|
||||
{
|
||||
// Transpose ourselves
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a12 = source.data[5];
|
||||
|
||||
source.data[1] = source.data[3];
|
||||
source.data[2] = source.data[6];
|
||||
source.data[3] = a01;
|
||||
source.data[5] = source.data[7];
|
||||
source.data[6] = a02;
|
||||
source.data[7] = a12;
|
||||
}
|
||||
else
|
||||
{
|
||||
source.data[0] = dest.data[0];
|
||||
source.data[1] = dest.data[3];
|
||||
source.data[2] = dest.data[6];
|
||||
source.data[3] = dest.data[1];
|
||||
source.data[4] = dest.data[4];
|
||||
source.data[5] = dest.data[7];
|
||||
source.data[6] = dest.data[2];
|
||||
source.data[7] = dest.data[5];
|
||||
source.data[8] = dest.data[8];
|
||||
}
|
||||
|
||||
return source;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Inverts a Mat3
|
||||
**/
|
||||
static invert(source:Phaser.Mat3): Mat3 {
|
||||
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
|
||||
var b01 = a22 * a11 - a12 * a21;
|
||||
var b11 = -a22 * a10 + a12 * a20;
|
||||
var b21 = a21 * a10 - a11 * a20;
|
||||
|
||||
// Determinant
|
||||
var det = a00 * b01 + a01 * b11 + a02 * b21;
|
||||
|
||||
if (!det) {
|
||||
return null;
|
||||
}
|
||||
|
||||
det = 1.0 / det;
|
||||
|
||||
source.data[0] = b01 * det;
|
||||
source.data[1] = (-a22 * a01 + a02 * a21) * det;
|
||||
source.data[2] = (a12 * a01 - a02 * a11) * det;
|
||||
source.data[3] = b11 * det;
|
||||
source.data[4] = (a22 * a00 - a02 * a20) * det;
|
||||
source.data[5] = (-a12 * a00 + a02 * a10) * det;
|
||||
source.data[6] = b21 * det;
|
||||
source.data[7] = (-a21 * a00 + a01 * a20) * det;
|
||||
source.data[8] = (a11 * a00 - a01 * a10) * det;
|
||||
|
||||
return source;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
static adjoint(source:Phaser.Mat3): Mat3 {
|
||||
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
|
||||
source.data[0] = (a11 * a22 - a12 * a21);
|
||||
source.data[1] = (a02 * a21 - a01 * a22);
|
||||
source.data[2] = (a01 * a12 - a02 * a11);
|
||||
source.data[3] = (a12 * a20 - a10 * a22);
|
||||
source.data[4] = (a00 * a22 - a02 * a20);
|
||||
source.data[5] = (a02 * a10 - a00 * a12);
|
||||
source.data[6] = (a10 * a21 - a11 * a20);
|
||||
source.data[7] = (a01 * a20 - a00 * a21);
|
||||
source.data[8] = (a00 * a11 - a01 * a10);
|
||||
|
||||
return source;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
static determinant(source:Phaser.Mat3): number {
|
||||
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
|
||||
return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Multiplies two Mat3s
|
||||
**/
|
||||
static multiply(source:Phaser.Mat3, b:Phaser.Mat3): Mat3 {
|
||||
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
|
||||
var b00 = b.data[0];
|
||||
var b01 = b.data[1];
|
||||
var b02 = b.data[2];
|
||||
var b10 = b.data[3];
|
||||
var b11 = b.data[4];
|
||||
var b12 = b.data[5];
|
||||
var b20 = b.data[6];
|
||||
var b21 = b.data[7];
|
||||
var b22 = b.data[8];
|
||||
|
||||
source.data[0] = b00 * a00 + b01 * a10 + b02 * a20;
|
||||
source.data[1] = b00 * a01 + b01 * a11 + b02 * a21;
|
||||
source.data[2] = b00 * a02 + b01 * a12 + b02 * a22;
|
||||
|
||||
source.data[3] = b10 * a00 + b11 * a10 + b12 * a20;
|
||||
source.data[4] = b10 * a01 + b11 * a11 + b12 * a21;
|
||||
source.data[5] = b10 * a02 + b11 * a12 + b12 * a22;
|
||||
|
||||
source.data[6] = b20 * a00 + b21 * a10 + b22 * a20;
|
||||
source.data[7] = b20 * a01 + b21 * a11 + b22 * a21;
|
||||
source.data[8] = b20 * a02 + b21 * a12 + b22 * a22;
|
||||
|
||||
return source;
|
||||
|
||||
}
|
||||
|
||||
static fromQuaternion() { }
|
||||
static normalFromMat4() { }
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="LinkedList.ts" />
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* Phaser - Vec2
|
||||
*
|
||||
* A Circle object is an area defined by its position, as indicated by its center point (x,y) and diameter.
|
||||
* A Vector 2
|
||||
*/
|
||||
|
||||
module Phaser {
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - Vec2Utils
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../math/Vec2Utils.ts" />
|
||||
|
||||
/**
|
||||
|
||||
@@ -443,11 +443,10 @@ module Phaser {
|
||||
|
||||
if (sprite.transform.scale.x == 0 || sprite.transform.scale.y == 0 || sprite.texture.alpha < 0.1 || this.inCamera(camera, sprite) == false)
|
||||
{
|
||||
return false;
|
||||
//return false;
|
||||
}
|
||||
|
||||
sprite.renderOrderID = this._count;
|
||||
|
||||
this._count++;
|
||||
|
||||
// Reset our temp vars
|
||||
@@ -456,12 +455,8 @@ module Phaser {
|
||||
this._sy = 0;
|
||||
this._sw = sprite.texture.width;
|
||||
this._sh = sprite.texture.height;
|
||||
this._fx = sprite.transform.scale.x;
|
||||
this._fy = sprite.transform.scale.y;
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
this._dx = (camera.screenView.x * sprite.transform.scrollFactor.x) + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = (camera.screenView.y * sprite.transform.scrollFactor.y) + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dx = camera.screenView.x + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = camera.screenView.y + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dw = sprite.texture.width;
|
||||
this._dh = sprite.texture.height;
|
||||
|
||||
@@ -479,18 +474,6 @@ module Phaser {
|
||||
sprite.texture.context.globalAlpha = sprite.texture.alpha;
|
||||
}
|
||||
|
||||
// Sprite Flip X
|
||||
if (sprite.texture.flippedX)
|
||||
{
|
||||
this._fx = -sprite.transform.scale.x;
|
||||
}
|
||||
|
||||
// Sprite Flip Y
|
||||
if (sprite.texture.flippedY)
|
||||
{
|
||||
this._fy = -sprite.transform.scale.y;
|
||||
}
|
||||
|
||||
if (sprite.animations.currentFrame !== null)
|
||||
{
|
||||
this._sx = sprite.animations.currentFrame.x;
|
||||
@@ -507,36 +490,26 @@ module Phaser {
|
||||
}
|
||||
}
|
||||
|
||||
// Rotation and Flipped
|
||||
if (sprite.modified)
|
||||
{
|
||||
if (sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0))
|
||||
{
|
||||
this._sin = Math.sin(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
this._cos = Math.cos(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
}
|
||||
|
||||
// setTransform(a, b, c, d, e, f);
|
||||
// a = scale x
|
||||
// b = skew x
|
||||
// c = skew y
|
||||
// d = scale y
|
||||
// e = translate x
|
||||
// f = translate y
|
||||
|
||||
sprite.texture.context.save();
|
||||
sprite.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + sprite.transform.skew.x, -(this._sin * this._fy) + sprite.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
|
||||
|
||||
this._dx = -sprite.transform.origin.x;
|
||||
this._dy = -sprite.transform.origin.y;
|
||||
sprite.texture.context.setTransform(
|
||||
sprite.transform.local.data[0], // scale x
|
||||
sprite.transform.local.data[3], // skew x
|
||||
sprite.transform.local.data[1], // skew y
|
||||
sprite.transform.local.data[4], // scale y
|
||||
this._dx, // translate x
|
||||
this._dy // translate y
|
||||
);
|
||||
|
||||
this._dx = sprite.transform.origin.x * -this._dw;
|
||||
this._dy = sprite.transform.origin.y * -this._dh;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!sprite.transform.origin.equals(0))
|
||||
{
|
||||
this._dx -= sprite.transform.origin.x;
|
||||
this._dy -= sprite.transform.origin.y;
|
||||
}
|
||||
this._dx -= (this._dw * sprite.transform.origin.x);
|
||||
this._dy -= (this._dh * sprite.transform.origin.y);
|
||||
}
|
||||
|
||||
this._sx = Math.round(this._sx);
|
||||
@@ -568,7 +541,7 @@ module Phaser {
|
||||
this._dh // Destination Height (always same as Source Height unless scaled)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if (sprite.modified || sprite.texture.globalCompositeOperation)
|
||||
{
|
||||
sprite.texture.context.restore();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - CircleUtils
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - ColorUtils
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - PointUtils
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
|
||||
/**
|
||||
* Phaser - RectangleUtils
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
|
||||
|
||||
@@ -193,6 +193,10 @@
|
||||
<Content Include="sprites\atlas 2.js">
|
||||
<DependentUpon>atlas 2.ts</DependentUpon>
|
||||
</Content>
|
||||
<TypeScriptCompile Include="sprites\origin 5.ts" />
|
||||
<Content Include="sprites\origin 5.js">
|
||||
<DependentUpon>origin 5.ts</DependentUpon>
|
||||
</Content>
|
||||
<Content Include="tweens\tween loop 1.js">
|
||||
<DependentUpon>tween loop 1.ts</DependentUpon>
|
||||
</Content>
|
||||
|
||||
+576
-136
@@ -384,7 +384,7 @@ var __extends = this.__extends || function (d, b) {
|
||||
d.prototype = new __();
|
||||
};
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="LinkedList.ts" />
|
||||
/**
|
||||
* Phaser - QuadTree
|
||||
@@ -734,7 +734,7 @@ var Phaser;
|
||||
/**
|
||||
* Phaser - Vec2
|
||||
*
|
||||
* A Circle object is an area defined by its position, as indicated by its center point (x,y) and diameter.
|
||||
* A Vector 2
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
@@ -1264,8 +1264,8 @@ var Phaser;
|
||||
Phaser.Types = Types;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/**
|
||||
* Phaser - RectangleUtils
|
||||
*
|
||||
@@ -1455,9 +1455,9 @@ var Phaser;
|
||||
Phaser.RectangleUtils = RectangleUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - ColorUtils
|
||||
*
|
||||
@@ -2797,9 +2797,263 @@ var Phaser;
|
||||
})(Phaser.Components || (Phaser.Components = {}));
|
||||
var Components = Phaser.Components;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Mat3
|
||||
*
|
||||
* A 3x3 Matrix
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Mat3 = (function () {
|
||||
/**
|
||||
* Creates a new Mat3 object.
|
||||
* @class Mat3
|
||||
* @constructor
|
||||
* @return {Mat3} This object
|
||||
**/
|
||||
function Mat3() {
|
||||
this.data = [
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
];
|
||||
}
|
||||
Object.defineProperty(Mat3.prototype, "a00", {
|
||||
get: function () {
|
||||
return this.data[0];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[0] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a01", {
|
||||
get: function () {
|
||||
return this.data[1];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[1] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a02", {
|
||||
get: function () {
|
||||
return this.data[2];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[2] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a10", {
|
||||
get: function () {
|
||||
return this.data[3];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[3] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a11", {
|
||||
get: function () {
|
||||
return this.data[4];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[4] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a12", {
|
||||
get: function () {
|
||||
return this.data[5];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[5] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a20", {
|
||||
get: function () {
|
||||
return this.data[6];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[6] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a21", {
|
||||
get: function () {
|
||||
return this.data[7];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[7] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a22", {
|
||||
get: function () {
|
||||
return this.data[8];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[8] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Mat3.prototype.copyFromMat3 = /**
|
||||
* Copies the values from one Mat3 into this Mat3.
|
||||
* @method copyFromMat3
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function (source) {
|
||||
this.data[0] = source.data[0];
|
||||
this.data[1] = source.data[1];
|
||||
this.data[2] = source.data[2];
|
||||
this.data[3] = source.data[3];
|
||||
this.data[4] = source.data[4];
|
||||
this.data[5] = source.data[5];
|
||||
this.data[6] = source.data[6];
|
||||
this.data[7] = source.data[7];
|
||||
this.data[8] = source.data[8];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.copyFromMat4 = /**
|
||||
* Copies the upper-left 3x3 values into this Mat3.
|
||||
* @method copyFromMat4
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function (source) {
|
||||
this.data[0] = source[0];
|
||||
this.data[1] = source[1];
|
||||
this.data[2] = source[2];
|
||||
this.data[3] = source[4];
|
||||
this.data[4] = source[5];
|
||||
this.data[5] = source[6];
|
||||
this.data[6] = source[8];
|
||||
this.data[7] = source[9];
|
||||
this.data[8] = source[10];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.clone = /**
|
||||
* Clones this Mat3 into a new Mat3
|
||||
* @param {Mat3} out The output Mat3, if none is given a new Mat3 object will be created.
|
||||
* @return {Mat3} The new Mat3
|
||||
**/
|
||||
function (out) {
|
||||
if (typeof out === "undefined") { out = new Phaser.Mat3(); }
|
||||
out[0] = this.data[0];
|
||||
out[1] = this.data[1];
|
||||
out[2] = this.data[2];
|
||||
out[3] = this.data[3];
|
||||
out[4] = this.data[4];
|
||||
out[5] = this.data[5];
|
||||
out[6] = this.data[6];
|
||||
out[7] = this.data[7];
|
||||
out[8] = this.data[8];
|
||||
return out;
|
||||
};
|
||||
Mat3.prototype.identity = /**
|
||||
* Sets this Mat3 to the identity matrix.
|
||||
* @method identity
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function () {
|
||||
return this.setTo(1, 0, 0, 0, 1, 0, 0, 0, 1);
|
||||
};
|
||||
Mat3.prototype.translate = /**
|
||||
* Translates this Mat3 by the given vector
|
||||
**/
|
||||
function (v) {
|
||||
this.a20 = v.x * this.a00 + v.y * this.a10 + this.a20;
|
||||
this.a21 = v.x * this.a01 + v.y * this.a11 + this.a21;
|
||||
this.a22 = v.x * this.a02 + v.y * this.a12 + this.a22;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.setTemps = function () {
|
||||
this._a00 = this.data[0];
|
||||
this._a01 = this.data[1];
|
||||
this._a02 = this.data[2];
|
||||
this._a10 = this.data[3];
|
||||
this._a11 = this.data[4];
|
||||
this._a12 = this.data[5];
|
||||
this._a20 = this.data[6];
|
||||
this._a21 = this.data[7];
|
||||
this._a22 = this.data[8];
|
||||
};
|
||||
Mat3.prototype.rotate = /**
|
||||
* Rotates this Mat3 by the given angle (given in radians)
|
||||
**/
|
||||
function (rad) {
|
||||
this.setTemps();
|
||||
var s = Phaser.GameMath.sinA[rad];
|
||||
var c = Phaser.GameMath.cosA[rad];
|
||||
this.data[0] = c * this._a00 + s * this._a10;
|
||||
this.data[1] = c * this._a01 + s * this._a10;
|
||||
this.data[2] = c * this._a02 + s * this._a12;
|
||||
this.data[3] = c * this._a10 - s * this._a00;
|
||||
this.data[4] = c * this._a11 - s * this._a01;
|
||||
this.data[5] = c * this._a12 - s * this._a02;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.scale = /**
|
||||
* Scales this Mat3 by the given vector
|
||||
**/
|
||||
function (v) {
|
||||
this.data[0] = v.x * this.data[0];
|
||||
this.data[1] = v.x * this.data[1];
|
||||
this.data[2] = v.x * this.data[2];
|
||||
this.data[3] = v.y * this.data[3];
|
||||
this.data[4] = v.y * this.data[4];
|
||||
this.data[5] = v.y * this.data[5];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.setTo = function (a00, a01, a02, a10, a11, a12, a20, a21, a22) {
|
||||
this.data[0] = a00;
|
||||
this.data[1] = a01;
|
||||
this.data[2] = a02;
|
||||
this.data[3] = a10;
|
||||
this.data[4] = a11;
|
||||
this.data[5] = a12;
|
||||
this.data[6] = a20;
|
||||
this.data[7] = a21;
|
||||
this.data[8] = a22;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.toString = /**
|
||||
* Returns a string representation of this object.
|
||||
* @method toString
|
||||
* @return {string} a string representation of the object.
|
||||
**/
|
||||
function () {
|
||||
return '';
|
||||
//return "[{Vec2 (x=" + this.x + " y=" + this.y + ")}]";
|
||||
};
|
||||
return Mat3;
|
||||
})();
|
||||
Phaser.Mat3 = Mat3;
|
||||
})(Phaser || (Phaser = {}));
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
/**
|
||||
* Phaser - Components - Transform
|
||||
*/
|
||||
@@ -2823,11 +3077,87 @@ var Phaser;
|
||||
this.rotation = 0;
|
||||
this.game = parent.game;
|
||||
this.parent = parent;
|
||||
this.local = new Phaser.Mat3();
|
||||
this.scrollFactor = new Phaser.Vec2(1, 1);
|
||||
this.origin = new Phaser.Vec2();
|
||||
this.scale = new Phaser.Vec2(1, 1);
|
||||
this.skew = new Phaser.Vec2();
|
||||
}
|
||||
Transform.prototype.update = function () {
|
||||
// 0 a = scale x
|
||||
// 3 b = skew x
|
||||
// 1 c = skew y
|
||||
// 4 d = scale y
|
||||
// 2 e = translate x
|
||||
// 5 f = translate y
|
||||
// Scale & Skew
|
||||
// if (sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0))
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
if(this.parent.texture.renderRotation) {
|
||||
this._sin = Phaser.GameMath.sinA[this.rotation + this.rotationOffset];
|
||||
this._cos = Phaser.GameMath.cosA[this.rotation + this.rotationOffset];
|
||||
}
|
||||
if(this.parent.texture.flippedX) {
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * -this.scale.x;
|
||||
this.local.data[3] = (this._sin * -this.scale.x) + this.skew.x;
|
||||
} else {
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * this.scale.x;
|
||||
this.local.data[3] = (this._sin * this.scale.x) + this.skew.x;
|
||||
}
|
||||
if(this.parent.texture.flippedY) {
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * -this.scale.y;
|
||||
this.local.data[1] = -(this._sin * -this.scale.y) + this.skew.y;
|
||||
} else {
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * this.scale.y;
|
||||
this.local.data[1] = -(this._sin * this.scale.y) + this.skew.y;
|
||||
}
|
||||
// Translate
|
||||
this.local.data[2] = this.parent.x;
|
||||
this.local.data[5] = this.parent.y;
|
||||
};
|
||||
Object.defineProperty(Transform.prototype, "calculatedX", {
|
||||
get: function () {
|
||||
return this.origin.x * this.scale.x;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "calculatedY", {
|
||||
get: function () {
|
||||
return this.origin.y * this.scale.y;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "centerX", {
|
||||
get: /**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
function () {
|
||||
return this.parent.width / 2;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "centerY", {
|
||||
get: /**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
function () {
|
||||
return this.parent.height / 2;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
return Transform;
|
||||
})();
|
||||
Components.Transform = Transform;
|
||||
@@ -3412,7 +3742,7 @@ var Phaser;
|
||||
var Components = Phaser.Components;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - Vec2Utils
|
||||
*
|
||||
@@ -3707,8 +4037,8 @@ var Phaser;
|
||||
})(Phaser || (Phaser = {}));
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../math/Vec2Utils.ts" />
|
||||
/**
|
||||
* Phaser - Physics - Body
|
||||
@@ -3938,8 +4268,8 @@ var Phaser;
|
||||
var Physics = Phaser.Physics;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/animation/AnimationManager.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
@@ -3997,11 +4327,12 @@ var Phaser;
|
||||
this.y = y;
|
||||
this.z = -1;
|
||||
this.group = null;
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
// No dependencies
|
||||
this.animations = new Phaser.Components.AnimationManager(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.input = new Phaser.Components.Sprite.Input(this);
|
||||
this.events = new Phaser.Components.Sprite.Events(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
if(key !== null) {
|
||||
this.texture.loadImage(key, false);
|
||||
} else {
|
||||
@@ -4090,10 +4421,13 @@ var Phaser;
|
||||
* Pre-update is called right before update() on each object in the game loop.
|
||||
*/
|
||||
function () {
|
||||
this.transform.update();
|
||||
//this.worldView.x = this.x * this.transform.scrollFactor.x;
|
||||
//this.worldView.y = this.y * this.transform.scrollFactor.y;
|
||||
this.worldView.x = this.x - this.transform.origin.x;
|
||||
this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.x = this.x;
|
||||
this.worldView.y = this.y;
|
||||
//this.worldView.x = this.x - this.transform.origin.x;
|
||||
//this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.width = this.width;
|
||||
this.worldView.height = this.height;
|
||||
if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
|
||||
@@ -4183,9 +4517,9 @@ var Phaser;
|
||||
Phaser.Sprite = Sprite;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
/**
|
||||
@@ -6357,6 +6691,12 @@ var Phaser;
|
||||
*/
|
||||
this.globalSeed = Math.random();
|
||||
this.game = game;
|
||||
GameMath.sinA = [];
|
||||
GameMath.cosA = [];
|
||||
for(var i = 0; i < 360; i++) {
|
||||
GameMath.sinA.push(Math.sin(this.degreesToRadians(i)));
|
||||
GameMath.cosA.push(Math.cos(this.degreesToRadians(i)));
|
||||
}
|
||||
}
|
||||
GameMath.PI = 3.141592653589793;
|
||||
GameMath.PI_2 = 1.5707963267948965;
|
||||
@@ -7626,9 +7966,9 @@ var Phaser;
|
||||
Phaser.CameraFX = CameraFX;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../components/camera/CameraFX.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
@@ -9164,8 +9504,8 @@ var Phaser;
|
||||
Phaser.Emitter = Emitter;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - ScrollRegion
|
||||
*
|
||||
@@ -9314,7 +9654,7 @@ var Phaser;
|
||||
Phaser.ScrollRegion = ScrollRegion;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/ScrollRegion.ts" />
|
||||
/**
|
||||
* Phaser - ScrollZone
|
||||
@@ -11865,9 +12205,9 @@ var Phaser;
|
||||
Phaser.TweenManager = TweenManager;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - CircleUtils
|
||||
*
|
||||
@@ -12967,7 +13307,7 @@ var Phaser;
|
||||
/// <reference path="Game.ts" />
|
||||
/// <reference path="cameras/CameraManager.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="physics/PhysicsManager.ts" />
|
||||
/**
|
||||
* Phaser - World
|
||||
@@ -13931,7 +14271,7 @@ var Phaser;
|
||||
Phaser.RequestAnimationFrame = RequestAnimationFrame;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/**
|
||||
* Phaser - PointUtils
|
||||
*
|
||||
@@ -14128,7 +14468,7 @@ var Phaser;
|
||||
})();
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - Pointer
|
||||
*
|
||||
@@ -16235,8 +16575,8 @@ var Phaser;
|
||||
*/
|
||||
function (camera, sprite) {
|
||||
if(sprite.transform.scale.x == 0 || sprite.transform.scale.y == 0 || sprite.texture.alpha < 0.1 || this.inCamera(camera, sprite) == false) {
|
||||
return false;
|
||||
}
|
||||
//return false;
|
||||
}
|
||||
sprite.renderOrderID = this._count;
|
||||
this._count++;
|
||||
// Reset our temp vars
|
||||
@@ -16245,12 +16585,8 @@ var Phaser;
|
||||
this._sy = 0;
|
||||
this._sw = sprite.texture.width;
|
||||
this._sh = sprite.texture.height;
|
||||
this._fx = sprite.transform.scale.x;
|
||||
this._fy = sprite.transform.scale.y;
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
this._dx = (camera.screenView.x * sprite.transform.scrollFactor.x) + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = (camera.screenView.y * sprite.transform.scrollFactor.y) + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dx = camera.screenView.x + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = camera.screenView.y + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dw = sprite.texture.width;
|
||||
this._dh = sprite.texture.height;
|
||||
// Global Composite Ops
|
||||
@@ -16263,14 +16599,6 @@ var Phaser;
|
||||
this._ga = sprite.texture.context.globalAlpha;
|
||||
sprite.texture.context.globalAlpha = sprite.texture.alpha;
|
||||
}
|
||||
// Sprite Flip X
|
||||
if(sprite.texture.flippedX) {
|
||||
this._fx = -sprite.transform.scale.x;
|
||||
}
|
||||
// Sprite Flip Y
|
||||
if(sprite.texture.flippedY) {
|
||||
this._fy = -sprite.transform.scale.y;
|
||||
}
|
||||
if(sprite.animations.currentFrame !== null) {
|
||||
this._sx = sprite.animations.currentFrame.x;
|
||||
this._sy = sprite.animations.currentFrame.y;
|
||||
@@ -16283,28 +16611,20 @@ var Phaser;
|
||||
this._dh = sprite.animations.currentFrame.spriteSourceSizeH;
|
||||
}
|
||||
}
|
||||
// Rotation and Flipped
|
||||
if(sprite.modified) {
|
||||
if(sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0)) {
|
||||
this._sin = Math.sin(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
this._cos = Math.cos(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
}
|
||||
// setTransform(a, b, c, d, e, f);
|
||||
// a = scale x
|
||||
// b = skew x
|
||||
// c = skew y
|
||||
// d = scale y
|
||||
// e = translate x
|
||||
// f = translate y
|
||||
sprite.texture.context.save();
|
||||
sprite.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + sprite.transform.skew.x, -(this._sin * this._fy) + sprite.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
|
||||
this._dx = -sprite.transform.origin.x;
|
||||
this._dy = -sprite.transform.origin.y;
|
||||
sprite.texture.context.setTransform(sprite.transform.local.data[0], // scale x
|
||||
sprite.transform.local.data[3], // skew x
|
||||
sprite.transform.local.data[1], // skew y
|
||||
sprite.transform.local.data[4], // scale y
|
||||
this._dx, // translate x
|
||||
this._dy);
|
||||
// translate y
|
||||
this._dx = sprite.transform.origin.x * -this._dw;
|
||||
this._dy = sprite.transform.origin.y * -this._dh;
|
||||
} else {
|
||||
if(!sprite.transform.origin.equals(0)) {
|
||||
this._dx -= sprite.transform.origin.x;
|
||||
this._dy -= sprite.transform.origin.y;
|
||||
}
|
||||
this._dx -= (this._dw * sprite.transform.origin.x);
|
||||
this._dy -= (this._dh * sprite.transform.origin.y);
|
||||
}
|
||||
this._sx = Math.round(this._sx);
|
||||
this._sy = Math.round(this._sy);
|
||||
@@ -16421,9 +16741,9 @@ var Phaser;
|
||||
Phaser.CanvasRenderer = CanvasRenderer;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
/**
|
||||
@@ -16479,12 +16799,12 @@ var Phaser;
|
||||
})();
|
||||
Phaser.DebugUtils = DebugUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="math/LinkedList.ts" />
|
||||
/// <reference path="math/QuadTree.ts" />
|
||||
/// <reference path="core/Point.ts" />
|
||||
/// <reference path="core/Vec2.ts" />
|
||||
/// <reference path="core/Circle.ts" />
|
||||
/// <reference path="geom/Point.ts" />
|
||||
/// <reference path="math/Vec2.ts" />
|
||||
/// <reference path="geom/Circle.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Signal.ts" />
|
||||
/// <reference path="core/SignalBinding.ts" />
|
||||
@@ -17015,69 +17335,6 @@ var Phaser;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Polygon
|
||||
*
|
||||
*
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Polygon = (function () {
|
||||
/**
|
||||
*
|
||||
**/
|
||||
function Polygon(game, points) {
|
||||
this.game = game;
|
||||
this.context = game.stage.context;
|
||||
this.points = [];
|
||||
for(var i = 0; i < points.length; i++) {
|
||||
this.points.push(new Phaser.Point().copyFrom(points[i]));
|
||||
}
|
||||
}
|
||||
Polygon.prototype.render = function () {
|
||||
this.context.beginPath();
|
||||
this.context.strokeStyle = 'rgb(255,255,0)';
|
||||
this.context.moveTo(this.points[0].x, this.points[0].y);
|
||||
for(var i = 1; i < this.points.length; i++) {
|
||||
this.context.lineTo(this.points[i].x, this.points[i].y);
|
||||
}
|
||||
this.context.lineTo(this.points[0].x, this.points[0].y);
|
||||
this.context.stroke();
|
||||
this.context.closePath();
|
||||
};
|
||||
return Polygon;
|
||||
})();
|
||||
Phaser.Polygon = Polygon;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var PixelUtils = (function () {
|
||||
function PixelUtils() { }
|
||||
PixelUtils.boot = function boot() {
|
||||
PixelUtils.pixelCanvas = document.createElement('canvas');
|
||||
PixelUtils.pixelCanvas.width = 1;
|
||||
PixelUtils.pixelCanvas.height = 1;
|
||||
PixelUtils.pixelContext = PixelUtils.pixelCanvas.getContext('2d');
|
||||
};
|
||||
PixelUtils.getPixel = function getPixel(key, x, y) {
|
||||
// write out a single pixel (won't help with rotated sprites though.. hmm)
|
||||
var imageData = PixelUtils.pixelContext.getImageData(0, 0, 1, 1);
|
||||
return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
|
||||
};
|
||||
return PixelUtils;
|
||||
})();
|
||||
Phaser.PixelUtils = PixelUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Line
|
||||
*
|
||||
* A Line object is an infinte line through space. The two sets of x/y coordinates define the Line Segment.
|
||||
@@ -17347,6 +17604,189 @@ var Phaser;
|
||||
Phaser.Line = Line;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
/**
|
||||
* Phaser - Mat3Utils
|
||||
*
|
||||
* A collection of methods useful for manipulating and performing operations on Mat3 objects.
|
||||
*
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Mat3Utils = (function () {
|
||||
function Mat3Utils() { }
|
||||
Mat3Utils.transpose = /**
|
||||
* Transpose the values of a Mat3
|
||||
**/
|
||||
function transpose(source, dest) {
|
||||
if (typeof dest === "undefined") { dest = null; }
|
||||
if(dest === null) {
|
||||
// Transpose ourselves
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a12 = source.data[5];
|
||||
source.data[1] = source.data[3];
|
||||
source.data[2] = source.data[6];
|
||||
source.data[3] = a01;
|
||||
source.data[5] = source.data[7];
|
||||
source.data[6] = a02;
|
||||
source.data[7] = a12;
|
||||
} else {
|
||||
source.data[0] = dest.data[0];
|
||||
source.data[1] = dest.data[3];
|
||||
source.data[2] = dest.data[6];
|
||||
source.data[3] = dest.data[1];
|
||||
source.data[4] = dest.data[4];
|
||||
source.data[5] = dest.data[7];
|
||||
source.data[6] = dest.data[2];
|
||||
source.data[7] = dest.data[5];
|
||||
source.data[8] = dest.data[8];
|
||||
}
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.invert = /**
|
||||
* Inverts a Mat3
|
||||
**/
|
||||
function invert(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
var b01 = a22 * a11 - a12 * a21;
|
||||
var b11 = -a22 * a10 + a12 * a20;
|
||||
var b21 = a21 * a10 - a11 * a20;
|
||||
// Determinant
|
||||
var det = a00 * b01 + a01 * b11 + a02 * b21;
|
||||
if(!det) {
|
||||
return null;
|
||||
}
|
||||
det = 1.0 / det;
|
||||
source.data[0] = b01 * det;
|
||||
source.data[1] = (-a22 * a01 + a02 * a21) * det;
|
||||
source.data[2] = (a12 * a01 - a02 * a11) * det;
|
||||
source.data[3] = b11 * det;
|
||||
source.data[4] = (a22 * a00 - a02 * a20) * det;
|
||||
source.data[5] = (-a12 * a00 + a02 * a10) * det;
|
||||
source.data[6] = b21 * det;
|
||||
source.data[7] = (-a21 * a00 + a01 * a20) * det;
|
||||
source.data[8] = (a11 * a00 - a01 * a10) * det;
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.adjoint = /**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
function adjoint(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
source.data[0] = (a11 * a22 - a12 * a21);
|
||||
source.data[1] = (a02 * a21 - a01 * a22);
|
||||
source.data[2] = (a01 * a12 - a02 * a11);
|
||||
source.data[3] = (a12 * a20 - a10 * a22);
|
||||
source.data[4] = (a00 * a22 - a02 * a20);
|
||||
source.data[5] = (a02 * a10 - a00 * a12);
|
||||
source.data[6] = (a10 * a21 - a11 * a20);
|
||||
source.data[7] = (a01 * a20 - a00 * a21);
|
||||
source.data[8] = (a00 * a11 - a01 * a10);
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.determinant = /**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
function determinant(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
|
||||
};
|
||||
Mat3Utils.multiply = /**
|
||||
* Multiplies two Mat3s
|
||||
**/
|
||||
function multiply(source, b) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
var b00 = b.data[0];
|
||||
var b01 = b.data[1];
|
||||
var b02 = b.data[2];
|
||||
var b10 = b.data[3];
|
||||
var b11 = b.data[4];
|
||||
var b12 = b.data[5];
|
||||
var b20 = b.data[6];
|
||||
var b21 = b.data[7];
|
||||
var b22 = b.data[8];
|
||||
source.data[0] = b00 * a00 + b01 * a10 + b02 * a20;
|
||||
source.data[1] = b00 * a01 + b01 * a11 + b02 * a21;
|
||||
source.data[2] = b00 * a02 + b01 * a12 + b02 * a22;
|
||||
source.data[3] = b10 * a00 + b11 * a10 + b12 * a20;
|
||||
source.data[4] = b10 * a01 + b11 * a11 + b12 * a21;
|
||||
source.data[5] = b10 * a02 + b11 * a12 + b12 * a22;
|
||||
source.data[6] = b20 * a00 + b21 * a10 + b22 * a20;
|
||||
source.data[7] = b20 * a01 + b21 * a11 + b22 * a21;
|
||||
source.data[8] = b20 * a02 + b21 * a12 + b22 * a22;
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.fromQuaternion = function fromQuaternion() {
|
||||
};
|
||||
Mat3Utils.normalFromMat4 = function normalFromMat4() {
|
||||
};
|
||||
return Mat3Utils;
|
||||
})();
|
||||
Phaser.Mat3Utils = Mat3Utils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var PixelUtils = (function () {
|
||||
function PixelUtils() { }
|
||||
PixelUtils.boot = function boot() {
|
||||
PixelUtils.pixelCanvas = document.createElement('canvas');
|
||||
PixelUtils.pixelCanvas.width = 1;
|
||||
PixelUtils.pixelCanvas.height = 1;
|
||||
PixelUtils.pixelContext = PixelUtils.pixelCanvas.getContext('2d');
|
||||
};
|
||||
PixelUtils.getPixel = function getPixel(key, x, y) {
|
||||
// write out a single pixel (won't help with rotated sprites though.. hmm)
|
||||
var imageData = PixelUtils.pixelContext.getImageData(0, 0, 1, 1);
|
||||
return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
|
||||
};
|
||||
return PixelUtils;
|
||||
})();
|
||||
Phaser.PixelUtils = PixelUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - IntersectResult
|
||||
*
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/// <reference path="../../Phaser/Game.ts" />
|
||||
(function () {
|
||||
var game = new Phaser.Game(this, 'game', 800, 600, init, create, update, render);
|
||||
function init() {
|
||||
// Using Phasers asset loader we load up a PNG from the assets folder
|
||||
game.load.image('fuji', 'assets/pics/atari_fujilogo.png');
|
||||
game.load.start();
|
||||
}
|
||||
var fuji;
|
||||
var wn;
|
||||
var hn;
|
||||
function create() {
|
||||
game.stage.backgroundColor = 'rgb(0,0,100)';
|
||||
game.world.setSize(2000, 1200, true);
|
||||
// The sprite is 320 x 200 pixels in size positioned in the middle of the stage
|
||||
fuji = game.add.sprite(game.stage.centerX, game.stage.centerY, 'fuji');
|
||||
//fuji.transform.scale.setTo(1.5, 1.5);
|
||||
//fuji.transform.scale.setTo(1.5, 1.5);
|
||||
//fuji.transform.skew.setTo(0.1, 0.1);
|
||||
//fuji.texture.alpha = 0.5;
|
||||
fuji.texture.renderRotation = false;
|
||||
//fuji.texture.flippedX = true;
|
||||
//fuji.texture.flippedY = true;
|
||||
//fuji.transform.scale.setTo(2, 2);
|
||||
//fuji.transform.scale.setTo(2, 2);
|
||||
// This sets the origin to the center
|
||||
//fuji.transform.origin.setTo(0.5, 0.5);
|
||||
game.input.onTap.add(rotateIt, this);
|
||||
}
|
||||
function rotateIt() {
|
||||
fuji.rotation += 20;
|
||||
console.log(fuji.rotation);
|
||||
}
|
||||
function update() {
|
||||
var s = Math.sin(fuji.rotation);
|
||||
var c = Math.cos(fuji.rotation);
|
||||
if(s < 0) {
|
||||
s = -s;
|
||||
}
|
||||
if(c < 0) {
|
||||
c = -c;
|
||||
}
|
||||
wn = fuji.width * s + fuji.width * c;
|
||||
hn = fuji.height * c + fuji.height * s;
|
||||
if(game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) {
|
||||
game.camera.x -= 4;
|
||||
} else if(game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) {
|
||||
game.camera.x += 4;
|
||||
}
|
||||
if(game.input.keyboard.isDown(Phaser.Keyboard.UP)) {
|
||||
game.camera.y -= 4;
|
||||
} else if(game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) {
|
||||
game.camera.y += 4;
|
||||
}
|
||||
}
|
||||
function render() {
|
||||
game.stage.context.fillStyle = 'rgb(255,255,255)';
|
||||
game.stage.context.fillRect(fuji.x, fuji.y, 2, 2);
|
||||
game.stage.context.fillStyle = 'rgb(255,255,0)';
|
||||
game.stage.context.fillRect(fuji.x + fuji.transform.centerX, fuji.y + fuji.transform.centerY, 2, 2);
|
||||
game.stage.context.strokeStyle = 'rgb(255,0,0)';
|
||||
game.stage.context.strokeRect(fuji.worldView.x, fuji.worldView.y, fuji.worldView.width, fuji.worldView.height);
|
||||
game.stage.context.strokeStyle = 'rgb(0,255,0)';
|
||||
game.stage.context.strokeRect(fuji.x, fuji.y, wn, hn);
|
||||
game.camera.renderDebugInfo(32, 32);
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,106 @@
|
||||
/// <reference path="../../Phaser/Game.ts" />
|
||||
|
||||
(function () {
|
||||
|
||||
var game = new Phaser.Game(this, 'game', 800, 600, init, create, update, render);
|
||||
|
||||
function init() {
|
||||
|
||||
// Using Phasers asset loader we load up a PNG from the assets folder
|
||||
game.load.image('fuji', 'assets/pics/atari_fujilogo.png');
|
||||
game.load.start();
|
||||
|
||||
}
|
||||
|
||||
var fuji: Phaser.Sprite;
|
||||
var wn: number;
|
||||
var hn: number;
|
||||
|
||||
|
||||
function create() {
|
||||
|
||||
game.stage.backgroundColor = 'rgb(0,0,100)';
|
||||
game.world.setSize(2000, 1200, true);
|
||||
|
||||
// The sprite is 320 x 200 pixels in size positioned in the middle of the stage
|
||||
fuji = game.add.sprite(game.stage.centerX, game.stage.centerY, 'fuji');
|
||||
|
||||
//fuji.transform.scale.setTo(1.5, 1.5);
|
||||
//fuji.transform.scale.setTo(1.5, 1.5);
|
||||
//fuji.transform.skew.setTo(0.1, 0.1);
|
||||
//fuji.texture.alpha = 0.5;
|
||||
|
||||
//fuji.texture.flippedX = true;
|
||||
//fuji.texture.flippedY = true;
|
||||
|
||||
//fuji.transform.scale.setTo(2, 2);
|
||||
//fuji.transform.scale.setTo(2, 2);
|
||||
|
||||
// This sets the origin to the center
|
||||
//fuji.transform.origin.setTo(0.5, 0.5);
|
||||
|
||||
game.input.onTap.add(rotateIt, this);
|
||||
|
||||
}
|
||||
|
||||
function rotateIt() {
|
||||
fuji.rotation += 20;
|
||||
}
|
||||
|
||||
function update() {
|
||||
|
||||
var s = Math.sin(fuji.rotation);
|
||||
var c = Math.cos(fuji.rotation);
|
||||
|
||||
if (s < 0)
|
||||
{
|
||||
s = -s;
|
||||
}
|
||||
|
||||
if (c < 0)
|
||||
{
|
||||
c = -c;
|
||||
}
|
||||
|
||||
wn = fuji.width * s + fuji.width * c;
|
||||
hn = fuji.height * c + fuji.height * s;
|
||||
|
||||
if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT))
|
||||
{
|
||||
game.camera.x -= 4;
|
||||
}
|
||||
else if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT))
|
||||
{
|
||||
game.camera.x += 4;
|
||||
}
|
||||
|
||||
if (game.input.keyboard.isDown(Phaser.Keyboard.UP))
|
||||
{
|
||||
game.camera.y -= 4;
|
||||
}
|
||||
else if (game.input.keyboard.isDown(Phaser.Keyboard.DOWN))
|
||||
{
|
||||
game.camera.y += 4;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function render() {
|
||||
|
||||
game.stage.context.fillStyle = 'rgb(255,255,255)';
|
||||
game.stage.context.fillRect(fuji.x, fuji.y, 2, 2);
|
||||
|
||||
game.stage.context.fillStyle = 'rgb(255,255,0)';
|
||||
game.stage.context.fillRect(fuji.x + fuji.transform.centerX, fuji.y + fuji.transform.centerY, 2, 2);
|
||||
|
||||
game.stage.context.strokeStyle = 'rgb(255,0,0)';
|
||||
game.stage.context.strokeRect(fuji.worldView.x, fuji.worldView.y, fuji.worldView.width, fuji.worldView.height);
|
||||
|
||||
game.stage.context.strokeStyle = 'rgb(0,255,0)';
|
||||
game.stage.context.strokeRect(fuji.x, fuji.y, wn, hn);
|
||||
|
||||
game.camera.renderDebugInfo(32, 32);
|
||||
|
||||
}
|
||||
|
||||
})();
|
||||
Vendored
+153
-40
@@ -492,7 +492,7 @@ module Phaser {
|
||||
/**
|
||||
* Phaser - Vec2
|
||||
*
|
||||
* A Circle object is an area defined by its position, as indicated by its center point (x,y) and diameter.
|
||||
* A Vector 2
|
||||
*/
|
||||
module Phaser {
|
||||
class Vec2 {
|
||||
@@ -1805,6 +1805,88 @@ module Phaser.Components {
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - Mat3
|
||||
*
|
||||
* A 3x3 Matrix
|
||||
*/
|
||||
module Phaser {
|
||||
class Mat3 {
|
||||
/**
|
||||
* Creates a new Mat3 object.
|
||||
* @class Mat3
|
||||
* @constructor
|
||||
* @return {Mat3} This object
|
||||
**/
|
||||
constructor();
|
||||
private _a00;
|
||||
private _a01;
|
||||
private _a02;
|
||||
private _a10;
|
||||
private _a11;
|
||||
private _a12;
|
||||
private _a20;
|
||||
private _a21;
|
||||
private _a22;
|
||||
public data: number[];
|
||||
public a00 : number;
|
||||
public a01 : number;
|
||||
public a02 : number;
|
||||
public a10 : number;
|
||||
public a11 : number;
|
||||
public a12 : number;
|
||||
public a20 : number;
|
||||
public a21 : number;
|
||||
public a22 : number;
|
||||
/**
|
||||
* Copies the values from one Mat3 into this Mat3.
|
||||
* @method copyFromMat3
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public copyFromMat3(source: Mat3): Mat3;
|
||||
/**
|
||||
* Copies the upper-left 3x3 values into this Mat3.
|
||||
* @method copyFromMat4
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public copyFromMat4(source: any): Mat3;
|
||||
/**
|
||||
* Clones this Mat3 into a new Mat3
|
||||
* @param {Mat3} out The output Mat3, if none is given a new Mat3 object will be created.
|
||||
* @return {Mat3} The new Mat3
|
||||
**/
|
||||
public clone(out?: Mat3): Mat3;
|
||||
/**
|
||||
* Sets this Mat3 to the identity matrix.
|
||||
* @method identity
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
public identity(): Mat3;
|
||||
/**
|
||||
* Translates this Mat3 by the given vector
|
||||
**/
|
||||
public translate(v: Vec2): Mat3;
|
||||
private setTemps();
|
||||
/**
|
||||
* Rotates this Mat3 by the given angle (given in radians)
|
||||
**/
|
||||
public rotate(rad: number): Mat3;
|
||||
/**
|
||||
* Scales this Mat3 by the given vector
|
||||
**/
|
||||
public scale(v: Vec2): Mat3;
|
||||
public setTo(a00: number, a01: number, a02: number, a10: number, a11: number, a12: number, a20: number, a21: number, a22: number): Mat3;
|
||||
/**
|
||||
* Returns a string representation of this object.
|
||||
* @method toString
|
||||
* @return {string} a string representation of the object.
|
||||
**/
|
||||
public toString(): string;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - Components - Transform
|
||||
*/
|
||||
module Phaser.Components {
|
||||
@@ -1814,6 +1896,12 @@ module Phaser.Components {
|
||||
* @param parent The Sprite using this transform
|
||||
*/
|
||||
constructor(parent);
|
||||
public local: Mat3;
|
||||
private _sin;
|
||||
private _cos;
|
||||
public update(): void;
|
||||
public calculatedX : number;
|
||||
public calculatedY : number;
|
||||
/**
|
||||
* Reference to Phaser.Game
|
||||
*/
|
||||
@@ -1835,7 +1923,7 @@ module Phaser.Components {
|
||||
*/
|
||||
public scrollFactor: Vec2;
|
||||
/**
|
||||
* The origin is the point around which scale and rotation takes place.
|
||||
* The origin is the point around which scale and rotation takes place and defaults to the center of the sprite.
|
||||
*/
|
||||
public origin: Vec2;
|
||||
/**
|
||||
@@ -1849,6 +1937,14 @@ module Phaser.Components {
|
||||
* The rotation of the object in degrees. Phaser uses a right-handed coordinate system, where 0 points to the right.
|
||||
*/
|
||||
public rotation: number;
|
||||
/**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
public centerX : number;
|
||||
/**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
public centerY : number;
|
||||
}
|
||||
}
|
||||
/**
|
||||
@@ -3636,6 +3732,8 @@ module Phaser {
|
||||
class GameMath {
|
||||
constructor(game: Game);
|
||||
public game: Game;
|
||||
static sinA: number[];
|
||||
static cosA: number[];
|
||||
static PI: number;
|
||||
static PI_2: number;
|
||||
static PI_4: number;
|
||||
@@ -8943,44 +9041,6 @@ module Phaser.Components {
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - Polygon
|
||||
*
|
||||
*
|
||||
*/
|
||||
module Phaser {
|
||||
class Polygon {
|
||||
/**
|
||||
*
|
||||
**/
|
||||
constructor(game: Game, points: Point[]);
|
||||
public points: Point[];
|
||||
public game: Game;
|
||||
public context: CanvasRenderingContext2D;
|
||||
public render(): void;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
module Phaser {
|
||||
class PixelUtils {
|
||||
static boot(): void;
|
||||
/**
|
||||
* Canvas element used in 1x1 pixel checks.
|
||||
* @type {HTMLCanvasElement}
|
||||
*/
|
||||
static pixelCanvas: HTMLCanvasElement;
|
||||
/**
|
||||
* Render context of pixelCanvas
|
||||
* @type {CanvasRenderingContext2D}
|
||||
*/
|
||||
static pixelContext: CanvasRenderingContext2D;
|
||||
static getPixel(key: string, x: number, y: number): number;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - Line
|
||||
*
|
||||
* A Line object is an infinte line through space. The two sets of x/y coordinates define the Line Segment.
|
||||
@@ -9132,6 +9192,59 @@ module Phaser {
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - Mat3Utils
|
||||
*
|
||||
* A collection of methods useful for manipulating and performing operations on Mat3 objects.
|
||||
*
|
||||
*/
|
||||
module Phaser {
|
||||
class Mat3Utils {
|
||||
/**
|
||||
* Transpose the values of a Mat3
|
||||
**/
|
||||
static transpose(source: Mat3, dest?: Mat3): Mat3;
|
||||
/**
|
||||
* Inverts a Mat3
|
||||
**/
|
||||
static invert(source: Mat3): Mat3;
|
||||
/**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
static adjoint(source: Mat3): Mat3;
|
||||
/**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
static determinant(source: Mat3): number;
|
||||
/**
|
||||
* Multiplies two Mat3s
|
||||
**/
|
||||
static multiply(source: Mat3, b: Mat3): Mat3;
|
||||
static fromQuaternion(): void;
|
||||
static normalFromMat4(): void;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
module Phaser {
|
||||
class PixelUtils {
|
||||
static boot(): void;
|
||||
/**
|
||||
* Canvas element used in 1x1 pixel checks.
|
||||
* @type {HTMLCanvasElement}
|
||||
*/
|
||||
static pixelCanvas: HTMLCanvasElement;
|
||||
/**
|
||||
* Render context of pixelCanvas
|
||||
* @type {CanvasRenderingContext2D}
|
||||
*/
|
||||
static pixelContext: CanvasRenderingContext2D;
|
||||
static getPixel(key: string, x: number, y: number): number;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Phaser - IntersectResult
|
||||
*
|
||||
* A light-weight result object to hold the results of an intersection. For when you need more than just true/false.
|
||||
|
||||
+576
-136
@@ -384,7 +384,7 @@ var __extends = this.__extends || function (d, b) {
|
||||
d.prototype = new __();
|
||||
};
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="LinkedList.ts" />
|
||||
/**
|
||||
* Phaser - QuadTree
|
||||
@@ -734,7 +734,7 @@ var Phaser;
|
||||
/**
|
||||
* Phaser - Vec2
|
||||
*
|
||||
* A Circle object is an area defined by its position, as indicated by its center point (x,y) and diameter.
|
||||
* A Vector 2
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
@@ -1264,8 +1264,8 @@ var Phaser;
|
||||
Phaser.Types = Types;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/**
|
||||
* Phaser - RectangleUtils
|
||||
*
|
||||
@@ -1455,9 +1455,9 @@ var Phaser;
|
||||
Phaser.RectangleUtils = RectangleUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - ColorUtils
|
||||
*
|
||||
@@ -2797,9 +2797,263 @@ var Phaser;
|
||||
})(Phaser.Components || (Phaser.Components = {}));
|
||||
var Components = Phaser.Components;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Mat3
|
||||
*
|
||||
* A 3x3 Matrix
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Mat3 = (function () {
|
||||
/**
|
||||
* Creates a new Mat3 object.
|
||||
* @class Mat3
|
||||
* @constructor
|
||||
* @return {Mat3} This object
|
||||
**/
|
||||
function Mat3() {
|
||||
this.data = [
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
];
|
||||
}
|
||||
Object.defineProperty(Mat3.prototype, "a00", {
|
||||
get: function () {
|
||||
return this.data[0];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[0] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a01", {
|
||||
get: function () {
|
||||
return this.data[1];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[1] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a02", {
|
||||
get: function () {
|
||||
return this.data[2];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[2] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a10", {
|
||||
get: function () {
|
||||
return this.data[3];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[3] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a11", {
|
||||
get: function () {
|
||||
return this.data[4];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[4] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a12", {
|
||||
get: function () {
|
||||
return this.data[5];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[5] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a20", {
|
||||
get: function () {
|
||||
return this.data[6];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[6] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a21", {
|
||||
get: function () {
|
||||
return this.data[7];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[7] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Mat3.prototype, "a22", {
|
||||
get: function () {
|
||||
return this.data[8];
|
||||
},
|
||||
set: function (value) {
|
||||
this.data[8] = value;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Mat3.prototype.copyFromMat3 = /**
|
||||
* Copies the values from one Mat3 into this Mat3.
|
||||
* @method copyFromMat3
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function (source) {
|
||||
this.data[0] = source.data[0];
|
||||
this.data[1] = source.data[1];
|
||||
this.data[2] = source.data[2];
|
||||
this.data[3] = source.data[3];
|
||||
this.data[4] = source.data[4];
|
||||
this.data[5] = source.data[5];
|
||||
this.data[6] = source.data[6];
|
||||
this.data[7] = source.data[7];
|
||||
this.data[8] = source.data[8];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.copyFromMat4 = /**
|
||||
* Copies the upper-left 3x3 values into this Mat3.
|
||||
* @method copyFromMat4
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function (source) {
|
||||
this.data[0] = source[0];
|
||||
this.data[1] = source[1];
|
||||
this.data[2] = source[2];
|
||||
this.data[3] = source[4];
|
||||
this.data[4] = source[5];
|
||||
this.data[5] = source[6];
|
||||
this.data[6] = source[8];
|
||||
this.data[7] = source[9];
|
||||
this.data[8] = source[10];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.clone = /**
|
||||
* Clones this Mat3 into a new Mat3
|
||||
* @param {Mat3} out The output Mat3, if none is given a new Mat3 object will be created.
|
||||
* @return {Mat3} The new Mat3
|
||||
**/
|
||||
function (out) {
|
||||
if (typeof out === "undefined") { out = new Phaser.Mat3(); }
|
||||
out[0] = this.data[0];
|
||||
out[1] = this.data[1];
|
||||
out[2] = this.data[2];
|
||||
out[3] = this.data[3];
|
||||
out[4] = this.data[4];
|
||||
out[5] = this.data[5];
|
||||
out[6] = this.data[6];
|
||||
out[7] = this.data[7];
|
||||
out[8] = this.data[8];
|
||||
return out;
|
||||
};
|
||||
Mat3.prototype.identity = /**
|
||||
* Sets this Mat3 to the identity matrix.
|
||||
* @method identity
|
||||
* @param {any} source - The object to copy from.
|
||||
* @return {Mat3} This Mat3 object.
|
||||
**/
|
||||
function () {
|
||||
return this.setTo(1, 0, 0, 0, 1, 0, 0, 0, 1);
|
||||
};
|
||||
Mat3.prototype.translate = /**
|
||||
* Translates this Mat3 by the given vector
|
||||
**/
|
||||
function (v) {
|
||||
this.a20 = v.x * this.a00 + v.y * this.a10 + this.a20;
|
||||
this.a21 = v.x * this.a01 + v.y * this.a11 + this.a21;
|
||||
this.a22 = v.x * this.a02 + v.y * this.a12 + this.a22;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.setTemps = function () {
|
||||
this._a00 = this.data[0];
|
||||
this._a01 = this.data[1];
|
||||
this._a02 = this.data[2];
|
||||
this._a10 = this.data[3];
|
||||
this._a11 = this.data[4];
|
||||
this._a12 = this.data[5];
|
||||
this._a20 = this.data[6];
|
||||
this._a21 = this.data[7];
|
||||
this._a22 = this.data[8];
|
||||
};
|
||||
Mat3.prototype.rotate = /**
|
||||
* Rotates this Mat3 by the given angle (given in radians)
|
||||
**/
|
||||
function (rad) {
|
||||
this.setTemps();
|
||||
var s = Phaser.GameMath.sinA[rad];
|
||||
var c = Phaser.GameMath.cosA[rad];
|
||||
this.data[0] = c * this._a00 + s * this._a10;
|
||||
this.data[1] = c * this._a01 + s * this._a10;
|
||||
this.data[2] = c * this._a02 + s * this._a12;
|
||||
this.data[3] = c * this._a10 - s * this._a00;
|
||||
this.data[4] = c * this._a11 - s * this._a01;
|
||||
this.data[5] = c * this._a12 - s * this._a02;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.scale = /**
|
||||
* Scales this Mat3 by the given vector
|
||||
**/
|
||||
function (v) {
|
||||
this.data[0] = v.x * this.data[0];
|
||||
this.data[1] = v.x * this.data[1];
|
||||
this.data[2] = v.x * this.data[2];
|
||||
this.data[3] = v.y * this.data[3];
|
||||
this.data[4] = v.y * this.data[4];
|
||||
this.data[5] = v.y * this.data[5];
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.setTo = function (a00, a01, a02, a10, a11, a12, a20, a21, a22) {
|
||||
this.data[0] = a00;
|
||||
this.data[1] = a01;
|
||||
this.data[2] = a02;
|
||||
this.data[3] = a10;
|
||||
this.data[4] = a11;
|
||||
this.data[5] = a12;
|
||||
this.data[6] = a20;
|
||||
this.data[7] = a21;
|
||||
this.data[8] = a22;
|
||||
return this;
|
||||
};
|
||||
Mat3.prototype.toString = /**
|
||||
* Returns a string representation of this object.
|
||||
* @method toString
|
||||
* @return {string} a string representation of the object.
|
||||
**/
|
||||
function () {
|
||||
return '';
|
||||
//return "[{Vec2 (x=" + this.x + " y=" + this.y + ")}]";
|
||||
};
|
||||
return Mat3;
|
||||
})();
|
||||
Phaser.Mat3 = Mat3;
|
||||
})(Phaser || (Phaser = {}));
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
/**
|
||||
* Phaser - Components - Transform
|
||||
*/
|
||||
@@ -2823,11 +3077,87 @@ var Phaser;
|
||||
this.rotation = 0;
|
||||
this.game = parent.game;
|
||||
this.parent = parent;
|
||||
this.local = new Phaser.Mat3();
|
||||
this.scrollFactor = new Phaser.Vec2(1, 1);
|
||||
this.origin = new Phaser.Vec2();
|
||||
this.scale = new Phaser.Vec2(1, 1);
|
||||
this.skew = new Phaser.Vec2();
|
||||
}
|
||||
Transform.prototype.update = function () {
|
||||
// 0 a = scale x
|
||||
// 3 b = skew x
|
||||
// 1 c = skew y
|
||||
// 4 d = scale y
|
||||
// 2 e = translate x
|
||||
// 5 f = translate y
|
||||
// Scale & Skew
|
||||
// if (sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0))
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
if(this.parent.texture.renderRotation) {
|
||||
this._sin = Phaser.GameMath.sinA[this.rotation + this.rotationOffset];
|
||||
this._cos = Phaser.GameMath.cosA[this.rotation + this.rotationOffset];
|
||||
}
|
||||
if(this.parent.texture.flippedX) {
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * -this.scale.x;
|
||||
this.local.data[3] = (this._sin * -this.scale.x) + this.skew.x;
|
||||
} else {
|
||||
//this.local.data[0] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.x;
|
||||
//this.local.data[3] = (GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.x) + this.skew.x;
|
||||
this.local.data[0] = this._cos * this.scale.x;
|
||||
this.local.data[3] = (this._sin * this.scale.x) + this.skew.x;
|
||||
}
|
||||
if(this.parent.texture.flippedY) {
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * -this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * -this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * -this.scale.y;
|
||||
this.local.data[1] = -(this._sin * -this.scale.y) + this.skew.y;
|
||||
} else {
|
||||
//this.local.data[4] = GameMath.cosA[this.rotation + this.rotationOffset] * this.scale.y;
|
||||
//this.local.data[1] = -(GameMath.sinA[this.rotation + this.rotationOffset] * this.scale.y) + this.skew.y;
|
||||
this.local.data[4] = this._cos * this.scale.y;
|
||||
this.local.data[1] = -(this._sin * this.scale.y) + this.skew.y;
|
||||
}
|
||||
// Translate
|
||||
this.local.data[2] = this.parent.x;
|
||||
this.local.data[5] = this.parent.y;
|
||||
};
|
||||
Object.defineProperty(Transform.prototype, "calculatedX", {
|
||||
get: function () {
|
||||
return this.origin.x * this.scale.x;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "calculatedY", {
|
||||
get: function () {
|
||||
return this.origin.y * this.scale.y;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "centerX", {
|
||||
get: /**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
function () {
|
||||
return this.parent.width / 2;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
Object.defineProperty(Transform.prototype, "centerY", {
|
||||
get: /**
|
||||
* The center of the Sprite after taking scaling into consideration
|
||||
*/
|
||||
function () {
|
||||
return this.parent.height / 2;
|
||||
},
|
||||
enumerable: true,
|
||||
configurable: true
|
||||
});
|
||||
return Transform;
|
||||
})();
|
||||
Components.Transform = Transform;
|
||||
@@ -3412,7 +3742,7 @@ var Phaser;
|
||||
var Components = Phaser.Components;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - Vec2Utils
|
||||
*
|
||||
@@ -3707,8 +4037,8 @@ var Phaser;
|
||||
})(Phaser || (Phaser = {}));
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../math/Vec2Utils.ts" />
|
||||
/**
|
||||
* Phaser - Physics - Body
|
||||
@@ -3938,8 +4268,8 @@ var Phaser;
|
||||
var Physics = Phaser.Physics;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/animation/AnimationManager.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
@@ -3997,11 +4327,12 @@ var Phaser;
|
||||
this.y = y;
|
||||
this.z = -1;
|
||||
this.group = null;
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
// No dependencies
|
||||
this.animations = new Phaser.Components.AnimationManager(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.input = new Phaser.Components.Sprite.Input(this);
|
||||
this.events = new Phaser.Components.Sprite.Events(this);
|
||||
this.texture = new Phaser.Components.Texture(this);
|
||||
this.transform = new Phaser.Components.Transform(this);
|
||||
if(key !== null) {
|
||||
this.texture.loadImage(key, false);
|
||||
} else {
|
||||
@@ -4090,10 +4421,13 @@ var Phaser;
|
||||
* Pre-update is called right before update() on each object in the game loop.
|
||||
*/
|
||||
function () {
|
||||
this.transform.update();
|
||||
//this.worldView.x = this.x * this.transform.scrollFactor.x;
|
||||
//this.worldView.y = this.y * this.transform.scrollFactor.y;
|
||||
this.worldView.x = this.x - this.transform.origin.x;
|
||||
this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.x = this.x;
|
||||
this.worldView.y = this.y;
|
||||
//this.worldView.x = this.x - this.transform.origin.x;
|
||||
//this.worldView.y = this.y - this.transform.origin.y;
|
||||
this.worldView.width = this.width;
|
||||
this.worldView.height = this.height;
|
||||
if(this.modified == false && (!this.transform.scale.equals(1) || !this.transform.skew.equals(0) || this.transform.rotation != 0 || this.transform.rotationOffset != 0 || this.texture.flippedX || this.texture.flippedY)) {
|
||||
@@ -4183,9 +4517,9 @@ var Phaser;
|
||||
Phaser.Sprite = Sprite;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
/**
|
||||
@@ -6357,6 +6691,12 @@ var Phaser;
|
||||
*/
|
||||
this.globalSeed = Math.random();
|
||||
this.game = game;
|
||||
GameMath.sinA = [];
|
||||
GameMath.cosA = [];
|
||||
for(var i = 0; i < 360; i++) {
|
||||
GameMath.sinA.push(Math.sin(this.degreesToRadians(i)));
|
||||
GameMath.cosA.push(Math.cos(this.degreesToRadians(i)));
|
||||
}
|
||||
}
|
||||
GameMath.PI = 3.141592653589793;
|
||||
GameMath.PI_2 = 1.5707963267948965;
|
||||
@@ -7626,9 +7966,9 @@ var Phaser;
|
||||
Phaser.CameraFX = CameraFX;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../components/camera/CameraFX.ts" />
|
||||
/// <reference path="../components/Texture.ts" />
|
||||
/// <reference path="../components/Transform.ts" />
|
||||
@@ -9164,8 +9504,8 @@ var Phaser;
|
||||
Phaser.Emitter = Emitter;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - ScrollRegion
|
||||
*
|
||||
@@ -9314,7 +9654,7 @@ var Phaser;
|
||||
Phaser.ScrollRegion = ScrollRegion;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../components/ScrollRegion.ts" />
|
||||
/**
|
||||
* Phaser - ScrollZone
|
||||
@@ -11865,9 +12205,9 @@ var Phaser;
|
||||
Phaser.TweenManager = TweenManager;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - CircleUtils
|
||||
*
|
||||
@@ -12967,7 +13307,7 @@ var Phaser;
|
||||
/// <reference path="Game.ts" />
|
||||
/// <reference path="cameras/CameraManager.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="physics/PhysicsManager.ts" />
|
||||
/**
|
||||
* Phaser - World
|
||||
@@ -13931,7 +14271,7 @@ var Phaser;
|
||||
Phaser.RequestAnimationFrame = RequestAnimationFrame;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/**
|
||||
* Phaser - PointUtils
|
||||
*
|
||||
@@ -14128,7 +14468,7 @@ var Phaser;
|
||||
})();
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Vec2.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/**
|
||||
* Phaser - Pointer
|
||||
*
|
||||
@@ -16235,8 +16575,8 @@ var Phaser;
|
||||
*/
|
||||
function (camera, sprite) {
|
||||
if(sprite.transform.scale.x == 0 || sprite.transform.scale.y == 0 || sprite.texture.alpha < 0.1 || this.inCamera(camera, sprite) == false) {
|
||||
return false;
|
||||
}
|
||||
//return false;
|
||||
}
|
||||
sprite.renderOrderID = this._count;
|
||||
this._count++;
|
||||
// Reset our temp vars
|
||||
@@ -16245,12 +16585,8 @@ var Phaser;
|
||||
this._sy = 0;
|
||||
this._sw = sprite.texture.width;
|
||||
this._sh = sprite.texture.height;
|
||||
this._fx = sprite.transform.scale.x;
|
||||
this._fy = sprite.transform.scale.y;
|
||||
this._sin = 0;
|
||||
this._cos = 1;
|
||||
this._dx = (camera.screenView.x * sprite.transform.scrollFactor.x) + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = (camera.screenView.y * sprite.transform.scrollFactor.y) + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dx = camera.screenView.x + sprite.x - (camera.worldView.x * sprite.transform.scrollFactor.x);
|
||||
this._dy = camera.screenView.y + sprite.y - (camera.worldView.y * sprite.transform.scrollFactor.y);
|
||||
this._dw = sprite.texture.width;
|
||||
this._dh = sprite.texture.height;
|
||||
// Global Composite Ops
|
||||
@@ -16263,14 +16599,6 @@ var Phaser;
|
||||
this._ga = sprite.texture.context.globalAlpha;
|
||||
sprite.texture.context.globalAlpha = sprite.texture.alpha;
|
||||
}
|
||||
// Sprite Flip X
|
||||
if(sprite.texture.flippedX) {
|
||||
this._fx = -sprite.transform.scale.x;
|
||||
}
|
||||
// Sprite Flip Y
|
||||
if(sprite.texture.flippedY) {
|
||||
this._fy = -sprite.transform.scale.y;
|
||||
}
|
||||
if(sprite.animations.currentFrame !== null) {
|
||||
this._sx = sprite.animations.currentFrame.x;
|
||||
this._sy = sprite.animations.currentFrame.y;
|
||||
@@ -16283,28 +16611,20 @@ var Phaser;
|
||||
this._dh = sprite.animations.currentFrame.spriteSourceSizeH;
|
||||
}
|
||||
}
|
||||
// Rotation and Flipped
|
||||
if(sprite.modified) {
|
||||
if(sprite.texture.renderRotation == true && (sprite.rotation !== 0 || sprite.transform.rotationOffset !== 0)) {
|
||||
this._sin = Math.sin(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
this._cos = Math.cos(sprite.game.math.degreesToRadians(sprite.transform.rotationOffset + sprite.rotation));
|
||||
}
|
||||
// setTransform(a, b, c, d, e, f);
|
||||
// a = scale x
|
||||
// b = skew x
|
||||
// c = skew y
|
||||
// d = scale y
|
||||
// e = translate x
|
||||
// f = translate y
|
||||
sprite.texture.context.save();
|
||||
sprite.texture.context.setTransform(this._cos * this._fx, (this._sin * this._fx) + sprite.transform.skew.x, -(this._sin * this._fy) + sprite.transform.skew.y, this._cos * this._fy, this._dx, this._dy);
|
||||
this._dx = -sprite.transform.origin.x;
|
||||
this._dy = -sprite.transform.origin.y;
|
||||
sprite.texture.context.setTransform(sprite.transform.local.data[0], // scale x
|
||||
sprite.transform.local.data[3], // skew x
|
||||
sprite.transform.local.data[1], // skew y
|
||||
sprite.transform.local.data[4], // scale y
|
||||
this._dx, // translate x
|
||||
this._dy);
|
||||
// translate y
|
||||
this._dx = sprite.transform.origin.x * -this._dw;
|
||||
this._dy = sprite.transform.origin.y * -this._dh;
|
||||
} else {
|
||||
if(!sprite.transform.origin.equals(0)) {
|
||||
this._dx -= sprite.transform.origin.x;
|
||||
this._dy -= sprite.transform.origin.y;
|
||||
}
|
||||
this._dx -= (this._dw * sprite.transform.origin.x);
|
||||
this._dy -= (this._dh * sprite.transform.origin.y);
|
||||
}
|
||||
this._sx = Math.round(this._sx);
|
||||
this._sy = Math.round(this._sy);
|
||||
@@ -16421,9 +16741,9 @@ var Phaser;
|
||||
Phaser.CanvasRenderer = CanvasRenderer;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/// <reference path="../gameobjects/Sprite.ts" />
|
||||
/// <reference path="RectangleUtils.ts" />
|
||||
/**
|
||||
@@ -16479,12 +16799,12 @@ var Phaser;
|
||||
})();
|
||||
Phaser.DebugUtils = DebugUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="core/Rectangle.ts" />
|
||||
/// <reference path="geom/Rectangle.ts" />
|
||||
/// <reference path="math/LinkedList.ts" />
|
||||
/// <reference path="math/QuadTree.ts" />
|
||||
/// <reference path="core/Point.ts" />
|
||||
/// <reference path="core/Vec2.ts" />
|
||||
/// <reference path="core/Circle.ts" />
|
||||
/// <reference path="geom/Point.ts" />
|
||||
/// <reference path="math/Vec2.ts" />
|
||||
/// <reference path="geom/Circle.ts" />
|
||||
/// <reference path="core/Group.ts" />
|
||||
/// <reference path="core/Signal.ts" />
|
||||
/// <reference path="core/SignalBinding.ts" />
|
||||
@@ -17015,69 +17335,6 @@ var Phaser;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Polygon
|
||||
*
|
||||
*
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Polygon = (function () {
|
||||
/**
|
||||
*
|
||||
**/
|
||||
function Polygon(game, points) {
|
||||
this.game = game;
|
||||
this.context = game.stage.context;
|
||||
this.points = [];
|
||||
for(var i = 0; i < points.length; i++) {
|
||||
this.points.push(new Phaser.Point().copyFrom(points[i]));
|
||||
}
|
||||
}
|
||||
Polygon.prototype.render = function () {
|
||||
this.context.beginPath();
|
||||
this.context.strokeStyle = 'rgb(255,255,0)';
|
||||
this.context.moveTo(this.points[0].x, this.points[0].y);
|
||||
for(var i = 1; i < this.points.length; i++) {
|
||||
this.context.lineTo(this.points[i].x, this.points[i].y);
|
||||
}
|
||||
this.context.lineTo(this.points[0].x, this.points[0].y);
|
||||
this.context.stroke();
|
||||
this.context.closePath();
|
||||
};
|
||||
return Polygon;
|
||||
})();
|
||||
Phaser.Polygon = Polygon;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../core/Point.ts" />
|
||||
/// <reference path="../core/Rectangle.ts" />
|
||||
/// <reference path="../core/Circle.ts" />
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var PixelUtils = (function () {
|
||||
function PixelUtils() { }
|
||||
PixelUtils.boot = function boot() {
|
||||
PixelUtils.pixelCanvas = document.createElement('canvas');
|
||||
PixelUtils.pixelCanvas.width = 1;
|
||||
PixelUtils.pixelCanvas.height = 1;
|
||||
PixelUtils.pixelContext = PixelUtils.pixelCanvas.getContext('2d');
|
||||
};
|
||||
PixelUtils.getPixel = function getPixel(key, x, y) {
|
||||
// write out a single pixel (won't help with rotated sprites though.. hmm)
|
||||
var imageData = PixelUtils.pixelContext.getImageData(0, 0, 1, 1);
|
||||
return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
|
||||
};
|
||||
return PixelUtils;
|
||||
})();
|
||||
Phaser.PixelUtils = PixelUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - Line
|
||||
*
|
||||
* A Line object is an infinte line through space. The two sets of x/y coordinates define the Line Segment.
|
||||
@@ -17347,6 +17604,189 @@ var Phaser;
|
||||
Phaser.Line = Line;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../math/Vec2.ts" />
|
||||
/// <reference path="../math/Mat3.ts" />
|
||||
/**
|
||||
* Phaser - Mat3Utils
|
||||
*
|
||||
* A collection of methods useful for manipulating and performing operations on Mat3 objects.
|
||||
*
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var Mat3Utils = (function () {
|
||||
function Mat3Utils() { }
|
||||
Mat3Utils.transpose = /**
|
||||
* Transpose the values of a Mat3
|
||||
**/
|
||||
function transpose(source, dest) {
|
||||
if (typeof dest === "undefined") { dest = null; }
|
||||
if(dest === null) {
|
||||
// Transpose ourselves
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a12 = source.data[5];
|
||||
source.data[1] = source.data[3];
|
||||
source.data[2] = source.data[6];
|
||||
source.data[3] = a01;
|
||||
source.data[5] = source.data[7];
|
||||
source.data[6] = a02;
|
||||
source.data[7] = a12;
|
||||
} else {
|
||||
source.data[0] = dest.data[0];
|
||||
source.data[1] = dest.data[3];
|
||||
source.data[2] = dest.data[6];
|
||||
source.data[3] = dest.data[1];
|
||||
source.data[4] = dest.data[4];
|
||||
source.data[5] = dest.data[7];
|
||||
source.data[6] = dest.data[2];
|
||||
source.data[7] = dest.data[5];
|
||||
source.data[8] = dest.data[8];
|
||||
}
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.invert = /**
|
||||
* Inverts a Mat3
|
||||
**/
|
||||
function invert(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
var b01 = a22 * a11 - a12 * a21;
|
||||
var b11 = -a22 * a10 + a12 * a20;
|
||||
var b21 = a21 * a10 - a11 * a20;
|
||||
// Determinant
|
||||
var det = a00 * b01 + a01 * b11 + a02 * b21;
|
||||
if(!det) {
|
||||
return null;
|
||||
}
|
||||
det = 1.0 / det;
|
||||
source.data[0] = b01 * det;
|
||||
source.data[1] = (-a22 * a01 + a02 * a21) * det;
|
||||
source.data[2] = (a12 * a01 - a02 * a11) * det;
|
||||
source.data[3] = b11 * det;
|
||||
source.data[4] = (a22 * a00 - a02 * a20) * det;
|
||||
source.data[5] = (-a12 * a00 + a02 * a10) * det;
|
||||
source.data[6] = b21 * det;
|
||||
source.data[7] = (-a21 * a00 + a01 * a20) * det;
|
||||
source.data[8] = (a11 * a00 - a01 * a10) * det;
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.adjoint = /**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
function adjoint(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
source.data[0] = (a11 * a22 - a12 * a21);
|
||||
source.data[1] = (a02 * a21 - a01 * a22);
|
||||
source.data[2] = (a01 * a12 - a02 * a11);
|
||||
source.data[3] = (a12 * a20 - a10 * a22);
|
||||
source.data[4] = (a00 * a22 - a02 * a20);
|
||||
source.data[5] = (a02 * a10 - a00 * a12);
|
||||
source.data[6] = (a10 * a21 - a11 * a20);
|
||||
source.data[7] = (a01 * a20 - a00 * a21);
|
||||
source.data[8] = (a00 * a11 - a01 * a10);
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.determinant = /**
|
||||
* Calculates the adjugate of a Mat3
|
||||
**/
|
||||
function determinant(source) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
|
||||
};
|
||||
Mat3Utils.multiply = /**
|
||||
* Multiplies two Mat3s
|
||||
**/
|
||||
function multiply(source, b) {
|
||||
var a00 = source.data[0];
|
||||
var a01 = source.data[1];
|
||||
var a02 = source.data[2];
|
||||
var a10 = source.data[3];
|
||||
var a11 = source.data[4];
|
||||
var a12 = source.data[5];
|
||||
var a20 = source.data[6];
|
||||
var a21 = source.data[7];
|
||||
var a22 = source.data[8];
|
||||
var b00 = b.data[0];
|
||||
var b01 = b.data[1];
|
||||
var b02 = b.data[2];
|
||||
var b10 = b.data[3];
|
||||
var b11 = b.data[4];
|
||||
var b12 = b.data[5];
|
||||
var b20 = b.data[6];
|
||||
var b21 = b.data[7];
|
||||
var b22 = b.data[8];
|
||||
source.data[0] = b00 * a00 + b01 * a10 + b02 * a20;
|
||||
source.data[1] = b00 * a01 + b01 * a11 + b02 * a21;
|
||||
source.data[2] = b00 * a02 + b01 * a12 + b02 * a22;
|
||||
source.data[3] = b10 * a00 + b11 * a10 + b12 * a20;
|
||||
source.data[4] = b10 * a01 + b11 * a11 + b12 * a21;
|
||||
source.data[5] = b10 * a02 + b11 * a12 + b12 * a22;
|
||||
source.data[6] = b20 * a00 + b21 * a10 + b22 * a20;
|
||||
source.data[7] = b20 * a01 + b21 * a11 + b22 * a21;
|
||||
source.data[8] = b20 * a02 + b21 * a12 + b22 * a22;
|
||||
return source;
|
||||
};
|
||||
Mat3Utils.fromQuaternion = function fromQuaternion() {
|
||||
};
|
||||
Mat3Utils.normalFromMat4 = function normalFromMat4() {
|
||||
};
|
||||
return Mat3Utils;
|
||||
})();
|
||||
Phaser.Mat3Utils = Mat3Utils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/// <reference path="../geom/Point.ts" />
|
||||
/// <reference path="../geom/Rectangle.ts" />
|
||||
/// <reference path="../geom/Circle.ts" />
|
||||
/**
|
||||
* Phaser - PixelUtils
|
||||
*
|
||||
* A collection of methods useful for manipulating pixels.
|
||||
*/
|
||||
var Phaser;
|
||||
(function (Phaser) {
|
||||
var PixelUtils = (function () {
|
||||
function PixelUtils() { }
|
||||
PixelUtils.boot = function boot() {
|
||||
PixelUtils.pixelCanvas = document.createElement('canvas');
|
||||
PixelUtils.pixelCanvas.width = 1;
|
||||
PixelUtils.pixelCanvas.height = 1;
|
||||
PixelUtils.pixelContext = PixelUtils.pixelCanvas.getContext('2d');
|
||||
};
|
||||
PixelUtils.getPixel = function getPixel(key, x, y) {
|
||||
// write out a single pixel (won't help with rotated sprites though.. hmm)
|
||||
var imageData = PixelUtils.pixelContext.getImageData(0, 0, 1, 1);
|
||||
return Phaser.ColorUtils.getColor32(imageData.data[3], imageData.data[0], imageData.data[1], imageData.data[2]);
|
||||
};
|
||||
return PixelUtils;
|
||||
})();
|
||||
Phaser.PixelUtils = PixelUtils;
|
||||
})(Phaser || (Phaser = {}));
|
||||
/// <reference path="../Game.ts" />
|
||||
/**
|
||||
* Phaser - IntersectResult
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user