Reputation: 1
This is basically the code I am trying to spawn images or enemies with and I want to delete them but not all at once by touch only one of the same images that was touched. The image is moving too in case any one needs to know.
import SpriteKit
import UIKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let myLabel = SKLabelNode(fontNamed:"chalkduster ")
myLabel.text = "HELLO WORLD"
myLabel.fontsize = 45
myLabel.position = CGPoint(x:CGRectGetMidx(self.frame), y:CGRectGetMidy(self.frame))
self.addChild(myLabel)
}
func SpawnEnemies(){
let Enemy = SKSpriteNode(imageNamed: "Enemy.png")
let MinValue = self.size.width /8
let MaxValue = self.size.width -158
let spawnPoint = UInt32(MaxValue- MinValue)
Enemy.runAction(SKAction.sequence([action, actionDone]))
self.addChild(Enemy)
}
func touchesEnded(touches: NSSet, withEvent event: UIEvent?) {
for touch in touches {
_ = touch.locationInNode(self)
let touch = touches.anyobject() as! UITouch?
if let location = touch?.locationInNode(self)
{
for _ in self.nodeAtPoint(location)
{
if let Enemy.name == (name., "SpawnEnemies" {
Enemy.removeFromParent()
}
}
}
}
}
func update(currentTime: CFTimeInterval) {
}
Upvotes: 0
Views: 42
Reputation: 35402
Usually using uppercase to the properties name it's considered as a bad attitude, you should use enemy instead of Enemy
Try this approach:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
let touch = touches.first
let positionInScene = touch!.locationInNode(self)
let touchedNode = self.nodeAtPoint(positionInScene)
if let name = touchedNode.name
{
if name == "SpawnEnemies1" { // try to get a different name for each of your enemy
Enemy.removeFromParent()
} else
if name == "SpawnEnemies666" { // this is the big boss
// do some awesome animation..
Enemy.removeFromParent()
} else
if name == "title"
{
print("title touched")
// do whatever you want with title, removing or using it
} else
if name == "credits"
{
print("credits touched")
} else
...
}
}
Upvotes: 0