JavaScript
var size = 400;
var padd = 10;
var main = new Phaser.Game(size, size, Phaser.CANVAS, 'game');
var graphics;
var box;
var movingLine, movingLineDir;
var center = new Phaser.Point(size/2, size/2);
var borders = [];
var text;
var maxLength = 400;
main.state.add('Game', {
perload: function() {},
create: function() {
text = this.game.add.text(size/2, size/2, '', {'font': '12px', 'fill': '#fff'});
graphics = this.game.add.graphics(0, 0);
box = this.game.add.graphics(0, 0);
box.lineStyle(2, 0xaaaaaa);
box.drawRect(padd, padd, size-(padd*2), size-(padd*2));
borders.push(new Phaser.Line(padd, padd, size-padd, padd)); // top
borders.push(new Phaser.Line(size-padd, padd, size-padd, size-padd)); // right
borders.push(new Phaser.Line(padd, size-padd, size-padd, size-padd)); // bottom
borders.push(new Phaser.Line(padd, padd, padd, size-padd)); // left
box.drawRect(padd*2, padd*2, size-(padd*2*2), size-(padd*2*2));
borders.push(new Phaser.Line(padd*2, padd*2, size-padd*2, padd*2)); // top
borders.push(new Phaser.Line(size-padd*2, padd*2, size-padd*2, size-padd*2)); // right
borders.push(new Phaser.Line(padd*2, size-padd*2, size-padd*2, size-padd*2)); // bottom
borders.push(new Phaser.Line(padd*2, padd*2, padd*2, size-padd*2)); // left
box.drawRect(120, 30, 50, 50);
borders.push(new Phaser.Line(120, 30, 170, 30)); // top
borders.push(new Phaser.Line(170, 30, 170, 80)); // right
borders.push(new Phaser.Line(120, 80, 170, 80)); // bottom
borders.push(new Phaser.Line(120, 80, 120, 30)); // left
box.drawRect(300, 80, 50, 50);
borders.push(new Phaser.Line(300, 80, 350, 80)); // top
borders.push(new Phaser.Line(350, 80, 350, 130)); // right
borders.push(new Phaser.Line(300, 130, 350, 130)); // bottom
borders.push(new...