Group now extends PIXI.DisplayObjectContainer, rather than owning a _container property, which makes life a whole lot easier re: nesting.

This commit is contained in:
photonstorm
2014-02-06 02:31:36 +00:00
parent 9737710200
commit 4cfce8b4d2
89 changed files with 1176 additions and 1521 deletions
+2
View File
@@ -62,6 +62,8 @@ Version 1.2 - "Shienar" - -in development-
Significant API changes:
* Upgraded to Pixi.js 1.4.4
* Group now extends PIXI.DisplayObjectContainer, rather than owning a _container property, which makes life a whole lot easier re: nesting.
New features:
+58 -31
View File
@@ -13,47 +13,76 @@
<script src="$path/src/Phaser.js"></script>
<script src="$path/src/utils/Utils.js"></script>
<script src="$path/src/pixi/core/Matrix.js"></script>
<script src="$path/src/pixi/Pixi.js"></script>
<script src="$path/src/pixi/core/Point.js"></script>
<script src="$path/src/pixi/core/Rectangle.js"></script>
<script src="$path/src/pixi/core/Polygon.js"></script>
<script src="$path/src/pixi/core/Circle.js"></script>
<script src="$path/src/pixi/core/Ellipse.js"></script>
<script src="$path/src/pixi/core/Matrix.js"></script>
<script src="$path/src/pixi/display/DisplayObject.js"></script>
<script src="$path/src/pixi/display/DisplayObjectContainer.js"></script>
<script src="$path/src/pixi/display/Sprite.js"></script>
<script src="$path/src/pixi/display/SpriteBatch.js"></script>
<script src="$path/src/pixi/display/MovieClip.js"></script>
<script src="$path/src/pixi/filters/FilterBlock.js"></script>
<script src="$path/src/pixi/text/Text.js"></script>
<script src="$path/src/pixi/text/BitmapText.js"></script>
<script src="$path/src/pixi/InteractionData.js"></script>
<script src="$path/src/pixi/InteractionManager.js"></script>
<script src="$path/src/pixi/display/Stage.js"></script>
<script src="$path/src/pixi/extras/CustomRenderable.js"></script>
<script src="$path/src/pixi/utils/Utils.js"></script>
<script src="$path/src/pixi/utils/EventTarget.js"></script>
<script src="$path/src/pixi/utils/Detector.js"></script>
<script src="$path/src/pixi/utils/Polyk.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLShaderUtils.js"></script>
<script src="$path/src/pixi/renderers/webgl/shaders/PixiShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/shaders/PixiFastShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/shaders/StripShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/shaders/PrimitiveShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLGraphics.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLRenderer.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLMaskManager.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLShaderManager.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLFastSpriteBatch.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/WebGLFilterManager.js"></script>
<script src="$path/src/pixi/renderers/webgl/utils/FilterTexture.js"></script>
<script src="$path/src/pixi/renderers/canvas/utils/CanvasMaskManager.js"></script>
<script src="$path/src/pixi/renderers/canvas/utils/CanvasTinter.js"></script>
<script src="$path/src/pixi/renderers/canvas/CanvasRenderer.js"></script>
<script src="$path/src/pixi/renderers/canvas/CanvasGraphics.js"></script>
<script src="$path/src/pixi/primitives/Graphics.js"></script>
<script src="$path/src/pixi/extras/Strip.js"></script>
<script src="$path/src/pixi/extras/Rope.js"></script>
<script src="$path/src/pixi/extras/TilingSprite.js"></script>
<script src="$path/src/pixi/filters/AbstractFilter.js"></script>
<script src="$path/src/pixi/filters/FilterBlock.js"></script>
<script src="$path/src/pixi/primitives/Graphics.js"></script>
<script src="$path/src/pixi/renderers/canvas/CanvasGraphics.js"></script>
<script src="$path/src/pixi/renderers/canvas/CanvasRenderer.js"></script>
<script src="$path/src/pixi/renderers/webgl/PixiShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/PrimitiveShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/StripShader.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLBatch.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLFilterManager.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLGraphics.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLRenderer.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLRenderGroup.js"></script>
<script src="$path/src/pixi/renderers/webgl/WebGLShaders.js"></script>
<script src="$path/src/pixi/text/BitmapText.js"></script>
<script src="$path/src/pixi/text/Text.js"></script>
<script src="$path/src/pixi/extras/Spine.js"></script>
<script src="$path/src/pixi/textures/BaseTexture.js"></script>
<script src="$path/src/pixi/textures/Texture.js"></script>
<script src="$path/src/pixi/utils/EventTarget.js"></script>
<script src="$path/src/pixi/utils/Polyk.js"></script>
<script src="$path/src/pixi/textures/RenderTexture.js"></script>
<script src="$path/src/pixi/loaders/AssetLoader.js"></script>
<script src="$path/src/pixi/loaders/JsonLoader.js"></script>
<script src="$path/src/pixi/loaders/AtlasLoader.js"></script>
<script src="$path/src/pixi/loaders/SpriteSheetLoader.js"></script>
<script src="$path/src/pixi/loaders/ImageLoader.js"></script>
<script src="$path/src/pixi/loaders/BitmapFontLoader.js"></script>
<script src="$path/src/pixi/loaders/SpineLoader.js"></script>
<script src="$path/src/pixi/filters/AbstractFilter.js"></script>
<script src="$path/src/pixi/filters/AlphaMaskFilter.js"></script>
<script src="$path/src/pixi/filters/ColorMatrixFilter.js"></script>
<script src="$path/src/pixi/filters/GrayFilter.js"></script>
<script src="$path/src/pixi/filters/DisplacementFilter.js"></script>
<script src="$path/src/pixi/filters/PixelateFilter.js"></script>
<script src="$path/src/pixi/filters/BlurXFilter.js"></script>
<script src="$path/src/pixi/filters/BlurYFilter.js"></script>
<script src="$path/src/pixi/filters/BlurFilter.js"></script>
<script src="$path/src/pixi/filters/InvertFilter.js"></script>
<script src="$path/src/pixi/filters/SepiaFilter.js"></script>
<script src="$path/src/pixi/filters/TwistFilter.js"></script>
<script src="$path/src/pixi/filters/ColorStepFilter.js"></script>
<script src="$path/src/pixi/filters/DotScreenFilter.js"></script>
<script src="$path/src/pixi/filters/CrossHatchFilter.js"></script>
<script src="$path/src/pixi/filters/RGBSplitFilter.js"></script>
<script src="$path/src/core/Camera.js"></script>
<script src="$path/src/core/State.js"></script>
@@ -145,7 +174,5 @@
<script src="$path/src/tilemap/TilemapLayer.js"></script>
<script src="$path/src/tilemap/TilemapParser.js"></script>
<script src="$path/src/tilemap/Tileset.js"></script>
<script src="$path/src/PixiPatch.js"></script>
EOL;
?>
+1 -1
View File
@@ -32,7 +32,7 @@
function dirToArray($dir) {
$ignore = array('.', '..', '_site', 'assets', 'states', 'book', 'filters');
$ignore = array('.', '..', '_site', 'assets', 'states', 'book', 'filters', 'misc');
$result = array();
$root = scandir($dir);
$dirs = array_diff($root, $ignore);

Before

Width:  |  Height:  |  Size: 196 B

After

Width:  |  Height:  |  Size: 196 B

+45
View File
@@ -0,0 +1,45 @@
var game = new Phaser.Game(800, 600, Phaser.AUTO, 'phaser-example', { preload: preload, create: create, update: update, render: render });
function preload() {
game.load.image('pic', 'assets/pics/backscroll.png');
}
var sprite;
var sprite2;
var g;
function create() {
sprite = game.add.sprite(0, 0, 'pic');
g = game.add.group();
g.create(0, 0, 'pic');
g.y = 200;
g.rotation = 0.1;
// sprite2 = game.add.sprite(0, 300, 'pic');
game.input.onDown.add(tint, this);
}
function tint() {
sprite.tint = Math.random() * 0xFFFFFF;
// sprite2.tint = Math.random() * 0xFFFFFF;
}
function update() {
}
function render() {
}
+1 -1
View File
@@ -10,7 +10,7 @@
var Phaser = Phaser || {
VERSION: '<%= version %>',
DEV_VERSION: '1.1.5',
DEV_VERSION: '1.2',
GAMES: [],
AUTO: 0,
+1042 -1387
View File
File diff suppressed because it is too large Load Diff
+16 -71
View File
@@ -54,38 +54,28 @@ Phaser.World.prototype.boot = function () {
this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height);
this.camera.displayObject = this._container;
this.camera.displayObject = this;
this.game.camera = this.camera;
this.game.stage._stage.addChild(this);
}
/**
* This is called automatically after the plugins preUpdate and before the State.update.
* Most objects have preUpdate methods and it's where initial movement, drawing and calculations are done.
*
* @method Phaser.World#update
* @method Phaser.World#preUpdate
*/
Phaser.World.prototype.preUpdate = function () {
if (this.game.stage._stage.first._iNext)
for (var i = 0, len = this.children.length; i < len; i++)
{
var currentNode = this.game.stage._stage.first._iNext;
do
if (this.children[i]['preUpdate'])
{
// If preUpdate exists, and it returns false, skip PIXI child objects
if (currentNode['preUpdate'] && !currentNode.preUpdate())
{
currentNode = currentNode.last._iNext;
}
else
{
currentNode = currentNode._iNext;
}
this.children[i].preUpdate();
}
while (currentNode != this.game.stage._stage.last._iNext)
}
}
@@ -98,26 +88,12 @@ Phaser.World.prototype.preUpdate = function () {
*/
Phaser.World.prototype.update = function () {
this.currentRenderOrderID = 0;
if (this.game.stage._stage.first._iNext)
for (var i = 0, len = this.children.length; i < len; i++)
{
var currentNode = this.game.stage._stage.first._iNext;
do
if (this.children[i]['update'])
{
// If update exists, and it returns false, skip PIXI child objects
if (currentNode['update'] && !currentNode.update())
{
currentNode = currentNode.last._iNext;
}
else
{
currentNode = currentNode._iNext;
}
this.children[i].update();
}
while (currentNode != this.game.stage._stage.last._iNext)
}
}
@@ -138,40 +114,24 @@ Phaser.World.prototype.postUpdate = function () {
this.camera.update();
if (this.game.stage._stage.first._iNext)
for (var i = 0, len = this.children.length; i < len; i++)
{
var currentNode = this.game.stage._stage.first._iNext;
do
if (this.children[i]['postUpdate'])
{
if (currentNode['postUpdate'] && currentNode !== this.camera.target)
{
currentNode.postUpdate();
}
currentNode = currentNode._iNext;
this.children[i].postUpdate();
}
while (currentNode != this.game.stage._stage.last._iNext)
}
}
else
{
this.camera.update();
if (this.game.stage._stage.first._iNext)
for (var i = 0, len = this.children.length; i < len; i++)
{
var currentNode = this.game.stage._stage.first._iNext;
do
if (this.children[i]['postUpdate'])
{
if (currentNode['postUpdate'])
{
currentNode.postUpdate();
}
currentNode = currentNode._iNext;
this.children[i].postUpdate();
}
while (currentNode != this.game.stage._stage.last._iNext)
}
}
@@ -327,18 +287,3 @@ Object.defineProperty(Phaser.World.prototype, "randomY", {
});
/**
* @name Phaser.World#visible
* @property {boolean} visible - Gets or sets the visible state of the World.
*/
Object.defineProperty(Phaser.World.prototype, "visible", {
get: function () {
return this._container.visible;
},
set: function (value) {
this._container.visible = value;
}
});
-5
View File
@@ -85,11 +85,6 @@ Phaser.RenderTexture.prototype.render = function(displayObject, position, clear,
if (typeof clear === 'undefined') { clear = false; }
if (typeof renderHidden === 'undefined') { renderHidden = false; }
if (displayObject instanceof Phaser.Group)
{
displayObject = displayObject._container;
}
if (PIXI.gl)
{
this.renderWebGL(displayObject, position, clear, renderHidden);
+2 -2
View File
@@ -519,7 +519,6 @@ Phaser.Particles.Arcade.Emitter.prototype.at = function (object) {
* The emitters alpha value.
* @name Phaser.Particles.Arcade.Emitter#alpha
* @property {number} alpha - Gets or sets the alpha value of the Emitter.
*/
Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "alpha", {
get: function () {
@@ -531,12 +530,12 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "alpha", {
}
});
*/
/**
* The emitter visible state.
* @name Phaser.Particles.Arcade.Emitter#visible
* @property {boolean} visible - Gets or sets the Emitter visible state.
*/
Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "visible", {
get: function () {
@@ -548,6 +547,7 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "visible", {
}
});
*/
/**
* @name Phaser.Particles.Arcade.Emitter#x
+9 -23
View File
@@ -636,15 +636,15 @@ Phaser.Physics.Arcade.prototype = {
return;
}
var len = group._container.children.length;
var len = group.children.length;
for (var i = 0; i < len; i++)
{
for (var j = i + 1; j <= len; j++)
{
if (group._container.children[i] && group._container.children[j] && group._container.children[i].exists && group._container.children[j].exists)
if (group.children[i] && group.children[j] && group.children[i].exists && group.children[j].exists)
{
this.collideSpriteVsSprite(group._container.children[i], group._container.children[j], collideCallback, processCallback, callbackContext, overlapOnly);
this.collideSpriteVsSprite(group.children[i], group.children[j], collideCallback, processCallback, callbackContext, overlapOnly);
}
}
}
@@ -664,19 +664,12 @@ Phaser.Physics.Arcade.prototype = {
return;
}
if (group1._container.first._iNext)
for (var i = 0, len = group1.children.length; i < len; i++)
{
var currentNode = group1._container.first._iNext;
do
if (group1.children[i].exists)
{
if (currentNode.exists)
{
this.collideSpriteVsGroup(currentNode, group2, collideCallback, processCallback, callbackContext, overlapOnly);
}
currentNode = currentNode._iNext;
this.collideSpriteVsGroup(group1.children[i], group2, collideCallback, processCallback, callbackContext, overlapOnly);
}
while (currentNode != group1._container.last._iNext);
}
},
@@ -746,19 +739,12 @@ Phaser.Physics.Arcade.prototype = {
return;
}
if (group._container.first._iNext)
for (var i = 0, len = group.children.length; i < len; i++)
{
var currentNode = group._container.first._iNext;
do
if (group.children[i].exists)
{
if (currentNode.exists)
{
this.collideSpriteVsTilemapLayer(currentNode, tilemapLayer, collideCallback, processCallback, callbackContext);
}
currentNode = currentNode._iNext;
this.collideSpriteVsTilemapLayer(group.children[i], tilemapLayer, collideCallback, processCallback, callbackContext);
}
while (currentNode != group._container.last._iNext);
}
},