Swift SKSpriteNode提款单

Swift SKSpriteNode提款单,swift,sprite-kit,layer,skspritenode,Swift,Sprite Kit,Layer,Skspritenode,我对SKSpriteNode有些问题。如果我这样做: var node1=SKSpriteNode(imageNamed:"image1"); var node2=SKSpriteNode(imageNamed:"image2"); self.addChild(node1); self.addChild(node2); var node1=SKSpriteNode(imageNamed:"image1"); var node2=SKSpriteNode(color:UIColor.redCo

我对SKSpriteNode有些问题。如果我这样做:

var node1=SKSpriteNode(imageNamed:"image1");
var node2=SKSpriteNode(imageNamed:"image2");

self.addChild(node1);
self.addChild(node2);
var node1=SKSpriteNode(imageNamed:"image1");
var node2=SKSpriteNode(color:UIColor.redColor(),size: CGSizeMake(0,0,300,300)));

self.addChild(node1);
self.addChild(node2);
然后,
image2
将出现在
image1
前面(这很好)

但如果我这样做:

var node1=SKSpriteNode(imageNamed:"image1");
var node2=SKSpriteNode(imageNamed:"image2");

self.addChild(node1);
self.addChild(node2);
var node1=SKSpriteNode(imageNamed:"image1");
var node2=SKSpriteNode(color:UIColor.redColor(),size: CGSizeMake(0,0,300,300)));

self.addChild(node1);
self.addChild(node2);

然后,
image1
将出现在节点2矩形的前面。它为什么会这样做?

我很惊讶,即使是编译--
CGSizeMake
也应该只接受2个参数(宽度,高度),而
CGRectMake
需要4个参数(x,y,宽度,高度)。换句话说,看起来您正在创建大小为
(0,0)
节点2
。试试……
size:CGSizeMake(300300)

我很惊讶,即使是编译-
CGSizeMake
也应该只接受2个参数(宽度,高度),而不是
CGRectMake
,它需要4个参数(x,y,宽度,高度)。换句话说,看起来您正在创建大小为
(0,0)
节点2
。试试看……
size:CGSizeMake(300300)

来自苹果的文档

默认值(SKView的ignoreSiblingOrder属性)为否,这意味着 多个节点共享相同的z位置,这些节点被排序并 以确定的顺序呈现。父母在出生前就被交给父母了 子女和兄弟姐妹按从大到小的顺序排列。当这 属性设置为“是”,则节点在树中的位置为 在确定渲染顺序时忽略的渲染顺序 位于同一z位置的节点是任意的,并且可以在每次 渲染新帧[添加强调]


从苹果的文档中

默认值(SKView的ignoreSiblingOrder属性)为否,这意味着 多个节点共享相同的z位置,这些节点被排序并 以确定的顺序呈现。父母在出生前就被交给父母了 子女和兄弟姐妹按从大到小的顺序排列。当这 属性设置为“是”,则节点在树中的位置为 在确定渲染顺序时忽略的渲染顺序 位于同一z位置的节点是任意的,并且可以在每次 渲染新帧[添加强调]


如果启用了ignoreSiblingOrder,则需要为节点设置zPosition。如果启用了ignoreSiblingOrder,则需要为节点设置zPosition。