mirror of
https://github.com/wassname/phaser.git
synced 2026-08-17 11:23:42 +08:00
Added in frameName support for animations and easy setting of sprites born from a texture atlas (all for you Jesse!)
This commit is contained in:
@@ -41,18 +41,9 @@ class AnimationLoader {
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
|
||||
//console.log('\n\nSpriteSheet Data');
|
||||
//console.log('Image Size:', width, 'x', height);
|
||||
//console.log('Frame Size:', frameWidth, 'x', frameHeight);
|
||||
//console.log('Start X/Y:', x, 'x', y);
|
||||
//console.log('Frames (Total: ' + total + ')');
|
||||
//console.log('-------------');
|
||||
|
||||
for (var i = 0; i < total; i++)
|
||||
{
|
||||
data.addFrame(new Frame(x, y, frameWidth, frameHeight));
|
||||
|
||||
//console.log('Frame', i, '=', x, y);
|
||||
data.addFrame(new Frame(x, y, frameWidth, frameHeight, ''));
|
||||
|
||||
x += frameWidth;
|
||||
|
||||
@@ -80,9 +71,8 @@ class AnimationLoader {
|
||||
|
||||
for (var i = 0; i < frames.length; i++)
|
||||
{
|
||||
newFrame = data.addFrame(new Frame(frames[i].frame.x, frames[i].frame.y, frames[i].frame.w, frames[i].frame.h));
|
||||
newFrame = data.addFrame(new Frame(frames[i].frame.x, frames[i].frame.y, frames[i].frame.w, frames[i].frame.h, frames[i].filename));
|
||||
newFrame.setTrim(frames[i].trimmed, frames[i].sourceSize.w, frames[i].sourceSize.h, frames[i].spriteSourceSize.x, frames[i].spriteSourceSize.y, frames[i].spriteSourceSize.w, frames[i].spriteSourceSize.h);
|
||||
newFrame.filename = frames[i].filename;
|
||||
}
|
||||
|
||||
return data;
|
||||
|
||||
@@ -6,12 +6,13 @@
|
||||
|
||||
class Frame {
|
||||
|
||||
constructor(x: number, y: number, width: number, height: number) {
|
||||
constructor(x: number, y: number, width: number, height: number, name: string) {
|
||||
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.name = name;
|
||||
|
||||
this.rotated = false;
|
||||
this.trimmed = false;
|
||||
@@ -24,8 +25,11 @@ class Frame {
|
||||
public width: number;
|
||||
public height: number;
|
||||
|
||||
// Useful for Texture Atlas files
|
||||
public filename: string;
|
||||
// Useful for Sprite Sheets
|
||||
public index: number;
|
||||
|
||||
// Useful for Texture Atlas files (is set to the filename value)
|
||||
public name: string = '';
|
||||
|
||||
// Rotated? (not yet implemented)
|
||||
public rotated: bool = false;
|
||||
|
||||
@@ -9,10 +9,12 @@ class FrameData {
|
||||
constructor() {
|
||||
|
||||
this._frames = [];
|
||||
this._frameNames = [];
|
||||
|
||||
}
|
||||
|
||||
private _frames: Frame[];
|
||||
private _frameNames;
|
||||
|
||||
public get total(): number {
|
||||
return this._frames.length;
|
||||
@@ -20,17 +22,35 @@ class FrameData {
|
||||
|
||||
public addFrame(frame: Frame):Frame {
|
||||
|
||||
frame.index = this._frames.length;
|
||||
|
||||
this._frames.push(frame);
|
||||
|
||||
if (frame.name !== '')
|
||||
{
|
||||
this._frameNames[frame.name] = frame.index;
|
||||
}
|
||||
|
||||
return frame;
|
||||
|
||||
}
|
||||
|
||||
public getFrame(frame: number):Frame {
|
||||
public getFrame(index: number):Frame {
|
||||
|
||||
if (this._frames[frame])
|
||||
if (this._frames[index])
|
||||
{
|
||||
return this._frames[frame];
|
||||
return this._frames[index];
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public getFrameByName(name: string):Frame {
|
||||
|
||||
if (this._frameNames[name] >= 0)
|
||||
{
|
||||
return this._frames[this._frameNames[name]];
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -23,7 +23,7 @@ class Keyboard {
|
||||
|
||||
public onKeyDown(event: KeyboardEvent) {
|
||||
|
||||
event.preventDefault();
|
||||
//event.preventDefault();
|
||||
|
||||
if (!this._keys[event.keyCode])
|
||||
{
|
||||
@@ -39,7 +39,7 @@ class Keyboard {
|
||||
|
||||
public onKeyUp(event: KeyboardEvent) {
|
||||
|
||||
event.preventDefault();
|
||||
//event.preventDefault();
|
||||
|
||||
if (!this._keys[event.keyCode])
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user