mirror of
https://github.com/photonstorm/phaser
synced 2024-09-21 15:01:57 +00:00
New examples for ninja physics, bitmap text, and documented the map function
This commit is contained in:
parent
181ef7ce53
commit
c9f89f5a3b
9 changed files with 1518 additions and 517 deletions
1574
build/phaser.js
1574
build/phaser.js
File diff suppressed because it is too large
Load diff
|
@ -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"
|
||||
|
|
64
examples/ninja physics/ninja aabb vs aabb.js
Normal file
64
examples/ninja physics/ninja aabb vs aabb.js
Normal 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);
|
||||
|
||||
}
|
68
examples/ninja physics/ninja aabb vs tile.js
Normal file
68
examples/ninja physics/ninja aabb vs tile.js
Normal 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);
|
||||
|
||||
}
|
73
examples/ninja physics/ninja impact.js
Normal file
73
examples/ninja physics/ninja impact.js
Normal 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);
|
||||
}
|
||||
|
||||
}
|
79
examples/ninja physics/ninja tilemap.js
Normal file
79
examples/ninja physics/ninja tilemap.js
Normal 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);
|
||||
}
|
||||
|
||||
}
|
21
examples/text/bitmapfont drag.js
Normal file
21
examples/text/bitmapfont drag.js
Normal 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();
|
||||
|
||||
}
|
||||
|
29
examples/text/set properties after creation.js
Normal file
29
examples/text/set properties after creation.js
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -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 ) {
|
||||
|
|
Loading…
Reference in a new issue