Я хочу добавить действие для всех узлов на сцене, кроме одного или двух узлов.Есть ли способ добавить действие ко всем созданным узлам, кроме одного узла в swift?
Или я хотел бы найти способ доступа ко всем узлам другим способом использования метода «имя».
Это не полная игра, но я не хочу использовать метод «имя», потому что каждый квадрат имеет другое имя.
import SpriteKit
import GameplayKit
var Score = 0
class GameScene: SKScene {
let SquareSide = 100
var touchedNode = SKNode()
var touchLocation = CGPoint()
let ScoreLabel = SKLabelNode()
let squareNumber = 0
override func didMove(to view: SKView) {
CreatSquares()
}
func CreatSquares(){
let square = SKShapeNode(rect: CGRect(x: Int(arc4random_uniform(UInt32(self.frame.width))), y: Int(arc4random_uniform(UInt32(self.frame.height))), width: SquareSide, height: SquareSide))
if Score <= 10{
square.fillColor = UIColor.orange}
else{
square.fillColor = UIColor.blue
}
square.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: square.frame.width, height: square.frame.height), center: CGPoint(x: square.position.x, y: square.position.y))
square.physicsBody?.affectedByGravity = false
square.physicsBody?.allowsRotation = false
square.physicsBody?.categoryBitMask = 0
square.name = "square\(number)"
number++
self.addChild(square)
}
}
func CreatScoreLabel(){
let ScoreLabel = SKLabelNode()
ScoreLabel.text = "Your Score is:\(Score)"
ScoreLabel.position = CGPoint(x: self.frame.width/2, y: self.frame.height - 50)
ScoreLabel.color = UIColor.white
self.addChild(ScoreLabel)
}
func updatScore(){
ScoreLabel.text = "Your Score is:\(Score)"
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
touchLocation = touch.location(in: self)
touchedNode = self.atPoint(touchLocation)
if touchedNode.name == "square"{
Score += 1
touchedNode.removeFromParent()
}
}
}
override func update(_ currentTime: TimeInterval) {
updatScore()
}
Я считаю, что ваш вопрос непонятен, не могли бы вы объяснить, но более того, я могу помочь? –
Я хочу добавить действие для всех созданных узлов на сцене, кроме одного узла (например, LabelNode) – Nour
Но прямо сейчас в моем коде есть только один узел, к которому я не хочу добавлять действие для него, но когда Я хочу, чтобы в моей игре было больше одного узла. Не хотите добавлять к ним действие. – Nour