var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render }); function preload() { } var body; var tile; function create() { body = { left: 386, top: 89, right: 412, bottom: 127 }; tile = { x: 416, y: 96, right: 448, bottom: 128 }; game.input.keyboard.addKeyCapture([Phaser.Keyboard.LEFT, Phaser.Keyboard.RIGHT, Phaser.Keyboard.UP, Phaser.Keyboard.DOWN]); } function tileIntersects (body, tile) { if (body.width <= 0 || body.height <= 0 || tile.width <= 0 || tile.height <= 0) { // return false; } var test1 = body.right < tile.x; var test2 = body.bottom < tile.y; var test3 = body.left > tile.right; var test4 = body.top > tile.bottom; result = !(body.right < tile.x || body.bottom < tile.y || body.left > tile.right || body.top > tile.bottom); // game.debug.renderText('intersects: ' + result, 32, 32); // game.debug.renderText('test 1: ' + test1, 320, 60); // game.debug.renderText('test 2: ' + test2, 320, 80); // game.debug.renderText('test 3: ' + test3, 320, 100); // game.debug.renderText('test 4: ' + test4, 320, 120); return result; } function update() { if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) { body.left -= 1; body.right -= 1; } if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) { body.left += 1; body.right += 1; } if (game.input.keyboard.isDown(Phaser.Keyboard.UP)) { body.top -= 1; body.bottom -= 1; } if (game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) { body.top += 1; body.bottom += 1; } } function render() { var r = tileIntersects(body, tile); game.context.fillStyle = 'rgb(255,0,0)'; game.context.fillRect(body.left, body.top, body.right-body.left,body.bottom-body.top); game.context.fillStyle = 'rgb(0,255,0)'; game.context.fillRect(tile.x, tile.y, tile.right-tile.x,tile.bottom-tile.y); }