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:
Richard Davey
2013-04-15 15:42:13 +01:00
parent ebf83609ae
commit f4bf6c607f
12 changed files with 187 additions and 73 deletions
+2 -12
View File
@@ -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;
+7 -3
View File
@@ -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;
+23 -3
View File
@@ -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;
+2 -2
View File
@@ -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])
{