Cześć,
Aby lepiej nauczyć się js'a postanowiłem napisać dość prostą grę przy użyciu phasera. Niestety kompletnie nie rozumiem czemu nie chce załadować funkcji preload.
Oto kod:

var Game = {

    player: {},

    config: {
        type: Phaser.CANVAS,
        width: 800,
        height: 600,
        physics: {
            default: 'arcade',
            arcade: {
                gravity: { y: 200 }
            }
        },
        scene: {
            preload: this.preload,
            create: this.create,
            update: this.update
        }
    },

    run: function() {
        console.log(this)
        this.game = new Phaser.Game(this.config)
    },

    preload: function() {
        console.log('dsa')
        this.game.load.spritesheet('character', 'assets/character.png', { frameWidth: 32, frameHeight: 32 });
    },

    create: function() {
        var config = {
            key: 'down',
            frames: this.anims.generateFrameNumbers('character'),
            frameRate: 3,
            yoyo: false,
            repeat: -1
        };

        var anims = this.game.anims.create(config);

        console.log(anims);

        var sprite = this.game.add.sprite(400, 300, 'character').setScale(4);

        console.log(sprite);

        sprite.anims.load('down')
    },
}
console.log(Game);
document.onload = Game.run()
console.log(Game)

Jestem w stanie zrozumieć że this użyte w Game.config.scene może wskazywać na scene właśnie (mylę się? Jeśli nie czemu nie pokazuje mi błędu że to nie istnieje?). Próbowałem odwoływać się przez Game.preload, niestety wtedy cały obiekt Game ginie (tz w eksploratorze pokazuje mi undefined). To samo dzieje się jak Game przypiszę do obiektu window i użyję `window.game.preload, również nagle znika.

Mógłby mi ktoś wytłumaczyć czemu się tak dzieje i czemu nagle znikają obiekty?