Example #1
0
function pause_click_handler() {
    paused = !paused;

    if (!paused) {
        this.style.opacity = 0;
        reset_puck(puck);
    } else {
        this.style.opacity = 1;
    }
}
Example #2
0
    update(game) {

        game.physics.arcade.collide(puck, [paddles.n, paddles.s, paddles.e, paddles.w], hit_puck, null, this);

        paddles.n.body.velocity.setMagnitude(0);
        paddles.s.body.velocity.setMagnitude(0);
        paddles.e.body.velocity.setMagnitude(0);
        paddles.w.body.velocity.setMagnitude(0);

        update_bg_color(game);

        let oob = check_out_of_bounds(game, puck);
        if (oob) {
            hit_world(puck, oob);
        }

        /*
         * this is weird, let's not forget about this. this should be
         * handled in the pause_click_handler but for some reason the puck
         * is not being placed back in the center of the game
         */
        if (paused) {
            reset_puck(puck, false);
        }

        // check for players pressing start to join the game

        each(player_codes, log_in_if_start_pressed);

        // check for gamepad input during login

        each(player_codes, navigate_ui_if_logging_in);

        // map input to commands

        each(player_codes, move_paddle);
        each(player_codes, execute_powerup_if_a);
        each(player_codes, rotate_powerup_if_b);

        // update the player status scorecards

        scorecards.update(players);
    }
Example #3
0
    create(game) {

        scorecards.create(players);

        game.physics.startSystem(Phaser.Physics.ARCADE);

        scores.reset_all();

        puck = game.add.sprite( game.world.centerX, game.world.centerY, 'puck');

        // dangit, players need references to puck, to pass into powerups that affect the puck
        // I shoulda just made everything globa, for a game this size. :)
        players.n.puck = puck;
        players.s.puck = puck;
        players.e.puck = puck;
        players.w.puck = puck;
        // end of dangit

        paddles.n = game.add.sprite( game.world.centerX, conf.PADDLE_PLACEMENT_WORLD_PADDING, 'paddle-blue');
        paddles.s = game.add.sprite( game.world.centerX, game.world.height - conf.PADDLE_PLACEMENT_WORLD_PADDING - 20, 'paddle-green');
        paddles.e = game.add.sprite( game.world.width - conf.PADDLE_PLACEMENT_WORLD_PADDING, game.world.centerY, 'paddle-yellow');
        paddles.w = game.add.sprite( conf.PADDLE_PLACEMENT_WORLD_PADDING + 20, game.world.centerY, 'paddle-red');

        paddles.n.addChild(game.make.sprite(0, 0, 'paddle-blue'));

        paddles.w.angle = 90;
        paddles.e.angle = 90;

        game.physics.enable([puck, paddles.n, paddles.s, paddles.e, paddles.w], Phaser.Physics.ARCADE);

        puck.name = 'PUCK';
        puck.body.setSize(20, 20, puck.height/2 - 10, puck.width/2 - 10);

        reset_puck(puck);

        paddles.n.name = 'n';
        paddles.s.name = 's';
        paddles.e.name = 'e';
        paddles.w.name = 'w';
        paddles.n.body.immovable = true;
        paddles.s.body.immovable = true;
        paddles.e.body.immovable = true;
        paddles.w.body.immovable = true;
        paddles.n.body.collideWorldBounds = true;
        paddles.s.body.collideWorldBounds = true;
        paddles.e.body.collideWorldBounds = true;
        paddles.w.body.collideWorldBounds = true;
        set_body_to_sprite_size(paddles.n);
        set_body_to_sprite_size(paddles.s);
        set_body_to_sprite_size(paddles.e, true);
        set_body_to_sprite_size(paddles.w, true);

        // not sure why this offset is needed, but it lines up the hitboxes with
        // the sprites.
        paddles.w.body.offset.x = -20;
        paddles.e.body.offset.x = -20;

        // pad_n.body.offset.y = +20;
        // pad_s.body.offset.y = +20;

        // puck.body.collideWorldBounds = true;
        puck.body.bounce.setTo(1, 1);

        update_bg_color(game);

        // add points to players periodically
        game.time.events.loop(Phaser.Timer.SECOND * conf.SCORING_SEC_PER_POINT, tick, this);

        let press_start_elements = document.querySelectorAll('.press-start');
        invoke(press_start_elements, 'addEventListener', 'click', press_start_click_handler, false);

        let pause_button = document.querySelector('#pause-btn');
        pause_button.addEventListener('click', pause_click_handler, false);
    }