groups/extending a group

 //  Here is a custom group
//  It will automatically create 30 sprites of the given image when created.

MonsterGroup = function (game, image, action) {

    Phaser.Group.call(this, game);

    for (var i = 0; i < 30; i++)
    {
        var sprite = this.create(game.world.randomX, game.world.randomY, image);

        if (action == 'bounce')
        {
            game.add.tween(sprite).to({ y: sprite.y - 100 }, 2000, Phaser.Easing.Elastic.Out, true, 0, 1000, true);
        }
        else if (action == 'slide')
        {
            game.add.tween(sprite).to({ x: sprite.x + 200 }, 4000, Phaser.Easing.Elastic.Out, true, 0, 1000, true);
        }

    }

};

MonsterGroup.prototype = Object.create(Phaser.Group.prototype);
MonsterGroup.prototype.constructor = MonsterGroup;

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create });

var customGroup1;
var customGroup2;

function preload() {

    game.load.image('ufo', 'assets/sprites/ufo.png');
    game.load.image('baddie', 'assets/sprites/space-baddie.png');
    
}

function create() {

    customGroup1 = new MonsterGroup(game, 'ufo', 'bounce');
    customGroup2 = new MonsterGroup(game, 'baddie', 'slide');

}