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?