首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个SKSpriteNode?

多个SKSpriteNode?
EN

Stack Overflow用户
提问于 2015-05-20 12:42:40
回答 2查看 41关注 0票数 0

这就是我目前所做的。

代码语言:javascript
复制
    patch1.position = CGPointMake(CGRectGetMidX(self.frame) - 80, CGRectGetMidY(self.frame) + 205)
    patch1.yScale = 0.75
    patch1.xScale = 0.75
    self.addChild(patch1)

    percent1.position = CGPointMake(CGRectGetMidX(self.frame) - 80, CGRectGetMidY(self.frame) + 125)
    percent1.xScale = 0.5
    percent1.yScale = 0.5
    self.addChild(percent1)

    patch2.position = CGPointMake(CGRectGetMidX(self.frame) - 80, CGRectGetMidY(self.frame) + 55)
    patch2.yScale = 0.75
    patch2.xScale = 0.75
    self.addChild(patch2)

    percent2.position = CGPointMake(CGRectGetMidX(self.frame) - 80, CGRectGetMidY(self.frame) - 25)
    percent2.xScale = 0.5
    percent2.yScale = 0.5
    self.addChild(percent2)

除了我每个人都有8个。我只是想,在说了这么多,做了这么多之后,经常更新这些将是一件痛苦的事情。有没有更好的方法来设置它们,以便更容易/更高效地更新它们?最后,我将添加一个函数,当点击percent++时

编辑:这是图片

EN

回答 2

Stack Overflow用户

发布于 2015-05-20 13:32:02

我不确定这些精灵节点在你的应用程序中做什么,但假设它们都在做类似的事情,你可以创建一个SKNode的子类,并在这个子类中声明它们。

代码语言:javascript
复制
class MySubclass: SKNode {
    // Declare variables here.... initialize them in init().... ect.
    let node1 = SKSpriteNode()
    let node2 = SKSpriteNode()

    override init(){
        // DON'T FORGET TO ADD YOUR NODES AS CHILDREN!!
        self.addChild(node1)
        self.addChild(node2)
    }
}

然后在你的主视图中,你可以这样做:

代码语言:javascript
复制
let myNodeSubClass = MySubclass() //Assuming your subclass init doesn't have any parameters

override init(size: CGSize){
    super.init(size)
    myNodesubClass.position = CGPointMake(200, 200) //This will set the position of all the children of your sub class
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-20 13:44:58

你可以使用方法。

代码语言:javascript
复制
func createSomething(yPosition: CGFloat,xScale: CGFloat, yScale: CGFloat) {

    let percent = SKSpriteNode(imageNamed:"Something")
    percent.position = CGPointMake(self.frame.size.width / 2 - 80, self.frame.size.height / 2 + yPosition )
    percent.xScale = xScale
    percent.yScale = yScale
    self.addChild(percent)
}

您可以像这样添加对象:

代码语言:javascript
复制
   self.createSomething(205, xScale: 0.75, yScale: 0.75);

   self.createSomething(125, xScale: 0.5, yScale: 0.5);

   self.createSomething(55, xScale: 0.75, yScale: 0.75);

   self.createSomething(-25, xScale: 0.5, yScale: 0.5);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30340423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档