1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
   | var game = new Phaser.Game(300, 500, Phaser.AUTO, 'canvasGame', { preload: preload, create: create, update: update, render: render });
 
function preload() {
 
    game.load.image('background', 'assets/Blackboard.png');
    game.load.image('ground', 'assets/ground.png');
    game.load.spritesheet('box', 'assets/box_30.png', 31, 31);
    game.load.spritesheet('dude', 'assets/dude.png', 32, 48);
 
}
 
var player;
var platforms
var BOX_SIZE_SPACED = 30;
var BOARD_COLS;
var BOARD_ROWS;
var boxGroup;
var countBoxLoop = 2;
var timeLoop = 7000;
var velocityBoxY = 150;
var createbox_bool = true;
 
 
function create() {
    //  We're going to be using physics, so enable the Arcade Physics system
    game.physics.startSystem(Phaser.Physics.ARCADE);
    //game.physics.p2.setImpactEvents(true);
 
    game.add.sprite(0, 0, 'background');
 
    platforms = game.add.group();
    platforms.physicsBodyType = Phaser.Physics.ARCADE;
    platforms.enableBody = true;
    var ground = platforms.create(0, game.world.height - 20, 'ground');
    ground.body.immovable = true;
 
    player = game.add.sprite(32, game.world.height - 100, 'dude');
    game.physics.arcade.enable(player);
    player.body.bounce.y = 0.2;
    player.body.gravity.y = 500;
    player.body.collideWorldBounds = true;
 
    //  Our two animations, walking left and right.
    player.animations.add('left', [0, 1, 2, 3], 10, true);
    player.animations.add('right', [5, 6, 7, 8], 10, true);
 
    BOARD_COLS = Phaser.Math.floor(game.world.width / BOX_SIZE_SPACED);
    BOARD_ROWS = Phaser.Math.floor(game.world.height / BOX_SIZE_SPACED);
 
    boxGroup = game.add.group();
    boxGroup.physicsBodyType = Phaser.Physics.ARCADE;
 
    //game.physics.p2.enable([ platforms, boxGroup], false);
 
    createBox();
    game.time.events.loop(timeLoop, createBox, this);
 
    //  Our controls.
    cursors = game.input.keyboard.createCursorKeys();
 
}
 
function createBox() {
    var i = game.rnd.integerInRange(0, 10);
    var j = 0;
    var spriteBox = boxGroup.create(i * BOX_SIZE_SPACED, j * BOX_SIZE_SPACED, "box");
    game.physics.enable( [spriteBox], Phaser.Physics.ARCADE);
 
    spriteBox.body.collideWorldBounds = true;
    spriteBox.body.velocity.y = velocityBoxY;
    spriteBox.body.gravity.y = 200;
 
}
 
function boxHit (body, shapeA, shapeB, equation) {
    console.log('kinematic');
    body.body.kinematic = true;
}
 
function update () {
    game.physics.arcade.collide(player, boxGroup);
    game.physics.arcade.collide(player, platforms);
    game.physics.arcade.collide(boxGroup, boxGroup);
    game.physics.arcade.collide(boxGroup, platforms);
    //game.physics.arcade.collide(boxGroup, boxGroup, boxHit, null, this);
    //game.physics.arcade.collide(boxGroup, platforms, boxHit, null, this);
 
    //  Reset the players velocity (movement)
    player.body.velocity.x = 0;
 
    if (cursors.left.isDown)
    {
        //  Move to the left
        player.body.velocity.x = -150;
 
        player.animations.play('left');
    }
    else if (cursors.right.isDown)
    {
        //  Move to the right
        player.body.velocity.x = 150;
 
        player.animations.play('right');
    }
    else
    {
        //  Stand still
        player.animations.stop();
 
        player.frame = 4;
    }
 
    //  Allow the player to jump if they are touching the ground.
    if (cursors.up.isDown && player.body.touching.down)
    {
        player.body.velocity.y = -350;
    }
 
}
 
function render () {
 
    game.debug.inputInfo(32, 32);
 
} |