mirror of
https://github.com/wassname/phaser.git
synced 2026-06-28 16:20:37 +08:00
30fbbec675
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.
138 lines
3.0 KiB
JavaScript
138 lines
3.0 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();
|
|
}
|
|
|