phaser/v3/src/boot/Game.js

108 lines
2.5 KiB
JavaScript
Raw Normal View History

2016-10-17 20:22:55 +00:00
/**
* @author Richard Davey <rich@photonstorm.com>
* @copyright 2016 Photon Storm Ltd.
* @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}
*/
var CHECKSUM = require('../checksum');
2016-11-25 04:00:15 +00:00
var Device = require('../device');
var Config = require('./Config');
2016-11-22 03:32:41 +00:00
var DebugHeader = require('./DebugHeader');
var RequestAnimationFrame = require('../dom/RequestAnimationFrame');
var DOMContentLoaded = require('../dom/DOMContentLoaded');
var RandomDataGenerator = require('../math/random-data-generator/RandomDataGenerator');
var CanvasPool = require('../dom/CanvasPool');
2016-11-22 03:11:33 +00:00
var Game = function (config)
2016-11-22 03:11:33 +00:00
{
this.config = new Config(config);
2016-11-24 17:01:52 +00:00
// Decide which of the following should be Game properties, or placed elsewhere ...
this.renderer = null;
this.canvas = null;
this.context = null;
/**
* @property {string|HTMLElement} parent - The Games DOM parent.
* @default
*/
this.parent = parent;
this.isBooted = false;
this.isRunning = false;
/**
* @property {Phaser.RequestAnimationFrame} raf - Automatically handles the core game loop via requestAnimationFrame or setTimeout
* @protected
*/
2016-11-25 00:34:37 +00:00
this.raf = new RequestAnimationFrame(this);
2016-11-24 17:01:52 +00:00
/**
* @property {Phaser.TextureManager} textures - Reference to the Phaser Texture Manager.
*/
this.textures = null;
/**
* @property {Phaser.UpdateManager} updates - Reference to the Phaser Update Manager.
*/
this.updates = null;
/**
* @property {Phaser.Cache} cache - Reference to the assets cache.
*/
this.cache = null;
/**
* @property {Phaser.Input} input - Reference to the input manager
*/
this.input = null;
/**
* @property {Phaser.StateManager} state - The StateManager.
*/
// this.state = new Phaser.StateManager(this, stateConfig);
/**
* @property {Phaser.Device} device - Contains device information and capabilities.
*/
2016-11-25 04:00:15 +00:00
this.device = Device;
2016-11-24 17:01:52 +00:00
this.rnd;
2016-11-24 17:01:52 +00:00
DOMContentLoaded(this.boot.bind(this));
};
Game.prototype.constructor = Game;
Game.prototype = {
boot: function ()
{
this.config.preBoot();
this.rnd = new RandomDataGenerator(this.config.seed);
DebugHeader(this);
console.log(CHECKSUM.build);
console.log('pool', CanvasPool.total());
console.log('free', CanvasPool.free());
this.config.postBoot();
this.raf.start();
},
update: function (timestamp)
{
// console.log(timestamp);
}
2016-11-22 03:32:41 +00:00
};
2016-10-17 20:22:55 +00:00
2016-11-22 03:11:33 +00:00
module.exports = Game;