diff --git a/README.md b/README.md index d22a080643..456285011c 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ Version 2.0.4 - "Mos Shirare" - in development * Timer.timeCap is a new setting allowing your Timers to protect against unexpectedly large delta timers (such as raf de-vis or CPU grind). * Camera.unfollow allows you to easily unfollow a tracked object (thanks @alvinsight, #755) * Animation.setFrame allows you to set the animation to a specific frame (thanks @adamholdenyall, #706) +* New Phaser Project Template specifically for requireJS in the `resources/Project Templates` folder (many thanks @ashatch) ### Bug Fixes diff --git a/resources/Project Templates/RequireJS/.bowerrc b/resources/Project Templates/RequireJS/.bowerrc new file mode 100644 index 0000000000..93b1c0ad59 --- /dev/null +++ b/resources/Project Templates/RequireJS/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "src/libs" +} \ No newline at end of file diff --git a/resources/Project Templates/RequireJS/README.md b/resources/Project Templates/RequireJS/README.md new file mode 100644 index 0000000000..a783bc1dfc --- /dev/null +++ b/resources/Project Templates/RequireJS/README.md @@ -0,0 +1,19 @@ + +# Phaser-RequireJS + +Boilerplate project that combines [Phaser](http://phaser.io) with [RequireJS](http://requirejs.org). + +## Structure + +The *Hello World* game is found in `www`. The `www` directory will need a `bower install`. Bower dependencies are configured to install into `www/src/libs`. + +## NOTE + +I haven't yet fully decided whether RequireJS is the right way of modularising a Phaser game. + + +## Change Log + +### Version 0.1.0 + + - Initial project. \ No newline at end of file diff --git a/resources/Project Templates/RequireJS/assets/phaser.png b/resources/Project Templates/RequireJS/assets/phaser.png new file mode 100644 index 0000000000..a37a23af62 Binary files /dev/null and b/resources/Project Templates/RequireJS/assets/phaser.png differ diff --git a/resources/Project Templates/RequireJS/bower.json b/resources/Project Templates/RequireJS/bower.json new file mode 100644 index 0000000000..e2e8ddc05d --- /dev/null +++ b/resources/Project Templates/RequireJS/bower.json @@ -0,0 +1,20 @@ +{ + "name": "Phaser-RequireJS", + "version": "0.1.0", + "description": "Phaser Hello World with RequireJS", + + "authors": [ + "ashatch " + ], + + "license": "MIT", + + "dependencies": { + "requirejs": "latest", + "phaser": "latest" + }, + + "ignore": [ + "src/libs" + ] +} diff --git a/resources/Project Templates/RequireJS/index.html b/resources/Project Templates/RequireJS/index.html new file mode 100644 index 0000000000..b0c343bf55 --- /dev/null +++ b/resources/Project Templates/RequireJS/index.html @@ -0,0 +1,10 @@ + + + + + hello phaser-requirejs + + + + + \ No newline at end of file diff --git a/resources/Project Templates/RequireJS/src/game.js b/resources/Project Templates/RequireJS/src/game.js new file mode 100644 index 0000000000..fefd97aeab --- /dev/null +++ b/resources/Project Templates/RequireJS/src/game.js @@ -0,0 +1,31 @@ +define([ + 'phaser' +], function (Phaser) { + 'use strict'; + + function Game() { + console.log('Making the Game'); + } + + Game.prototype = { + constructor: Game, + + start: function() { + this.game = new Phaser.Game(800, 600, Phaser.AUTO, '', { + preload: this.preload, + create: this.create + }); + }, + + preload: function() { + this.game.load.image('logo', 'assets/phaser.png'); + }, + + create: function() { + var logo = this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'logo'); + logo.anchor.setTo(0.5, 0.5); + } + }; + + return Game; +}); \ No newline at end of file diff --git a/resources/Project Templates/RequireJS/src/main.js b/resources/Project Templates/RequireJS/src/main.js new file mode 100644 index 0000000000..91364159b9 --- /dev/null +++ b/resources/Project Templates/RequireJS/src/main.js @@ -0,0 +1,22 @@ +(function () { + 'use strict'; + + requirejs.config({ + baseUrl: "src/", + + paths: { + phaser: 'libs/phaser/phaser.min', + }, + + shim: { + 'phaser': { + exports: 'Phaser' + } + } + }); + + require(['phaser', 'game'], function (Phaser, Game) { + var game = new Game(); + game.start(); + }); +}()); \ No newline at end of file