function MarioWalkingSprite(x, y, canvas) {
	MarioWalkingSprite.baseConstructor.call(this, x, y, canvas);
	this.
		 setBaseSpriteSize(16, 16).
		 setPixelSize(2).
		 setColorMap(MarioWalkingSprite.COLORMAP).
	 	 addToAnimationSequenceByLabel('walk1').
	 	 addToAnimationSequenceByLabel('walk2').
	 	 addToAnimationSequenceByLabel('walk3').
	 	 addToAnimationSequenceByLabel('walk2').
		 addSpriteMap('walk1', MarioWalkingSprite.SPRITEMAP_WALK1).
		 addSpriteMap('walk2', MarioWalkingSprite.SPRITEMAP_WALK2).
		 addSpriteMap('walk3', MarioWalkingSprite.SPRITEMAP_WALK3).
		 setAnimationToLoop(true).
		 setFrameRate(10).
		 setFrameRateStep(3);
}

extend(MarioWalkingSprite, AnimatedSprite);

MarioWalkingSprite.COLORMAP = { 0: null, 1: [248, 56, 0, 255], 2: [172, 124, 0, 255], 3: [255, 160, 68, 255] }

MarioWalkingSprite.prototype = AnimatedSprite.prototype;

MarioWalkingSprite.SPRITEMAP_WALK1 =
	[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
	 [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
	 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
	 [0, 0, 0, 0, 2, 2, 2, 3, 3, 2, 3, 3, 0, 0, 0, 0],
	 [0, 0, 0, 2, 3, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0, 0],
	 [0, 0, 0, 2, 3, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0],
	 [0, 0, 0, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0],
	 [0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
	 [0, 0, 0, 0, 2, 2, 2, 2, 1, 2, 2, 3, 3, 0, 0, 0],
	 [0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0],
	 [0, 0, 3, 3, 1, 2, 2, 2, 2, 2, 3, 3, 3, 0, 0, 0],
	 [0, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
	 [0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
	 [0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
	 [0, 2, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0],
 	 [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0]];

MarioWalkingSprite.SPRITEMAP_WALK2 =
	[[0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0],
	 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0],
	 [0, 0, 0, 2, 2, 2, 3, 3, 2, 3, 3, 0, 0, 0, 0, 0],
	 [0, 0, 2, 3, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0, 0, 0],
	 [0, 0, 2, 3, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0, 0],
	 [0, 0, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0, 0],
	 [0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0],
	 [0, 0, 0, 2, 2, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0],
	 [0, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0],
	 [0, 0, 2, 2, 2, 1, 1, 3, 1, 1, 3, 3, 0, 0, 0, 0],
	 [0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0],
	 [0, 0, 1, 2, 2, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0],
	 [0, 0, 0, 1, 2, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0],
	 [0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0],
	 [0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0],
 	 [0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0]];

MarioWalkingSprite.SPRITEMAP_WALK3 =
	[[0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0],
	 [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
	 [0, 0, 0, 0, 2, 2, 2, 3, 3, 2, 3, 3, 0, 0, 0, 0],
	 [0, 0, 0, 2, 3, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0, 0],
	 [0, 0, 0, 2, 3, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 0],
	 [0, 0, 0, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 0],
	 [0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0],
	 [0, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0],
	 [3, 3, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3],
	 [3, 3, 3, 3, 2, 2, 1, 3, 1, 1, 1, 2, 2, 3, 3, 3],
	 [3, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 0],
	 [0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0],
	 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0],
	 [0, 2, 2, 1, 1, 1, 1, 0, 0, 1, 1, 1, 2, 2, 2, 0],
	 [0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
     [0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]];
