Хобрук: Ваш путь к мастерству в программировании

Более одного 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 штук. Я просто подумал, что после того, как все сказано и сделано, будет сложно часто обновлять все это. Есть ли лучший способ настроить их, чтобы их было проще/эффективнее обновлять? В конце концов я собираюсь добавить функцию, которая при нажатии на процент++

Изменить: вот изображениевведите здесь описание изображения

20.05.2015

Ответы:


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
}
20.05.2015
  • Я должен был добавить больше деталей. Каждое из них представляет собой счет и узел. Узел будет нажат, и это увеличит счет. Все патчи имеют предустановленное место. Я обновил оригинал, чтобы показать, как выглядит мой взгляд. @Аарон 20.05.2015

  • 2

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

    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);
    
    20.05.2015
    Новые материалы

    Декларативное и функциональное программирование в стиле LINQ с использованием JavaScript с использованием каррирования и генератора ...
    LINQ - одна из лучших функций C #, которая обеспечивает элегантный способ написания кода декларативного и функционального стиля, который легко читать и понимать. Благодаря таким функциям ES6,..

    Структуры данных в C ++ - Часть 1
    Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

    Как я опубликовал свое первое приложение в App Store в 13 лет
    Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

    Что в лицо
    Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..

    Почему шаблоны проектирования и почему нет?
    Сложность — мать всех проблем в программировании. Программное обеспечение должно быть разработано с точки зрения того, кто его поддерживает, а не того, кто его пишет, потому что программное..

    Создание дизайна обуви с помощью машинного обучения
    Обувь. Что подождать? Я думал, что речь пойдет о машинном обучении! Ну это так. Если бы вы пошли на Amazon, сколько обуви вы бы нашли? Наверное, много, не так ли? Но много ли в них..

    GraalVM в 2022 году: итоги года
    2022 год был очень продуктивным для проекта и сообщества GraalVM. Вместе мы разработали множество новых функций, выпустили GraalVM для последних версий Java и новых платформ и увидели несколько..