phaser/examples/wip/p28.js
photonstorm 30fbbec675 BitmapData.addTo removed and enhanced BitmapData.add so it can accept either a single Sprite/Image or an Array of them.
BitmapData has had all of the EaselJS functions removed. It was just taking up space and you can do it all via BitmapData.context directly.
Camera following now working again.
2014-02-13 14:19:41 +00:00

137 lines
3 KiB
JavaScript

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
function preload() {
game.load.image('backdrop', 'assets/pics/remember-me.jpg');
game.load.image('box', 'assets/sprites/block.png');
}
var box;
var box2;
var cursors;
function p2px(v) {
return v *= -20;
}
function px2p(v) {
return v * -0.05;
}
function create() {
game.world.setBounds(0, 0, 1920, 1200);
game.add.sprite(0, 0, 'backdrop');
game.physics.onBodyAdded.add(addedToWorld, this);
box = game.add.sprite(200, 200, 'box');
box.name = 'bob';
box.anchor.set(0.5);
box.physicsEnabled = true;
box2 = game.add.sprite(400, 200, 'box');
box2.name = 'ben';
box2.anchor.set(0.5); // if using physics you nearly always need to anchor from the center like this unless you don't need rotation
// box2.scale.set(2); // if you need to scale, do it BEFORE enabling physics. You can't do it at run-time.
box2.physicsEnabled = true;
box2.body.setZeroDamping();
box2.body.fixedRotation = true;
game.camera.follow(box2);
cursors = game.input.keyboard.createCursorKeys();
game.physics.defaultRestitution = 0.8;
}
function addedToWorld(body, world) {
console.log('Body added for', body);
}
function update() {
box2.body.setZeroVelocity();
if (cursors.left.isDown)
{
box2.body.moveLeft(400);
}
else if (cursors.right.isDown)
{
box2.body.moveRight(400);
}
if (cursors.up.isDown)
{
box2.body.moveUp(400);
}
else if (cursors.down.isDown)
{
box2.body.moveDown(400);
}
}
function render() {
game.debug.renderText('x: ' + box2.body.velocity.x, 32, 32);
game.debug.renderText('y: ' + box2.body.velocity.y, 32, 64);
// game.debug.renderText('x: ' + p2px(boxBody.position[0]), 32, 32);
// game.debug.renderText('y: ' + p2px(boxBody.position[1]), 32, 64);
// game.debug.renderText('r: ' + boxBody.angle, 32, 96);
// drawbox();
}
function drawbox() {
// var ctx = game.context;
/*
ctx.save();
ctx.translate(game.width/2, game.height/2); // Translate to the center
ctx.scale(50, -50); // Zoom in and flip y axis
ctx.lineWidth = 0.05;
ctx.strokeStyle = 'rgb(255,255,255)';
ctx.beginPath();
var x = boxBody.position[0],
y = boxBody.position[1];
ctx.save();
ctx.translate(x, y); // Translate to the center of the box
ctx.rotate(boxBody.angle); // Rotate to the box body frame
ctx.rect(-boxShape.width/2, -boxShape.height/2, boxShape.width, boxShape.height);
ctx.stroke();
ctx.closePath();
// ctx.restore();
*/
// ctx.save();
// ctx.translate(game.width/2, game.height/2); // Translate to the center
// ctx.scale(20, -20); // Zoom in and flip y axis
// ctx.lineWidth = 0.05;
// ctx.strokeStyle = 'rgb(255,255,255)';
// ctx.beginPath();
// var y = planeBody.position[1];
// ctx.rotate(0); // Rotate to the box body frame
// ctx.moveTo(-game.width, y);
// ctx.lineTo( game.width, y);
// ctx.stroke();
// ctx.closePath();
// ctx.restore();
}