mirror of
https://github.com/wassname/phaser.git
synced 2026-08-15 12:45:11 +08:00
Updated DynamicTexture.setPixel, added GameMath.shuffleArray, fixed Animation.frame and created a few new tests
This commit is contained in:
@@ -86,8 +86,9 @@ module Phaser {
|
||||
* @param frameRate {number} The speed in frames per second that the animation should play at (e.g. 60 fps).
|
||||
* @param loop {boolean} Whether or not the animation is looped or just plays once.
|
||||
* @param useNumericIndex {boolean} Use number indexes instead of string indexes?
|
||||
* @return {Animation} The Animation that was created
|
||||
*/
|
||||
public add(name: string, frames: any[] = null, frameRate: number = 60, loop: bool = false, useNumericIndex: bool = true) {
|
||||
public add(name: string, frames: any[] = null, frameRate: number = 60, loop: bool = false, useNumericIndex: bool = true): Animation {
|
||||
|
||||
if (this._frameData == null)
|
||||
{
|
||||
@@ -117,6 +118,8 @@ module Phaser {
|
||||
this.currentAnim = this._anims[name];
|
||||
this.currentFrame = this.currentAnim.currentFrame;
|
||||
|
||||
return this._anims[name];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -117,7 +117,7 @@ module Phaser {
|
||||
* @param y {number} Y position of the target pixel.
|
||||
* @param color {number} Native integer with color value. (format: 0xRRGGBB)
|
||||
*/
|
||||
public setPixel(x: number, y: number, color: number) {
|
||||
public setPixel(x: number, y: number, color: string) {
|
||||
|
||||
this.context.fillStyle = color;
|
||||
this.context.fillRect(x, y, 1, 1);
|
||||
|
||||
+1
-1
@@ -470,7 +470,7 @@ module Phaser {
|
||||
this.onDestroyCallback.call(this.callbackContext);
|
||||
}
|
||||
|
||||
this.input.reset();
|
||||
this.input.reset(true);
|
||||
|
||||
// Prototype?
|
||||
if (typeof state === 'function')
|
||||
|
||||
@@ -1003,6 +1003,24 @@ module Phaser {
|
||||
return ax * bx + ay * by;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shuffles the data in the given array into a new order
|
||||
* @param array The array to shuffle
|
||||
* @return The array
|
||||
*/
|
||||
public shuffleArray(array) {
|
||||
|
||||
for (var i = array.length - 1; i > 0; i--)
|
||||
{
|
||||
var j = Math.floor(Math.random() * (i + 1));
|
||||
var temp = array[i];
|
||||
array[i] = array[j];
|
||||
array[j] = temp;
|
||||
}
|
||||
|
||||
return array;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -29,7 +29,6 @@ module Phaser {
|
||||
this._game = game;
|
||||
|
||||
this.canvas = <HTMLCanvasElement> document.createElement('canvas');
|
||||
this.canvas.id = 'bob';
|
||||
this.canvas.width = width;
|
||||
this.canvas.height = height;
|
||||
|
||||
@@ -212,6 +211,9 @@ module Phaser {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the DOM offset values of the given element
|
||||
*/
|
||||
private getOffset(element): MicroPoint {
|
||||
|
||||
var box = element.getBoundingClientRect();
|
||||
|
||||
@@ -120,8 +120,8 @@ module Phaser {
|
||||
public lineColor: string = 'rgb(0,255,0)';
|
||||
|
||||
/**
|
||||
* Width of outline. (default is 1)
|
||||
* @type {number}
|
||||
* The color of the filled area in rgb or rgba string format
|
||||
* @type {string} Defaults to rgb(0,100,0) - a green color
|
||||
*/
|
||||
public fillColor: string = 'rgb(0,100,0)';
|
||||
|
||||
@@ -341,13 +341,6 @@ module Phaser {
|
||||
this._dw = this.bounds.width * this.scale.x;
|
||||
this._dh = this.bounds.height * this.scale.y;
|
||||
|
||||
// Circles are drawn center based
|
||||
if (this.type == GeomSprite.CIRCLE)
|
||||
{
|
||||
this._dx += this.circle.radius;
|
||||
this._dy += this.circle.radius;
|
||||
}
|
||||
|
||||
// Apply camera difference
|
||||
if (this.scrollFactor.x !== 1.0 || this.scrollFactor.y !== 1.0)
|
||||
{
|
||||
@@ -391,7 +384,11 @@ module Phaser {
|
||||
{
|
||||
this.context.beginPath();
|
||||
this.context.arc(this._dx, this._dy, this.circle.radius, 0, Math.PI * 2);
|
||||
this.context.stroke();
|
||||
|
||||
if (this.renderOutline)
|
||||
{
|
||||
this.context.stroke();
|
||||
}
|
||||
|
||||
if (this.renderFill)
|
||||
{
|
||||
|
||||
@@ -33,6 +33,7 @@ module Phaser {
|
||||
|
||||
if (key !== null)
|
||||
{
|
||||
this.cacheKey = key;
|
||||
this.loadGraphic(key);
|
||||
}
|
||||
else
|
||||
@@ -70,6 +71,11 @@ module Phaser {
|
||||
*/
|
||||
public animations: AnimationManager;
|
||||
|
||||
/**
|
||||
* The cache key that was used for this texture (if any)
|
||||
*/
|
||||
public cacheKey: string;
|
||||
|
||||
/**
|
||||
* Render bound of this sprite for debugging? (default to false)
|
||||
* @type {boolean}
|
||||
@@ -95,7 +101,7 @@ module Phaser {
|
||||
public renderDebugPointColor: string = 'rgba(255,255,255,1)';
|
||||
|
||||
/**
|
||||
* Flip the graphic vertically? (default to false)
|
||||
* Flip the graphic horizontally? (defaults to false)
|
||||
* @type {boolean}
|
||||
*/
|
||||
public flipped: bool = false;
|
||||
|
||||
@@ -470,6 +470,27 @@ module Phaser {
|
||||
|
||||
}
|
||||
|
||||
public isConsoleOpen(): bool {
|
||||
|
||||
if (window.console && window.console['firebug'])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (window.console)
|
||||
{
|
||||
console.profile();
|
||||
console.profileEnd();
|
||||
|
||||
if (console.clear) console.clear();
|
||||
|
||||
return console['profiles'].length > 0;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all informations of host device.
|
||||
* @return {string} Informations in a string.
|
||||
|
||||
+10
-4
@@ -114,14 +114,15 @@ module Phaser {
|
||||
public onComplete: Phaser.Signal;
|
||||
|
||||
/**
|
||||
* Config the tween result.
|
||||
* Configure the Tween
|
||||
* @param properties {object} Propertis you want to tween.
|
||||
* @param [duration] {number} duration of this tween.
|
||||
* @param ease {any} Easing function.
|
||||
* @param autoStart {boolean} Whether this tween will start automatically or not.
|
||||
* @param [ease] {any} Easing function.
|
||||
* @param [autoStart] {boolean} Whether this tween will start automatically or not.
|
||||
* @param [delay] {number} delay before this tween will start, defaults to 0 (no delay)
|
||||
* @return {Tween} Itself.
|
||||
*/
|
||||
public to(properties, duration?: number = 1000, ease?: any = null, autoStart?: bool = false) {
|
||||
public to(properties, duration?: number = 1000, ease?: any = null, autoStart?: bool = false, delay?:number = 0) {
|
||||
|
||||
this._duration = duration;
|
||||
|
||||
@@ -133,6 +134,11 @@ module Phaser {
|
||||
this._easingFunction = ease;
|
||||
}
|
||||
|
||||
if (delay > 0)
|
||||
{
|
||||
this._delayTime = delay;
|
||||
}
|
||||
|
||||
if (autoStart === true)
|
||||
{
|
||||
return this.start();
|
||||
|
||||
@@ -44,21 +44,25 @@ module Phaser {
|
||||
* Local private reference to game.
|
||||
*/
|
||||
private _game: Game;
|
||||
|
||||
/**
|
||||
* Local private reference to its owner sprite.
|
||||
* @type {Sprite}
|
||||
*/
|
||||
private _parent: Sprite;
|
||||
|
||||
/**
|
||||
* Animation frame container.
|
||||
* @type {number[]}
|
||||
*/
|
||||
private _frames: number[];
|
||||
|
||||
/**
|
||||
* Frame data of this animation.(parsed from sprite sheet)
|
||||
* @type {FrameData}
|
||||
*/
|
||||
private _frameData: FrameData;
|
||||
|
||||
/**
|
||||
* Index of current frame.
|
||||
* @type {number}
|
||||
@@ -70,6 +74,7 @@ module Phaser {
|
||||
* @type number
|
||||
*/
|
||||
private _timeLastFrame: number;
|
||||
|
||||
/**
|
||||
* Time when this will switch to next frame (in ms).
|
||||
* @type number
|
||||
@@ -81,6 +86,7 @@ module Phaser {
|
||||
* @type {string}
|
||||
*/
|
||||
public name: string;
|
||||
|
||||
/**
|
||||
* Currently played frame instance.
|
||||
* @type {Frame}
|
||||
@@ -92,16 +98,19 @@ module Phaser {
|
||||
* @type {boolean}
|
||||
*/
|
||||
public isFinished: bool;
|
||||
|
||||
/**
|
||||
* Whethor or not this animation is currently playing.
|
||||
* @type {boolean}
|
||||
*/
|
||||
public isPlaying: bool;
|
||||
|
||||
/**
|
||||
* Whether or not the animation is looped.
|
||||
* @type {boolean}
|
||||
*/
|
||||
public looped: bool;
|
||||
|
||||
/**
|
||||
* Time between frames in ms.
|
||||
* @type {number}
|
||||
@@ -113,7 +122,16 @@ module Phaser {
|
||||
}
|
||||
|
||||
public get frame(): number {
|
||||
return this._frameIndex;
|
||||
|
||||
if (this.currentFrame !== null)
|
||||
{
|
||||
return this.currentFrame.index;
|
||||
}
|
||||
else
|
||||
{
|
||||
return this._frameIndex;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public set frame(value: number) {
|
||||
|
||||
@@ -42,6 +42,9 @@ module Phaser {
|
||||
this.onTap = new Phaser.Signal();
|
||||
this.onHold = new Phaser.Signal();
|
||||
|
||||
this.point = new Point();
|
||||
this.circle = new Circle(0, 0, 44);
|
||||
|
||||
this.currentPointers = 0;
|
||||
|
||||
}
|
||||
@@ -111,6 +114,21 @@ module Phaser {
|
||||
*/
|
||||
public gestures: Gestures;
|
||||
|
||||
/**
|
||||
* A Point object representing the x/y screen coordinates of the Pointer.
|
||||
* @property point
|
||||
* @type {Point}
|
||||
**/
|
||||
public point: Point = null;
|
||||
|
||||
/**
|
||||
* A Circle object centered on the x/y screen coordinates of the Input.
|
||||
* Default size of 44px (Apples recommended "finger tip" size) but can be changed to anything
|
||||
* @property circle
|
||||
* @type {Circle}
|
||||
**/
|
||||
public circle: Circle = null;
|
||||
|
||||
/**
|
||||
* X coordinate of the most recent Pointer event
|
||||
* @type {Number}
|
||||
@@ -371,7 +389,12 @@ module Phaser {
|
||||
|
||||
}
|
||||
|
||||
public reset() {
|
||||
/**
|
||||
* Reset all of the Pointers and Input states
|
||||
* @method reset
|
||||
* @param hard {Boolean} A soft reset (hard = false) won't reset any signals that might be bound. A hard reset will.
|
||||
**/
|
||||
public reset(hard?: bool = false) {
|
||||
|
||||
this.keyboard.reset();
|
||||
|
||||
@@ -386,13 +409,17 @@ module Phaser {
|
||||
this.pointer9.reset();
|
||||
this.pointer10.reset();
|
||||
|
||||
this.onDown = new Phaser.Signal();
|
||||
this.onUp = new Phaser.Signal();
|
||||
this.onTap = new Phaser.Signal();
|
||||
this.onHold = new Phaser.Signal();
|
||||
|
||||
this.currentPointers = 0;
|
||||
|
||||
if (hard == true)
|
||||
{
|
||||
this.onDown = new Phaser.Signal();
|
||||
this.onUp = new Phaser.Signal();
|
||||
this.onTap = new Phaser.Signal();
|
||||
this.onHold = new Phaser.Signal();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -370,12 +370,16 @@ module Phaser {
|
||||
this.y = this.pageY - this._game.stage.offset.y;
|
||||
|
||||
this.pointB.setTo(this.x, this.y);
|
||||
this.circle.setTo(this.x, this.y, 44);
|
||||
this.circle.x = this.x;
|
||||
this.circle.y = this.y;
|
||||
|
||||
if (this._game.input.multiInputOverride == Input.MOUSE_OVERRIDES_TOUCH || this._game.input.multiInputOverride == Input.MOUSE_TOUCH_COMBINE || (this._game.input.multiInputOverride == Input.TOUCH_OVERRIDES_MOUSE && this._game.input.currentPointers == 0))
|
||||
{
|
||||
this._game.input.x = this.x * this._game.input.scaleX;
|
||||
this._game.input.y = this.y * this._game.input.scaleY;
|
||||
this._game.input.point.setTo(this._game.input.x, this._game.input.y);
|
||||
this._game.input.circle.x = this._game.input.x;
|
||||
this._game.input.circle.y = this._game.input.y;
|
||||
}
|
||||
|
||||
return this;
|
||||
@@ -507,16 +511,16 @@ module Phaser {
|
||||
}
|
||||
|
||||
this._game.stage.context.beginPath();
|
||||
this._game.stage.context.arc(this.x, this.y, this.circle.radius * 2, 0, Math.PI * 2);
|
||||
this._game.stage.context.arc(this.x, this.y, this.circle.radius, 0, Math.PI * 2);
|
||||
|
||||
if (this.active)
|
||||
{
|
||||
this._game.stage.context.fillStyle = 'rgb(0,255,0)';
|
||||
this._game.stage.context.fillStyle = 'rgba(0,255,0,0.5)';
|
||||
this._game.stage.context.strokeStyle = 'rgb(0,255,0)';
|
||||
}
|
||||
else
|
||||
{
|
||||
this._game.stage.context.fillStyle = 'rgb(100,0,0)';
|
||||
this._game.stage.context.fillStyle = 'rgba(255,0,0,0.5)';
|
||||
this._game.stage.context.strokeStyle = 'rgb(100,0,0)';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user