mirror of
https://github.com/Cola-Echo/memory-manager-concurrent.git
synced 2026-06-09 09:15:51 +00:00
Update memory-manager-concurrent
This commit is contained in:
103
games/mario/super-mario-bros/artifacts.js
Normal file
103
games/mario/super-mario-bros/artifacts.js
Normal file
@@ -0,0 +1,103 @@
|
||||
(function() {
|
||||
|
||||
/**
|
||||
*
|
||||
* Backbone Game Engine - An elementary HTML5 canvas game engine using Backbone.
|
||||
*
|
||||
* Copyright (c) 2014 Martin Drapeau
|
||||
* https://github.com/martindrapeau/backbone-game-engine
|
||||
*
|
||||
*/
|
||||
|
||||
Backbone.Pennie = Backbone.AnimatedTile.extend({
|
||||
defaults: {
|
||||
name: "pennie",
|
||||
type: "artifact",
|
||||
width: 32,
|
||||
height: 32,
|
||||
spriteSheet: "tiles",
|
||||
state: "idle",
|
||||
collision: true
|
||||
},
|
||||
animations: {
|
||||
idle: {
|
||||
sequences: [52, 52, 53, 54, 53, 52],
|
||||
delay: 50
|
||||
}
|
||||
},
|
||||
initialize: function(attributes, options) {
|
||||
Backbone.AnimatedTile.prototype.initialize.apply(this, arguments);
|
||||
this.on("hit", this.hit, this);
|
||||
this.on("squish", this.hit, this);
|
||||
},
|
||||
hit: function(sprite, dir, dir2) {
|
||||
if (sprite.get("hero")) {
|
||||
sprite.trigger("hit", this);
|
||||
_.defer(this.world.remove, this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Backbone.PennieUg = Backbone.Pennie.extend({
|
||||
defaults: _.extend(_.deepClone(Backbone.Pennie.prototype.defaults), {
|
||||
name: "pennie-ug"
|
||||
}),
|
||||
animations: _.deepClone(Backbone.Pennie.prototype.animations)
|
||||
});
|
||||
Backbone.PennieUg.prototype.animations.idle.sequences = [168, 168, 169, 170, 169, 168];
|
||||
|
||||
Backbone.Lever = Backbone.Pennie.extend({
|
||||
defaults: _.extend(_.deepClone(Backbone.Pennie.prototype.defaults), {
|
||||
name: "lever"
|
||||
}),
|
||||
animations: _.deepClone(Backbone.Pennie.prototype.animations),
|
||||
hit: function(sprite, dir, dir2) {}
|
||||
});
|
||||
Backbone.Lever.prototype.animations.idle.sequences = [55, 55, 56, 57, 56, 55];
|
||||
|
||||
Backbone.FlyingPennie = Backbone.Sprite.extend({
|
||||
defaults: {
|
||||
name: "flying-pennie",
|
||||
type: "decoration",
|
||||
width: 32,
|
||||
height: 32,
|
||||
spriteSheet: "tiles",
|
||||
state: "anim",
|
||||
collision: false
|
||||
},
|
||||
animations: {
|
||||
anim: {
|
||||
sequences: [
|
||||
{frame: 52, x: 0, y: -32, scaleX: 1.00, scaleY: 1},
|
||||
{frame: 52, x: 0, y: -64, scaleX: 0.50, scaleY: 1},
|
||||
{frame: 53, x: 0, y: -90, scaleX: 0.50, scaleY: 1},
|
||||
{frame: 53, x: 0, y: -128, scaleX: 1.00, scaleY: 1},
|
||||
{frame: 53, x: 0, y: -128, scaleX: 0.50, scaleY: 1},
|
||||
{frame: 52, x: 0, y: -112, scaleX: 0.50, scaleY: 1},
|
||||
{frame: 52, x: 0, y: -90, scaleX: 1.00, scaleY: 1},
|
||||
{frame: 52, x: 0, y: -80, scaleX: 0.50, scaleY: 1},
|
||||
{frame: 53, x: 0, y: -80, scaleX: 0.50, scaleY: 1}
|
||||
],
|
||||
delay: 50
|
||||
}
|
||||
},
|
||||
initialize: function(attributes, options) {
|
||||
options || (options = {});
|
||||
this.world = options.world;
|
||||
this.lastSequenceChangeTime = 0;
|
||||
},
|
||||
update: function(dt) {
|
||||
Backbone.Sprite.prototype.update.call(this, arguments);
|
||||
var animation = this.getAnimation(),
|
||||
sequenceIndex = this.get("sequenceIndex");
|
||||
|
||||
if (sequenceIndex >= animation.sequences.length-1) {
|
||||
_.defer(this.world.remove, this);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
}).call(this);
|
||||
Reference in New Issue
Block a user