constructor(scene, x, y) { // pass empty string for the texture super(scene, x, y, '') scene.add.existing(this) scene.physics.add.existing(this) // set the width and height of the sprite as the body size this.body.setSize(32, 48) }
preload() { // Load Town this.load.image("TilesTown", TilesTown); this.load.tilemapTiledJSON("town", TownJSON); // Load Route1 this.load.tilemapTiledJSON("route1", Route1JSON); // Load atlas this.load.atlas("currentPlayer", AtlasPNG, AtlasJSON); this.load.atlas("players", PlayersAtlasPNG, PlayersAtlasJSON); }
it('should multiply to 528 (24*22)', done => { class MainScene extends Phaser.Scene { preload() { this.load.image('star', '../assets/star.png') } create() { const star = this.physics.add.sprite(400, 300, 'star') expect(star.body.width * star.body.height).toBe(528) done() } } StartTest([MainScene]) })
const StartGame = Scenes => { const config = { type: Phaser.HEADLESS, width: 1280, height: 720, banner: false, audio: false, scene: Scenes, physics: { default: 'arcade', arcade: { gravity: { y: 300 }, }, }, } new Phaser.Game(config) }
it('should load both scenes', done => { class PreloadScene extends Phaser.Scene { constructor() { super('PreloadScene') } create() { this.scene.start('MainScene') } } class MainScene extends Phaser.Scene { constructor() { super('MainScene') } create() { done() } } StartTest([PreloadScene, MainScene]) })
it('body size should be 32 * 48 (1536)', done => { class Player extends Phaser.Physics.Arcade.Sprite { constructor(scene, x, y) { // pass empty string for the texture super(scene, x, y, '') scene.add.existing(this) scene.physics.add.existing(this) // set the width and height of the sprite as the body size this.body.setSize(32, 48) } } class MainScene extends Phaser.Scene { create() { this.player = new Player(this, 100, 100) } update(time, delta) { expect(this.player.body.width * this.player.body.height).toBe(1536) done() } } StartTest([MainScene]) })
create() { this.add.text(20, 20, "Loading game..."); this.scene.start("playGame", {map: 'town', playerTexturePosition: 'front'}); this.anims.create({ key: "misa-left-walk", frames: this.anims.generateFrameNames("currentPlayer", { prefix: "misa-left-walk.", start: 0, repeat: -1 }); this.anims.create({ key: "misa-right-walk", frames: this.anims.generateFrameNames("currentPlayer", { prefix: "misa-right-walk.", start: 0, repeat: -1 }); this.anims.create({ key: "misa-front-walk", frames: this.anims.generateFrameNames("currentPlayer", { prefix: "misa-front-walk.", start: 0, repeat: -1 }); this.anims.create({
class MainScene extends Phaser.Scene { preload() { this.load.image('tiles', '../assets/gridtiles.png') this.load.tilemapTiledJSON('map', '../assets/simple-map.json') const map = this.make.tilemap({ key: 'map', tileWidth: 32, tileHeight: 32, }) const tileset = map.addTilesetImage('tiles') const layer = map.createDynamicLayer('Level1', tileset) map.setCollision([20, 48]) this.player = this.physics.add.sprite(96, 96, '') this.player.body.setSize(24, 38) this.physics.add.collider(this.player, layer) if (this.player.body.onFloor()) { done()
it('should multiply to 1536 (32*48)', done => { class MainScene extends Phaser.Scene { preload() { this.load.spritesheet('dude', '../assets/dude.png', { frameWidth: 32, frameHeight: 48, }) } create() { const dude = this.physics.add.sprite(100, 450, 'dude') expect(dude.body.width * dude.body.height).toBe(1536) done() } } StartTest([MainScene]) })