Scene
cc.Scene is a subclass of cc.Node that is used only as an abstract concept.
cc.Scene and cc.Node are almost identical with the difference that users can not modify cc.Scene manually.
Properties
name String
Name of node.
examples:
node.name = "New Node";
cc.log("Node Name: " + node.name);
parent Node
The parent of the node.
examples:
node.parent = newNode;
uuid String readOnly
The uuid for editor, will be stripped before building project.
examples:
cc.log("Node Uuid: " + node.uuid);
skewX Number
Skew x
examples:
node.skewX = 0;
cc.log("Node SkewX: " + node.skewX);
skewY Number
Skew y
examples:
node.skewY = 0;
cc.log("Node SkewY: " + node.skewY);
zIndex Number
Z order in depth which stands for the drawing order.
examples:
node.zIndex = 1;
cc.log("Node zIndex: " + node.zIndex);
rotation Number
Rotation of node.
examples:
node.rotation = 90;
cc.log("Node Rotation: " + node.rotation);
rotationX Number
Rotation on x axis.
examples:
node.rotationX = 45;
cc.log("Node Rotation X: " + node.rotationX);
rotationY Number
Rotation on y axis.
examples:
node.rotationY = 45;
cc.log("Node Rotation Y: " + node.rotationY);
scaleX Number
Scale on x axis.
examples:
node.scaleX = 0.5;
cc.log("Node Scale X: " + node.scaleX);
scaleY Number
Scale on y axis.
examples:
node.scaleY = 0.5;
cc.log("Node Scale Y: " + node.scaleY);
x Number
x axis position of node.
examples:
node.x = 100;
cc.log("Node Position X: " + node.x);
y Number
y axis position of node.
examples:
node.y = 100;
cc.log("Node Position Y: " + node.y);
children Node[] readOnly
All children nodes.
examples:
var children = node.children;
for (var i = 0; i < children.lenght; ++i) {
cc.log("Node: " + children[i]);
}
childrenCount Number readOnly
All children nodes.
examples:
var count = node.childrenCount;
cc.log("Node Children Count: " + count);
anchorX Number
Anchor point's position on x axis.
examples:
node.anchorX = 0;
anchorY Number
Anchor point's position on y axis.
examples:
node.anchorY = 0;
width Number
Width of node.
examples:
node.width = 100;
height Number
Height of node.
examples:
node.height = 100;
_ignoreAnchor Boolean private
Indicate whether ignore the anchor point property for positioning.
tag Number
Tag of node.
examples:
node.tag = 1001;
opacity Number
Opacity of node, default value is 255.
examples:
node.opacity = 255;
cascadeOpacity Boolean
Indicate whether node's opacity value affect its child nodes, default value is false.
examples:
cc.log("CascadeOpacity: " + node.cascadeOpacity);
color Color
Color of node, default value is white: (255, 255, 255).
examples:
node.color = new cc.Color(255, 255, 255);
_sgNode _ccsg.Node private
Current scene graph node for this node.
_sizeProvider _ccsg.Node private
Current active size provider for this node. Size provider can equals to this._sgNode.
__eventTargets EventTarget[] private
Register all related EventTargets, all event callbacks will be removed in _onPreDestroy
position Vec2
position of node.
examples:
node.position = new cc.Vec2(0, 0);
scale Number
Scale of node.
examples:
node.scale = 1;
_name String private
_objFlags Number private
isValid Boolean readOnly
Indicates whether the object is not yet destroyed.
examples:
cc.log(obj.isValid);
Methods
attr
(
-
attrs
)
- attrs
Properties configuration function All properties in attrs will be set to the node, when the setter of the node is available, the property will be set via setter function.
name | type | description |
---|---|---|
attrs
|
Object |
Properties to be set to node |
examples:
var attrs = { key: 0, num: 100 };
node.attr(attrs);
setGlobalZOrder
(
-
globalZOrder
)
- globalZOrder
Defines the oder in which the nodes are renderer.
Nodes that have a Global Z Order lower, are renderer first.
In case two or more nodes have the same Global Z Order, the oder is not guaranteed.
The only exception if the Nodes have a Global Z Order == 0. In that case, the Scene Graph order is used.
By default, all nodes have a Global Z Order = 0. That means that by default, the Scene Graph order is used to render the nodes.
Global Z Order is useful when you need to render nodes in an order different than the Scene Graph order.
Limitations: Global Z Order can't be used used by Nodes that have SpriteBatchNode as one of their ancestors.
And if ClippingNode is one of the ancestors, then "global Z order" will be relative to the ClippingNode.
name | type | description |
---|---|---|
globalZOrder
|
Number |
examples:
node.setGlobalZOrder(0);
getGlobalZOrder ( ) number
Return the Node's Global Z Order.
returns:
examples:
cc.log("Global Z Order: " + node.getGlobalZOrder());
getScale ( ) Number
Returns the scale factor of the node. Assertion will fail when _scaleX != _scaleY.
returns:
examples:
cc.log("Node Scale: " + node.getScale());
setScale
(
-
scale
-
[scaleY
=scale]
)
- scale
- [scaleY =scale]
getPosition ( ) Vec2
Returns a copy of the position (x,y) of the node in cocos2d coordinates. (0,0) is the left-bottom corner.
returns:
examples:
cc.log("Node Position: " + node.getPosition());
setPosition
(
-
newPosOrxValue
-
[yValue
]
)
- newPosOrxValue
- [yValue ]
Changes the position (x,y) of the node in cocos2d coordinates.
The original point (0,0) is at the left-bottom corner of screen.
Usually we use cc.v2(x,y) to compose CCVec2 object.
and Passing two numbers (x,y) is more efficient than passing CCPoint object.
name | type | description |
---|---|---|
newPosOrxValue
|
Vec2 | Number |
The position (x,y) of the node in coordinates or the X coordinate for position |
yValue
optional
|
Number |
Y coordinate for position |
examples:
node.setPosition(cc.v2(0, 0));
node.setPosition(0, 0);
getAnchorPoint ( ) Vec2
Returns a copy of the anchor point.
Anchor point is the point around which all transformations and positioning manipulations take place.
It's like a pin in the node where it is "attached" to its parent.
The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.
But you can use values higher than (1,1) and lower than (0,0) too.
The default anchor point is (0.5,0.5), so it starts at the center of the node.
returns:
examples:
cc.log("Node AnchorPoint: " + node.getAnchorPoint());
setAnchorPoint
(
-
point
-
[y
]
)
- point
- [y ]
Sets the anchor point in percent.
anchor point is the point around which all transformations and positioning manipulations take place.
It's like a pin in the node where it is "attached" to its parent.
The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.
But you can use values higher than (1,1) and lower than (0,0) too.
The default anchor point is (0.5,0.5), so it starts at the center of the node.
name | type | description |
---|---|---|
point
|
Vec2 | Number |
The anchor point of node or The x axis anchor of node. |
y
optional
|
Number |
The y axis anchor of node. |
examples:
node.setAnchorPoint(cc.v2(1, 1));
node.setAnchorPoint(1, 1);
getAnchorPointInPoints ( ) Vec2
Returns a copy of the anchor point in absolute pixels.
you can only read it. If you wish to modify it, use setAnchorPoint.
returns:
examples:
cc.log("AnchorPointInPoints: " + node.getAnchorPointInPoints());
getContentSize
(
-
[ignoreSizeProvider
=false]
)
Size
- [ignoreSizeProvider =false]
Returns a copy the untransformed size of the node.
The contentSize remains the same no matter the node is scaled or rotated.
All nodes has a size. Layer and Scene has the same size of the screen by default.
name | type | description | |
---|---|---|---|
ignoreSizeProvider
optional
|
Boolean | false |
true if you need to get the original size of the node |
returns:
examples:
cc.log("Content Size: " + node.getContentSize());
setContentSize
(
-
size
-
[height
]
)
- size
- [height ]
Sets the untransformed size of the node.
The contentSize remains the same no matter the node is scaled or rotated.
All nodes has a size. Layer and Scene has the same size of the screen.
name | type | description |
---|---|---|
size
|
Size | Number |
The untransformed size of the node or The untransformed size's width of the node. |
height
optional
|
Number |
The untransformed size's height of the node. |
examples:
node.setContentSize(cc.size(100, 100));
node.setContentSize(100, 100);
getBoundingBox ( ) Rect
Returns a "local" axis aligned bounding box of the node.
The returned box is relative only to its parent.
returns:
examples:
var boundingBox = node.getBoundingBox();
cleanup ( )
Stops all running actions and schedulers.
examples:
node.cleanup();
getChildByTag
(
-
aTag
)
Node
- aTag
getChildByUuid
(
-
uuid
)
Node
- uuid
getChildByName
(
-
name
)
Node
- name
addChild
(
-
child
-
[localZOrder
]
-
[tag
]
)
- child
- [localZOrder ]
- [tag ]
"add" logic MUST only be in this method
name | type | description |
---|---|---|
child
|
Node |
A child node |
localZOrder
optional
|
Number |
Z order for drawing priority. Please refer to setZOrder(int) |
tag
optional
|
Number | String |
An integer or a name to identify the node easily. Please refer to setTag(int) and setName(string) |
examples:
node.addChild(newNode, 1, 1001);
removeFromParent
(
-
[cleanup
=true]
)
- [cleanup =true]
Remove itself from its parent node. If cleanup is true, then also remove all actions and callbacks.
If the cleanup parameter is not passed, it will force a cleanup.
If the node orphan, then nothing happens.
name | type | description | |
---|---|---|---|
cleanup
optional
|
Boolean | true |
true if all actions and callbacks on this node should be removed, false otherwise. |
examples:
node.removeFromParent();
node.removeFromParent(false);
removeChild
(
-
child
-
[cleanup
=true]
)
- child
- [cleanup =true]
Removes a child from the container. It will also cleanup all running actions depending on the cleanup parameter.
If the cleanup parameter is not passed, it will force a cleanup."remove" logic MUST only be on this method
If a class wants to extend the 'removeChild' behavior it only needs
to override this method.
name | type | description | |
---|---|---|---|
child
|
Node |
The child node which will be removed. |
|
cleanup
optional
|
Boolean | true |
true if all running actions and callbacks on the child node will be cleanup, false otherwise. |
examples:
node.removeChild(newNode);
node.removeChild(newNode, false);
removeChildByTag
(
-
tag
-
[cleanup
=true]
)
- tag
- [cleanup =true]
Removes a child from the container by tag value. It will also cleanup all running actions depending on the cleanup parameter.
If the cleanup parameter is not passed, it will force a cleanup.
name | type | description | |
---|---|---|---|
tag
|
Number |
An integer number that identifies a child node |
|
cleanup
optional
|
Boolean | true |
true if all running actions and callbacks on the child node will be cleanup, false otherwise. |
examples:
node.removeChildByTag(1001);
node.removeChildByTag(1001, false);
removeAllChildren
(
-
[cleanup
=true]
)
- [cleanup =true]
Removes all children from the container and do a cleanup all running actions depending on the cleanup parameter.
If the cleanup parameter is not passed, it will force a cleanup.
name | type | description | |
---|---|---|---|
cleanup
optional
|
Boolean | true |
true if all running actions on all children nodes should be cleanup, false otherwise. |
examples:
node.removeAllChildren();
node.removeAllChildren(false);
getParentToNodeTransform ( ) AffineTransform
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
The matrix is in Pixels. The returned transform is readonly and cannot be changed.
returns:
examples:
var affineTransform = node.getParentToNodeTransform();
getNodeToWorldTransform ( ) AffineTransform
Returns the world affine transform matrix. The matrix is in Pixels.
returns:
examples:
var affineTransform = node.getNodeToWorldTransform();
getNodeToWorldTransformAR ( ) AffineTransform
Returns the world affine transform matrix. The matrix is in Pixels.
This method is AR (Anchor Relative).
returns:
examples:
var mat = node.getNodeToWorldTransformAR();
getWorldToNodeTransform ( ) AffineTransform
Returns the inverse world affine transform matrix. The matrix is in Pixels. 返回世界坐标系到节点坐标系的逆矩阵。
returns:
examples:
var affineTransform = node.getWorldToNodeTransform();
convertToNodeSpace
(
-
worldPoint
)
Vec2
- worldPoint
convertToWorldSpace
(
-
nodePoint
)
Vec2
- nodePoint
convertToNodeSpaceAR
(
-
worldPoint
)
Vec2
- worldPoint
convertToWorldSpaceAR
(
-
nodePoint
)
Vec2
- nodePoint
convertTouchToNodeSpace
(
-
touch
)
Vec2
- touch
convertTouchToNodeSpaceAR
(
-
touch
)
Vec2
- touch
getNodeToParentTransform ( ) AffineTransform
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
The matrix is in Pixels.
returns:
examples:
var affineTransform = node.getNodeToParentTransform();
getNodeToParentTransformAR ( ) AffineTransform
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
The matrix is in Pixels.
This method is AR (Anchor Relative).
returns:
examples:
var affineTransform = node.getNodeToParentTransformAR();
getBoundingBoxToWorld ( ) Rect
Returns a "world" axis aligned bounding box of the node.
The bounding box contains self and active children's world bounding box.
returns:
examples:
var newRect = node.getBoundingBoxToWorld();
getDisplayedOpacity ( ) number
Returns the displayed opacity of Node, the difference between displayed opacity and opacity is that displayed opacity is calculated based on opacity and parent node's opacity when cascade opacity enabled.
returns:
examples:
var displayOpacity = node.getDisplayedOpacity();
getDisplayedColor ( ) Color
Returns the displayed color of Node, the difference between displayed color and color is that displayed color is calculated based on color and parent node's color when cascade color enabled.
returns:
examples:
var displayColor = node.getDisplayedColor();
setOpacityModifyRGB
(
-
opacityValue
)
- opacityValue
Set whether color should be changed with the opacity value, useless in ccsg.Node, but this function is override in some class to have such behavior.
name | type | description |
---|---|---|
opacityValue
|
Boolean |
examples:
node.setOpacityModifyRGB(true);
isOpacityModifyRGB ( ) Boolean
Get whether color should be changed with the opacity value.
returns:
examples:
var hasChange = node.isOpacityModifyRGB();
getSiblingIndex ( ) number
setSiblingIndex
(
-
index
)
- index
Set the sibling index of this node.
name | type | description |
---|---|---|
index
|
Number |
examples:
node.setSiblingIndex(1);
isChildOf
(
-
parent
)
Boolean
- parent
sortAllChildren ( )
Sorts the children array depends on children's zIndex and arrivalOrder, normally you won't need to invoke this function.
getPositionX ( ) Number
Returns the x axis position of the node in cocos2d coordinates.
returns:
examples:
var posX = node.getPositionX();
setPositionX
(
-
x
)
- x
Sets the x axis position of the node in cocos2d coordinates.
name | type | description |
---|---|---|
x
|
Number |
examples:
node.setPositionX(1);
getPositionY ( ) Number
Returns the y axis position of the node in cocos2d coordinates.
returns:
examples:
var posY = node.getPositionY();
setPositionY
(
-
y
)
- y
Sets the y axis position of the node in cocos2d coordinates.
name | type | description |
---|---|---|
y
|
Number |
The new position in y axis |
examples:
node.setPositionY(100);
getLocalZOrder ( ) Number
Returns the local Z order of this node.
returns:
examples:
var localZorder = node.getLocalZOrder();
setLocalZOrder
(
-
localZOrder
)
- localZOrder
LocalZOrder is the 'key' used to sort the node relative to its siblings.
The Node's parent will sort all its children based ont the LocalZOrder value.
If two nodes have the same LocalZOrder, then the node that was added first to the children's array
will be in front of the other node in the array.
Also, the Scene Graph is traversed using the "In-Order" tree traversal algorithm ( http://en.wikipedia.org/wiki/Tree_traversal#In-order )
And Nodes that have LocalZOder values smaller than 0 are the "left" subtree
While Nodes with LocalZOder greater than 0 are the "right" subtree.
name | type | description |
---|---|---|
localZOrder
|
Number |
examples:
node.setLocalZOrder(1);
isCascadeOpacityEnabled ( ) Boolean
Returns whether node's opacity value affect its child nodes.
returns:
examples:
cc.log(node.isCascadeOpacityEnabled());
setCascadeOpacityEnabled
(
-
cascadeOpacityEnabled
)
- cascadeOpacityEnabled
Enable or disable cascade opacity, if cascade enabled, child nodes' opacity will be the multiplication of parent opacity and its own opacity.
name | type | description |
---|---|---|
cascadeOpacityEnabled
|
Boolean |
examples:
node.setCascadeOpacityEnabled(true);
setCascadeColorEnabled
(
-
cascadeColorEnabled
)
- cascadeColorEnabled
Enable or disable cascade color, if cascade enabled, child nodes' opacity will be the cascade value of parent color and its own color.
name | type | description |
---|---|---|
cascadeColorEnabled
|
Boolean |
examples:
node.setCascadeColorEnabled(true);
destroy ( ) Boolean
Destroy this Object, and release all its own references to other objects.
After destroy, this CCObject is not usable any more.
You can use cc.isValid(obj) (or obj.isValid if obj is non-nil) to check whether the object is destroyed before
accessing it.
returns:
examples:
obj.destroy();
_destruct ( ) private
Clear all references in the instance.
NOTE: this method will not clear the getter or setter functions which defined in the INSTANCE of CCObject. You can override the _destruct method if you need.
_onPreDestroy ( ) private
Called before the object being destroyed.
_serialize
(
-
exporting
)
object
private
- exporting
_deserialize
(
-
data
-
ctx
)
private
- data
- ctx
Init this object from the custom serialized data.
name | type | description |
---|---|---|
data
|
Object |
the serialized json data |
ctx
|
_Deserializer |