Skip to content

Commit 7c6e6df

Browse files
committed
State swap example done and working.
1 parent fd0a071 commit 7c6e6df

13 files changed

Lines changed: 282 additions & 11 deletions

File tree

examples/state/Game.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
TestGame.Game = function (game) {
2+
3+
this.game = game;
4+
5+
};
6+
7+
TestGame.Game.prototype = {
8+
9+
preload: function () {
10+
11+
this.game.load.spritesheet('balls', '../assets/sprites/balls.png', 17, 17);
12+
13+
},
14+
15+
create: function () {
16+
17+
this.game.add.sprite(this.game.world.centerX, this.game.world.centerY, 'cougar').anchor.setTo(0.5, 0.5);
18+
19+
p = this.game.add.emitter(100, 100, 250);
20+
p.makeParticles('balls', [0,1,2,3,4,5]);
21+
p.minParticleSpeed.setTo(-100, -100);
22+
p.maxParticleSpeed.setTo(100, -200);
23+
p.gravity = 10;
24+
p.start(false, 3000, 10);
25+
26+
this.game.add.tween(p).to({ x: 700 }, 1000, Phaser.Easing.Quadratic.InOut, true, 0, 1000, true);
27+
28+
this.game.input.onDown.add(this.quitToMenu, this);
29+
30+
},
31+
32+
quitToMenu: function () {
33+
34+
console.log('lets quit! back to the main menu');
35+
36+
this.game.state.start('mainmenu');
37+
38+
}
39+
40+
}

examples/state/MainMenu.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
TestGame.MainMenu = function (game) {
2+
3+
// Our main menu
4+
this.game = game;
5+
6+
};
7+
8+
TestGame.MainMenu.prototype = {
9+
10+
create: function () {
11+
12+
var bg = this.game.add.sprite(0, 100, 'nocooper');
13+
bg.scale.setTo(2.5, 2.5);
14+
15+
var t = this.game.add.sprite(100, 600, 'touhou');
16+
t.anchor.setTo(0, 1);
17+
18+
button = this.game.add.button(this.game.world.centerX, 400, 'button', this.startGame, this, 2, 1, 0);
19+
button.anchor.setTo(0.5, 0.5);
20+
21+
},
22+
23+
startGame: function () {
24+
25+
console.log('lets play');
26+
this.game.state.start('game');
27+
28+
}
29+
30+
}

examples/state/Preloader.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
var TestGame = {};
2+
3+
TestGame.Preloader = function (game) {
4+
5+
this.game = game;
6+
7+
};
8+
9+
TestGame.Preloader.prototype = {
10+
11+
preload: function () {
12+
13+
this.game.load.image('nocooper', '../assets/pics/1984-nocooper-space.png');
14+
this.game.load.image('touhou', '../assets/pics/aya_touhou_teng_soldier.png');
15+
this.game.load.image('cougar', '../assets/pics/cougar_ihsf.png');
16+
this.game.load.spritesheet('button', '../assets/buttons/button_sprite_sheet.png', 193, 71);
17+
18+
},
19+
20+
create: function () {
21+
22+
console.log('Preloade finished, lets go to the main menu automatically');
23+
24+
this.game.state.start('mainmenu');
25+
26+
}
27+
28+
}

examples/state/index.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<title>phaser.js - a new beginning</title>
5+
<?php
6+
require('js.php');
7+
?>
8+
<script src="Preloader.js"></script>
9+
<script src="MainMenu.js"></script>
10+
<script src="Game.js"></script>
11+
</head>
12+
<body>
13+
14+
<script type="text/javascript">
15+
16+
(function () {
17+
18+
// No parameters given, which means no default state is created or started
19+
var game = new Phaser.Game(800, 600, Phaser.AUTO);
20+
21+
game.state.add('preloader', TestGame.Preloader, true);
22+
game.state.add('mainmenu', TestGame.MainMenu);
23+
game.state.add('game', TestGame.Game);
24+
25+
})();
26+
27+
</script>
28+
29+
</body>
30+
</html>

examples/state/js.php

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
<?php
2+
// All JS files in build order. Much easier for debugging
3+
// <xscript src="../../src/pixi/extras/Spine.js"></script> <xscript src="../../src/pixi/display/MovieClip.js"></script>
4+
?>
5+
<script src="../../src/Intro.js"></script>
6+
<script src="../../src/pixi/Pixi.js"></script>
7+
<script src="../../src/Phaser.js"></script>
8+
<script src="../../src/utils/Utils.js"></script>
9+
10+
<script src="../../src/pixi/core/Matrix.js"></script>
11+
<script src="../../src/pixi/core/Point.js"></script>
12+
<script src="../../src/pixi/core/Rectangle.js"></script>
13+
<script src="../../src/pixi/display/DisplayObject.js"></script>
14+
<script src="../../src/pixi/display/DisplayObjectContainer.js"></script>
15+
<script src="../../src/pixi/display/Sprite.js"></script>
16+
17+
<script src="../../src/pixi/display/Stage.js"></script>
18+
<script src="../../src/pixi/extras/CustomRenderable.js"></script>
19+
<script src="../../src/pixi/extras/Strip.js"></script>
20+
<script src="../../src/pixi/extras/Rope.js"></script>
21+
22+
<script src="../../src/pixi/extras/TilingSprite.js"></script>
23+
<script src="../../src/pixi/filters/FilterBlock.js"></script>
24+
<script src="../../src/pixi/filters/MaskFilter.js"></script>
25+
<script src="../../src/pixi/primitives/Graphics.js"></script>
26+
<script src="../../src/pixi/renderers/canvas/CanvasGraphics.js"></script>
27+
<script src="../../src/pixi/renderers/canvas/CanvasRenderer.js"></script>
28+
<script src="../../src/pixi/renderers/webgl/WebGLBatch.js"></script>
29+
<script src="../../src/pixi/renderers/webgl/WebGLGraphics.js"></script>
30+
<script src="../../src/pixi/renderers/webgl/WebGLRenderer.js"></script>
31+
<script src="../../src/pixi/renderers/webgl/WebGLRenderGroup.js"></script>
32+
<script src="../../src/pixi/renderers/webgl/WebGLShaders.js"></script>
33+
<script src="../../src/pixi/text/BitmapText.js"></script>
34+
<script src="../../src/pixi/text/Text.js"></script>
35+
<script src="../../src/pixi/textures/BaseTexture.js"></script>
36+
<script src="../../src/pixi/textures/Texture.js"></script>
37+
<script src="../../src/pixi/textures/RenderTexture.js"></script>
38+
<script src="../../src/pixi/utils/EventTarget.js"></script>
39+
<script src="../../src/pixi/utils/Polyk.js"></script>
40+
41+
<script src="../../src/core/Camera.js"></script>
42+
<script src="../../src/core/State.js"></script>
43+
<script src="../../src/core/StateManager.js"></script>
44+
<script src="../../src/core/LinkedList.js"></script>
45+
<script src="../../src/core/Signal.js"></script>
46+
<script src="../../src/core/SignalBinding.js"></script>
47+
<script src="../../src/core/Plugin.js"></script>
48+
<script src="../../src/core/PluginManager.js"></script>
49+
<script src="../../src/core/Stage.js"></script>
50+
<script src="../../src/core/Group.js"></script>
51+
<script src="../../src/core/World.js"></script>
52+
<script src="../../src/core/Game.js"></script>
53+
<script src="../../src/input/Input.js"></script>
54+
<script src="../../src/input/Keyboard.js"></script>
55+
<script src="../../src/input/Mouse.js"></script>
56+
<script src="../../src/input/MSPointer.js"></script>
57+
<script src="../../src/input/Pointer.js"></script>
58+
<script src="../../src/input/Touch.js"></script>
59+
<script src="../../src/input/InputHandler.js"></script>
60+
<script src="../../src/system/Canvas.js"></script>
61+
<script src="../../src/gameobjects/Events.js"></script>
62+
<script src="../../src/gameobjects/GameObjectFactory.js"></script>
63+
<script src="../../src/gameobjects/Sprite.js"></script>
64+
<script src="../../src/gameobjects/TileSprite.js"></script>
65+
<script src="../../src/gameobjects/Text.js"></script>
66+
<script src="../../src/gameobjects/Button.js"></script>
67+
<script src="../../src/gameobjects/Graphics.js"></script>
68+
<script src="../../src/gameobjects/RenderTexture.js"></script>
69+
<script src="../../src/gameobjects/BitmapText.js"></script>
70+
<script src="../../src/system/Canvas.js"></script>
71+
<script src="../../src/system/StageScaleMode.js"></script>
72+
<script src="../../src/system/Device.js"></script>
73+
<script src="../../src/system/RequestAnimationFrame.js"></script>
74+
<script src="../../src/math/RandomDataGenerator.js"></script>
75+
<script src="../../src/math/Math.js"></script>
76+
<script src="../../src/math/QuadTree.js"></script>
77+
<script src="../../src/geom/Circle.js"></script>
78+
<script src="../../src/geom/Point.js"></script>
79+
<script src="../../src/geom/Rectangle.js"></script>
80+
<script src="../../src/net/Net.js"></script>
81+
<script src="../../src/tween/TweenManager.js"></script>
82+
<script src="../../src/tween/Tween.js"></script>
83+
<script src="../../src/tween/Easing.js"></script>
84+
<script src="../../src/time/Time.js"></script>
85+
<script src="../../src/animation/AnimationManager.js"></script>
86+
<script src="../../src/animation/Animation.js"></script>
87+
<script src="../../src/animation/Frame.js"></script>
88+
<script src="../../src/animation/FrameData.js"></script>
89+
<script src="../../src/animation/Parser.js"></script>
90+
<script src="../../src/loader/Cache.js"></script>
91+
<script src="../../src/loader/Loader.js"></script>
92+
<script src="../../src/loader/Parser.js"></script>
93+
<script src="../../src/sound/Sound.js"></script>
94+
<script src="../../src/sound/SoundManager.js"></script>
95+
<script src="../../src/utils/Debug.js"></script>
96+
<script src="../../src/utils/Color.js"></script>
97+
98+
<script src="../../src/physics/arcade/ArcadePhysics.js"></script>
99+
<script src="../../src/physics/arcade/Body.js"></script>
100+
101+
<script src="../../src/particles/Particles.js"></script>
102+
<script src="../../src/particles/arcade/ArcadeParticles.js"></script>
103+
<script src="../../src/particles/arcade/Emitter.js"></script>
104+
105+
<script src="../../src/tilemap/Tilemap.js"></script>
106+
<script src="../../src/tilemap/TilemapLayer.js"></script>
107+
<script src="../../src/tilemap/Tile.js"></script>
108+
<script src="../../src/tilemap/TilemapRenderer.js"></script>
109+

examples/text1.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
(function () {
1414

15-
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { create: create });
15+
var game = new Phaser.Game(800, 600, Phaser.CANVAS, '', { create: create });
1616

1717
function create() {
1818

src/core/Group.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,9 +686,17 @@ Phaser.Group.prototype = {
686686

687687
removeAll: function () {
688688

689+
if (this._container.children.length == 0)
690+
{
691+
return;
692+
}
693+
689694
do
690695
{
691-
this._container.children[0].events.onRemovedFromGroup.dispatch(this._container.children[0], this);
696+
if (this._container.children[0].events)
697+
{
698+
this._container.children[0].events.onRemovedFromGroup.dispatch(this._container.children[0], this);
699+
}
692700
this._container.removeChild(this._container.children[0]);
693701
}
694702
while (this._container.children.length > 0);

src/core/LinkedList.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,16 @@ Phaser.LinkedList.prototype = {
7373

7474
callAll: function (callback) {
7575

76+
if (!this.first || !this.last)
77+
{
78+
return;
79+
}
80+
7681
var entity = this.first;
7782

7883
do
7984
{
80-
if (entity[callback])
85+
if (entity && entity[callback])
8186
{
8287
entity[callback].call(entity);
8388
}

src/core/State.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* State
33
*
4-
* This is a base State class which can be extended if you are creating your game with TypeScript.
4+
* This is a base State class which can be extended if you are creating your own game.
55
* It provides quick access to common functions such as the camera, cache, input, match, sound and more.
66
*
77
* @package Phaser.State
@@ -18,7 +18,7 @@ Phaser.State = function () {
1818
this.cache = null;
1919
this.input = null;
2020
this.load = null;
21-
// this.math = null;
21+
this.math = null;
2222
this.sound = null;
2323
this.stage = null;
2424
this.time = null;
@@ -39,7 +39,7 @@ Phaser.State.prototype = {
3939
this.cache = game.cache;
4040
this.input = game.input;
4141
this.load = game.load;
42-
// this.math = game.math;
42+
this.math = game.math;
4343
this.sound = game.sound;
4444
this.stage = game.stage;
4545
this.time = game.time;

src/core/StateManager.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ Phaser.StateManager.prototype = {
151151
{
152152
// console.log('Phaser.StateManager.addState: Object given');
153153
newState = state;
154+
newState.game = this.game;
154155
}
155156
else if (typeof state === 'function')
156157
{
@@ -237,9 +238,10 @@ Phaser.StateManager.prototype = {
237238

238239
if (clearWorld) {
239240

240-
//this.game.world.destroy();
241+
this.game.world.destroy();
241242

242-
if (clearCache == true) {
243+
if (clearCache == true)
244+
{
243245
this.game.cache.destroy();
244246
}
245247
}

0 commit comments

Comments
 (0)