New examples for ninja physics, bitmap text, and documented the map function

This commit is contained in:
alvinsight 2014-03-13 13:24:45 +00:00
parent 181ef7ce53
commit c9f89f5a3b
9 changed files with 1518 additions and 517 deletions

File diff suppressed because it is too large Load diff

View file

@ -134,14 +134,6 @@
"file": "quadtree+-+collision+infos.js",
"title": "quadtree - collision infos"
},
{
"file": "quadtree+-+ids.js",
"title": "quadtree - ids"
},
{
"file": "rotated+bounding+box.js",
"title": "rotated bounding box"
},
{
"file": "ship+trail.js",
"title": "ship trail"
@ -154,10 +146,6 @@
"file": "snake.js",
"title": "snake"
},
{
"file": "sprite+bounds.js",
"title": "sprite bounds"
},
{
"file": "sprite+vs+group.js",
"title": "sprite vs group"
@ -446,6 +434,10 @@
"file": "for+each.js",
"title": "for each"
},
{
"file": "get+first+dead.js",
"title": "get first dead"
},
{
"file": "get+first.js",
"title": "get first"
@ -657,6 +649,82 @@
"title": "repeatable random numbers"
}
],
"ninja physics": [
{
"file": "ninja+aabb+vs+aabb.js",
"title": "ninja aabb vs aabb"
},
{
"file": "ninja+aabb+vs+tile.js",
"title": "ninja aabb vs tile"
},
{
"file": "ninja+impact.js",
"title": "ninja impact"
},
{
"file": "ninja+tilemap.js",
"title": "ninja tilemap"
}
],
"p2 physics": [
{
"file": "basic+movement.js",
"title": "basic movement"
},
{
"file": "body+click.js",
"title": "body click"
},
{
"file": "collision+groups.js",
"title": "collision groups"
},
{
"file": "contact+events.js",
"title": "contact events"
},
{
"file": "distance+constraint.js",
"title": "distance constraint"
},
{
"file": "gear+constraint.js",
"title": "gear constraint"
},
{
"file": "gravity.js",
"title": "gravity"
},
{
"file": "impact+events.js",
"title": "impact events"
},
{
"file": "load+polygon+1.js",
"title": "load polygon 1"
},
{
"file": "load+polygon+2.js",
"title": "load polygon 2"
},
{
"file": "postbroadphase+callback.js",
"title": "postbroadphase callback"
},
{
"file": "springs.js",
"title": "springs"
},
{
"file": "thrust.js",
"title": "thrust"
},
{
"file": "world+move.js",
"title": "world move"
}
],
"particles": [
{
"file": "click+burst.js",
@ -762,6 +830,14 @@
"file": "bitmap+fonts.js",
"title": "bitmap fonts"
},
{
"file": "bitmapfont+drag.js",
"title": "bitmapfont drag"
},
{
"file": "dynamic+text+shadow.js",
"title": "dynamic text shadow"
},
{
"file": "google+webfonts.js",
"title": "google webfonts"
@ -790,6 +866,22 @@
"file": "retro+font+2.js",
"title": "retro font 2"
},
{
"file": "set+properties+after+creation.js",
"title": "set properties after creation"
},
{
"file": "text+gradient.js",
"title": "text gradient"
},
{
"file": "text+reflect.js",
"title": "text reflect"
},
{
"file": "text+shadow.js",
"title": "text shadow"
},
{
"file": "text+stroke.js",
"title": "text stroke"

View file

@ -0,0 +1,64 @@
// var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
function preload() {
game.load.image('block', 'assets/sprites/block.png');
game.load.spritesheet('ninja-tiles', 'assets/physics/ninja-tiles128.png', 128, 128, 34);
}
var sprite1;
var sprite2;
var tile;
var cursors;
function create() {
game.physics.startSystem(Phaser.Physics.NINJA);
sprite1 = game.add.sprite(100, 450, 'block');
sprite1.name = 'blockA';
sprite2 = game.add.sprite(600, 450, 'block');
sprite2.name = 'blockB';
sprite2.tint = Math.random() * 0xffffff;
game.physics.ninja.enableAABB([sprite1, sprite2]);
cursors = game.input.keyboard.createCursorKeys();
}
function update() {
game.physics.ninja.collide(sprite1, sprite2);
if (cursors.left.isDown)
{
sprite1.body.moveLeft(20);
}
else if (cursors.right.isDown)
{
sprite1.body.moveRight(20);
}
if (cursors.up.isDown)
{
sprite1.body.moveUp(30);
}
}
function render() {
game.debug.text('left: ' + sprite1.body.touching.left, 32, 32);
game.debug.text('right: ' + sprite1.body.touching.right, 256, 32);
game.debug.text('up: ' + sprite1.body.touching.up, 32, 64);
game.debug.text('down: ' + sprite1.body.touching.down, 256, 64);
}

View file

@ -0,0 +1,68 @@
var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
function preload() {
game.load.image('block', 'assets/sprites/block.png');
game.load.spritesheet('ninja-tiles', 'assets/physics/ninja-tiles128.png', 128, 128, 34);
}
var sprite1;
var sprite2;
var tile;
var cursors;
function create() {
// Here we tell the physics manager we system we want to use
game.physics.startSystem(Phaser.Physics.NINJA);
sprite1 = game.add.sprite(600, 100, 'block');
sprite1.name = 'blockA';
// Enable ninja on the sprite and creates an AABB around it
game.physics.ninja.enableAABB(sprite1);
//
tile = game.add.sprite(600, 480, 'ninja-tiles', 3);
game.physics.ninja.enableTile(tile, tile.frame);
cursors = game.input.keyboard.createCursorKeys();
}
function update() {
game.physics.ninja.collide(sprite1, tile);
if (cursors.left.isDown)
{
sprite1.body.moveLeft(20);
}
else if (cursors.right.isDown)
{
sprite1.body.moveRight(20);
}
if (cursors.up.isDown)
{
sprite1.body.moveUp(30);
}
}
function render() {
game.debug.text('left: ' + sprite1.body.touching.left, 32, 32);
game.debug.text('right: ' + sprite1.body.touching.right, 256, 32);
game.debug.text('up: ' + sprite1.body.touching.up, 32, 64);
game.debug.text('down: ' + sprite1.body.touching.down, 256, 64);
}

View file

@ -0,0 +1,73 @@
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update});
function preload() {
game.load.spritesheet('ninja-tiles', 'assets/physics/ninja-tiles128.png', 128, 128, 34);
game.load.image('a', 'assets/sprites/firstaid.png');
}
var sprite1;
var cursors;
var tile1;
var tile2;
function create() {
game.stage.smoothed = true;
// Activate the Ninja physics system
game.physics.startSystem(Phaser.Physics.NINJA);
// game.physics.ninja.gravity = 0.1;
sprite1 = game.add.sprite(500, 200, 'a');
// Enable the physics body for the Ninja physics system
// By default it will create an AABB body for the sprite
game.physics.ninja.enableAABB(sprite1);
// But you can change it to either a Tile or a Circle
tile1 = game.add.sprite(0, 500, 'ninja-tiles', 14);
tile1.width = 100;
tile1.height = 100;
game.physics.ninja.enableTile(tile1, tile1.frame);
cursors = game.input.keyboard.createCursorKeys();
}
function collisionHandler() {
game.stage.backgroundColor = 0xff0000;
}
function update() {
game.physics.ninja.collide(sprite1, tile1, collisionHandler, null, this);
tile1.body.moveRight(1);
if (cursors.left.isDown)
{
sprite1.body.moveLeft(20);
}
else if (cursors.right.isDown)
{
sprite1.body.moveRight(20);
}
if (cursors.up.isDown)
{
sprite1.body.moveUp(20);
}
else if (cursors.down.isDown)
{
sprite1.body.moveUp(20);
}
}

View file

@ -0,0 +1,79 @@
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update});
function preload() {
game.load.tilemap('map', 'assets/tilemaps/maps/ninja-tilemap.json', null, Phaser.Tilemap.TILED_JSON);
game.load.image('ball', 'assets/sprites/shinyball.png');
game.load.image('sky', 'assets/skies/sky2.png');
game.load.image('kenney', 'assets/tilemaps/tiles/kenney.png');
}
var sprite1;
var cursors;
var map;
var layer;
var tiles;
function create() {
var sky = game.add.image(0, 0, 'sky');
sky.fixedToCamera = true;
// Activate the Ninja physics system
game.physics.startSystem(Phaser.Physics.NINJA);
map = game.add.tilemap('map');
map.addTilesetImage('kenney');
layer = map.createLayer('Tile Layer 1');
layer.resizeWorld();
var slopeMap = { '32': 1, '77': 1, '95': 2, '36': 3, '137': 3, '140': 2 };
tiles = game.physics.ninja.convertTilemap(map, layer, slopeMap);
sprite1 = game.add.sprite(50, 50, 'ball');
game.physics.ninja.enableCircle(sprite1, sprite1.width / 2);
// A little more bounce
sprite1.body.bounce = 0.5;
game.camera.follow(sprite1);
cursors = game.input.keyboard.createCursorKeys();
}
function update() {
for (var i = 0; i < tiles.length; i++)
{
sprite1.body.circle.collideCircleVsTile(tiles[i].tile);
}
if (cursors.left.isDown)
{
sprite1.body.moveLeft(20);
}
else if (cursors.right.isDown)
{
sprite1.body.moveRight(20);
}
if (cursors.up.isDown)
{
sprite1.body.moveUp(20);
}
else if (cursors.down.isDown)
{
sprite1.body.moveUp(20);
}
}

View file

@ -0,0 +1,21 @@
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create });
function preload() {
game.load.bitmapFont('carrier_command', 'assets/fonts/bitmapFonts/carrier_command.png', 'assets/fonts/bitmapFonts/carrier_command.xml');
}
var bpmText;
function create() {
bmpText = game.add.bitmapText(10, 100, 'carrier_command','Drag me around !',34);
bmpText.inputEnabled = true;
bmpText.input.enableDrag();
}

View file

@ -0,0 +1,29 @@
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update });
function preload() {
game.load.bitmapFont('desyrel', 'assets/fonts/bitmapFonts/desyrel.png', 'assets/fonts/bitmapFonts/desyrel.xml');
}
var bpmText;
var count = 0;
function create() {
bmpText = game.add.bitmapText(0, 100, 'desyrel',"I'm growing",64);
}
function update() {
count++;
if(bmpText.fontSize < 250){
bmpText.fontSize += 1;
}
}

View file

@ -1208,12 +1208,11 @@ Phaser.Math = {
* Linear mapping from range <a1, a2> to range <b1, b2>
*
* @method Phaser.Math#mapLinear
* @param {number} x
* @param {number} a1
* @param {number} a1
* @param {number} a2
* @param {number} b1
* @param {number} b2
* @param {number} x the value to map
* @param {number} a1 first endpoint of the range <a1, a2>
* @param {number} a2 final endpoint of the range <a1, a2>
* @param {number} b1 first endpoint of the range <b1, b2>
* @param {number} b2 final endpoint of the range <b1, b2>
* @return {number}
*/
mapLinear: function ( x, a1, a2, b1, b2 ) {