function Item(engine, tilemap, x, y, graphic_id) { _.extend(this, { uid: _.uniqueId(), engine: engine, tilemap: tilemap, x: x, y: y, graphic: loader.get(graphic_id), bounding_box: {left: 1, right: 15, top: 0, bottom: 15} }); }
play: function(id) { var player = this.get_next_player(), audio = loader.get(id), src = id; if (audio !== undefined) { src = audio.src; } player.src = src; player.play(); },
function Enemy(engine, x, y, dir, speed) { Entity.call(this, engine); return _.extend(this, { dir: dir, speed: speed, x: x, y: y, name: 'enemy', tileset: new Tileset(loader.get('enemy'), 16, 16, 0, 0, {}), frame: 0, tile: 0, dir: dir, bounding_box: {left: 4, top: 0, right: 11, bottom: 15}, standing: false, frame: 0, tile: 0, shooting: false, has_laser: false }); }
function Player(engine) { Entity.call(this, engine); return _.extend(this, { x: 48, y: 48, vy: 0, standing: false, tileset: new Tileset(loader.get('player'), 16, 16, 0, 0, {}), frame: 0, tile: 0, dir: util.RIGHT, bounding_box: {left: 4, top: 0, right: 11, bottom: 15}, shooting: false, has_laser: false, num_jumps: 2, health: 3, taking_damage: false, _taking_damage_frame: 8, name: 'player', powerups: { double_jump: false } }); }
render: function(ctx) { var tileset = loader.get(this.tileset()); ut.renderMap(ctx, this.tiles(), tileset, this.width, this.height); },
play_once: function(id) { loader.get(id).play(); }