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