如何在iOS游戏中命名和控制单个儿童?

如何在iOS游戏中命名和控制单个儿童?,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我是Swift编程新手,我正在使用创建新游戏应用程序时创建的默认代码。当前,当您运行应用程序时,每次单击屏幕,它都会创建一个新的旋转宇宙飞船 我想知道如何给每个“孩子”命名,然后在命名后分别控制他们。所以基本上如果我把它们命名为bob1,bob2,bob3。。。如何移动或调整bob2的大小 一旦它们被创建,我就不知道如何访问或修改它们 提前感谢。:) 下面是到目前为止我的代码 // // GameScene.swift // OSX App // // Created by Adminis

我是Swift编程新手,我正在使用创建新游戏应用程序时创建的默认代码。当前,当您运行应用程序时,每次单击屏幕,它都会创建一个新的旋转宇宙飞船

我想知道如何给每个“孩子”命名,然后在命名后分别控制他们。所以基本上如果我把它们命名为bob1,bob2,bob3。。。如何移动或调整bob2的大小

一旦它们被创建,我就不知道如何访问或修改它们

提前感谢。:)

下面是到目前为止我的代码

//
//  GameScene.swift
//  OSX App
//
//  Created by Administrator on 2016-02-11.
//  Copyright (c) 2016 Administrator. All rights reserved.
//
import SpriteKit
var x = 0

class GameScene: SKScene {
    //let myLabel = SKLabelNode(fontNamed:"Chalkduster")
    let sprite = SKSpriteNode(imageNamed:"Spaceship")
    let myLabel = SKLabelNode(fontNamed:"Chalkduster")

    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        myLabel.text = "My First App"
        myLabel.fontSize = 45
        myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))

        self.addChild(myLabel)
    }

    override func mouseDown(theEvent: NSEvent) {
        /* Called when a mouse click occurs */
        let location = theEvent.locationInNode(self)


        sprite.position = location;
        sprite.setScale(0.5)

        //let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
        //sprite.runAction(SKAction.repeatActionForever(action))

        self.addChild(sprite)
        var xyPos : CGPoint

        //Increment name for each object
        x++
        sprite.name = "Bob" + "\(x)"
        print(sprite.name)
        xyPos = sprite.position
        print(xyPos)

    }
    override func keyDown(theEvent: NSEvent) {
    //When a key is pressed, move a child of "Sprite"
        //For example, if I press the "B" key, move "Bob1"

    }
    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */

        //for child in self.children {
        //    print(child.position.x)
        //}



        //x++
        //print(x)
        //x++
        //print(x)
        ///if x == 1000 {
        //    print("Yay")
            //SKSpriteNode.
            //SKSpriteNode.childNodeWithName(sprite)
        //}
    }
}

首先:您将
精灵
设置为
游戏场景
的属性

let sprite = SKSpriteNode(imageNamed:"Spaceship")
现在您无法再向场景中添加多个精灵,是吗

下一个 正如@PhilipMills在注释中所指出的,您可以将
名称
分配给精灵(of分配给其他
SKNode
子类)

所以如果你写

sprite.name = "enemy1"
self.addChild(sprite)
以后你可以通过写作来检索它

let enemy = self.childNodeWithName("enemy1") as? SKSpriteNode

首先:您将
精灵
设置为
游戏场景
的属性

let sprite = SKSpriteNode(imageNamed:"Spaceship")
现在您无法再向场景中添加多个精灵,是吗

下一个 正如@PhilipMills在注释中所指出的,您可以将
名称
分配给精灵(of分配给其他
SKNode
子类)

所以如果你写

sprite.name = "enemy1"
self.addChild(sprite)
以后你可以通过写作来检索它

let enemy = self.childNodeWithName("enemy1") as? SKSpriteNode

SKSpriteNode
继承自具有
name
属性的
SKNode
。查看标题为“搜索节点树”的
SKNode
文档。您的意思是命名变量bob1、bob2吗?这样做是不可能的。你需要的是一个数据结构,它知道你所有的宇宙飞船,然后你需要一个识别它们的策略。
SKSpriteNode
继承自
SKNode
,它有一个
name
属性。查看标题为“搜索节点树”的
SKNode
文档。您的意思是命名变量bob1、bob2吗?这样做是不可能的。你需要的是一个数据结构,它知道你所有的宇宙飞船,然后你需要一个识别它们的策略。