0

这基本上是我试图生成图像或敌人的代码,我想删除它们,但不是一次全部删除,只触摸一个被触摸的相同图像。图像也在移动,以防有人需要知道。

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) {
    }
4

1 回答 1

0

通常使用大写的属性名称被认为是一种不好的态度,你应该使用敌人而不是敌人

试试这个方法:

  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
            ...
        }
}
于 2016-05-22T08:37:45.327 回答