Skip to content

Commit

Permalink
Add levels transitions
Browse files Browse the repository at this point in the history
  • Loading branch information
voithos committed Dec 26, 2013
1 parent 6b6aa5a commit 26b2ba6
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 18 deletions.
4 changes: 3 additions & 1 deletion src/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,7 @@ module.exports = {
FLOATING_TILES: [2, 14, 26, 41, 44, 46, 53, 56, 58, 65, 68, 70, 71, 75, 77, 80, 82, 87, 99, 111, 117, 119, 126, 145],
UPWARD_SLOPE_TILES: [29, 32, 34, 42, 63, 105],
DOWNWARD_SLOPE_TILES: [5, 8, 10, 30, 39, 95],
BACKGROUND_TILES: [1, 6, 13, 18, 19, 21, 25, 31, 33, 37, 40, 45, 52, 57, 64, 69, 76, 81, 149]
BACKGROUND_TILES: [1, 6, 13, 18, 19, 21, 25, 31, 33, 37, 40, 45, 52, 57, 64, 69, 76, 81, 149],

GOAL_TILE: 57
};
11 changes: 10 additions & 1 deletion src/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -261,13 +261,18 @@ var powerblocks = {
module.exports = {
levels: {
level1: {
nextState: 'level2',
width: 2100,
height: 840,
clouds: 15,
player: {
x: 150,
y: 580
},
goal: {
x: 1961,
y: 490
},
items: [
instance(powergems.water, {
x: 1085,
Expand All @@ -276,7 +281,7 @@ module.exports = {
],
backgroundItems: [
instance(backgroundItems.goalStar, {
x: 1960,
x: 1961,
y: 380
})
],
Expand Down Expand Up @@ -306,6 +311,10 @@ module.exports = {
x: 150,
y: 780
},
goal: {
x: 1960,
y: 500
},
items: [
instance(powergems.water, {
x: 485,
Expand Down
56 changes: 40 additions & 16 deletions src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,31 @@ var data = require('./data');
/**
* Game code
*/
var game = new Phaser.Game(cfg.GAME_WIDTH, cfg.GAME_HEIGHT, Phaser.CANVAS, '', {
preload: preload,
create: create,
update: update,
render: render
});

Phaser.Utils.extend(game, {
level: 'level2',
levelNum: 1,
setLevel: function(l) {
this.levelNum = l;
this.level = 'level' + l;
}
});
var game = new Phaser.Game(cfg.GAME_WIDTH, cfg.GAME_HEIGHT, Phaser.CANVAS);

var Main = {};

function boot() {
Main.Levels = {};
Object.keys(data.levels).forEach(function(level) {
Main.Levels[level] = function() {
};
Main.Levels[level].prototype = {
preload: preload,
create: function() {
game.level = level;
game.nextState = data.levels[level].nextState;
create();
},
update: update,
render: render
};

game.state.add(level, Main.Levels[level], false);
});

game.state.start('level1');
}

function preload() {
/**
Expand All @@ -43,7 +53,7 @@ function preload() {
}

var map, tileset, surface, background,
player, clouds, items, backgroundItems, blocks,
player, goal, clouds, items, backgroundItems, blocks,
elemEmitters = {},
cursors, elemButton, acquireButton, dropButton;

Expand Down Expand Up @@ -85,6 +95,7 @@ function create() {

createBlocks();
createBackgroundItems();
addGoal();
addPlayer();
createItems();
createEmitters();
Expand Down Expand Up @@ -222,10 +233,21 @@ function addPlayer() {

}

function addGoal() {
if (data.levels[game.level].goal) {
goal = game.add.sprite(data.levels[game.level].goal.x, data.levels[game.level].goal.y, 'blocks', cfg.GOAL_TILE);
goal.alpha = 0;
}
}

function update() {
var emitter = elemEmitters[player.element] || null;

// Collisions
game.physics.overlap(player, goal, function() {
// Transition to next level (or state)
game.state.start(game.nextState);
});
game.physics.collide(player, surface);
game.physics.collide(player, blocks);
game.physics.collide(items, surface);
Expand Down Expand Up @@ -413,3 +435,5 @@ function render() {
// game.debug.renderSpriteInfo(player, 150, 150);
// game.debug.renderSpriteInfo(items.getAt(0), 450, 150);
}

window.onload = boot;

0 comments on commit 26b2ba6

Please sign in to comment.