碰撞反弹
原文地址:http://www.phaser.io/examples/v2/arcade-physics/bounce-knock。
效果
源代码
window.onload = function () {
var game = new Phaser.Game(600, 400, Phaser.AUTO, 'phaser_container',
{ preload: preload, create: create, update: update, render: render });
function preload() {
game.load.image('dude', 'images/phaser/phaser-dude.png');
game.load.image('ball', 'images/phaser/pangball.png');
}
var image;
function create() {
game.physics.startSystem(Phaser.Physics.ARCADE);
cursors = game.input.keyboard.createCursorKeys();
ball = game.add.sprite(400, 200, 'ball');
knocker = game.add.sprite(400, 200, 'dude');
game.physics.enable([knocker, ball], Phaser.Physics.ARCADE);
knocker.body.immovable = true;
// 设置球的初速度
ball.body.velocity.setTo(200, 200);
// 将小人和球限制在边界内
ball.body.collideWorldBounds = true;
knocker.body.collideWorldBounds = true;
ball.body.bounce.setTo(1, 1);
}
// 键盘控制小人的运动
function update() {
// 开启小人和球之间的碰撞效果
game.physics.arcade.collide(knocker, ball);
if (cursors.up.isDown) {
knocker.body.velocity.y = -300;
}
else if (cursors.down.isDown) {
knocker.body.velocity.y = 300;
}
else if (cursors.left.isDown) {
knocker.body.velocity.x = -300;
}
else if (cursors.right.isDown) {
knocker.body.velocity.x = 300;
}
else {
knocker.body.velocity.setTo(0, 0);
}
}
function render() {
game.debug.spriteInfo(ball, 32, 32);
}
}
发布时间:2016/9/1 下午1:49:02 阅读次数:5736
