2015-05-20 3 views
0

Вот как я это делаю сейчас.Более одного SKSpriteNode?

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 ++

Edit: Вот изображение enter image description here

ответ

1

Я не уверен, что эти спрайтов узлы делают в вашем приложении, но при условии, все они делают подобные вещи , вы можете создать подкласс SKNode и объявить их в этом подклассе.

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) 
    } 
} 

Затем в главном окне вы можете сделать что-то вроде этого:

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 
} 
+0

я должен был добавить больше деталей. Каждый из них - это оценка и узел. Узел будет удален, и он увеличит счет. Все исправления имеют предустановленное место. Я обновил оригинал, чтобы показать, как выглядит мой взгляд. @Аарон – swift

0

Вы можете использовать метод.

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) 
} 

И вы добавлять объекты, как это:

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); 
Смежные вопросы