移动指定距离
原文地址:http://www.phaser.io/examples/v2/arcade-physics/move-over-distance。
效果
源代码
window.onload = function () { var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser_container', preload: preload, create: create, update: update ,render: render }); function preload() { game.load.image('clown', 'images/phaser/clown.png'); game.load.image('block', 'images/phaser/block.png'); } var sprite; var block; var startTime = 0; var endTime = 0; var duration = 0; function create() { game.physics.startSystem(Phaser.Physics.ARCADE); sprite = game.add.sprite(200, 300, 'clown'); block = game.add.sprite(600, 280, 'block'); game.physics.arcade.enable(sprite); game.physics.arcade.enable(block); sprite.body.bounce.set(1); sprite.body.collideWorldBounds = true; block.body.immovable = true; sprite.body.onMoveComplete.add(moveOver, this); game.input.onDown.addOnce(move, this); } function move() { // 小丑在2000毫秒内向右移动300像素 sprite.body.moveTo(2000, 300, Phaser.ANGLE_RIGHT); startTime = game.time.time; duration = 0; } function moveOver() { endTime = game.time.time; duration = endTime - startTime; } function update() { game.physics.arcade.collide(sprite, block); } function render() { game.debug.text("expire: " + sprite.body.moveTimer, 32, 32); game.debug.text("vx: " + sprite.body.velocity.x, 300, 32); game.debug.text("vy: " + sprite.body.velocity.y, 600, 32); game.debug.text("duration: " + duration, 32, 64); game.debug.text("m: " + sprite.body.isMoving, 300, 64); } }
发布时间:2016/9/17 下午9:09:07 阅读次数:4510