{Webdeveloper ChristophJP}

← back to the blog


Reverse rescue

 

Reverse rescue ist ein Jump 'n' Run, welches ich mit JS und dem Phaser Framework erstellt habe.

Da sich Berge, Häuser und andere Elemente die weiter "hinten" liegen langsamer bewegen, wirkt es als wären die weiter weg, der sogenannte Parallax Effekt.

 

Der Aufbau der Levels wird durch einen Seed generiert.

 

var height = 1;
        for (var i = 0; i < length; i++) {
            var first = true;
            var rnd = this.rnd.frac();
// small chance to change block height if (Math.round(this.rnd.frac() * 200) % 15 == 14) { if (this.rnd.frac() > .4 && height > 1) { height--;
// even smaller change to change two blocks height at once if (rnd > .4 && height > 1) { height--; } } else if (height < 5) { height++; if (rnd > .4 && height < 5) { height++; } } } if (i == 1) { height = 1; } for (var a = 0; a < height || first; a++) { first = false; block = game.add.sprite(i * squareSize, core.height - squareSize - a * squareSize, 'block'); game.physics.enable(block); block.body.immovable = true; block.body.moves = false; block.tint = level.blockColor; if (height - 1 == a || height - 2 == a) { // is "touchable" block, boosts performance cause not every block has physics this.blocks.push(block); if (height - 1 == a) { // is highest block, so add grass grass = game.add.sprite(i * squareSize, core.height - squareSize - a * squareSize, 'block_grass'); grass.tint = level.grassColor; } } } }




Das Bewegungsprofil, die Anzahl und ob die Gegner einen Verfolgen ist von Level zu Level unterschiedlich und vordefiniert.

enemies: {
    speed: 6,
    count: 9,
    hard: 1,
    movement: ["l", "l", "l", "l", "u", "u", "r", "r", "r", "r"]
}

 

"l" lässt den Gegner nach links, "r" nach rechts bewegen und "u" springen.
Der Parameter "hard" gibt an ob die Gegner einen bei näherkommen verfolgt.