Swift SKSpriteNode绘制顺序

时间:2014-08-07 17:20:48

标签: swift sprite-kit layer skspritenode

我在使用SKSpriteNode时遇到了一些问题。如果我这样做:

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

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

然后image2将显示在image1前面(这很好)。

但如果我这样做:

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

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

然后image1将显示在node2-rectangle前面。为什么这样做?

2 个答案:

答案 0 :(得分:2)

我很惊讶甚至编译 - CGSizeMake应该只采用2个参数(宽度,高度),而不是CGRectMake,它需要4(x,y,宽度,高度)。换句话说,您似乎正在创建大小为node2的{​​{1}}。请尝试... (0,0)

答案 1 :(得分:2)

来自Apple的文档......

  

默认值(SKView的ignoreSiblingOrder属性)为NO,表示何时   多个节点共享相同的z位置,这些节点被排序和   以确定的顺序呈现。父母在他们面前呈现   孩子们和兄弟姐妹都是从最年长到最年轻的。当这个   property设置为YES,树中节点的位置为   确定渲染顺序时忽略。 的渲染顺序   同一z位置的节点是任意的,并且每次都可以改变   渲染新框架 [强调添加]。