2016-06-20 6 views
1

Ich möchte eine Schaltfläche erstellen und wenn ich sie drücke, ändert sich die Farbe des Players in die gleiche Farbe der Schaltfläche.Wie ändert man die Farbe des Players durch Drücken einer Taste?

Das Problem ist, dass, wenn ich auf den Bildschirm tippen sie die Aktion spielt, und ich möchte nur die Aktion spielen, wenn der Spieler drücken Sie die Taste (in diesem Fall eine andere SKSpriteNode)

class GameScene: SKScene, SKPhysicsContactDelegate { 

    var circuloPrincipal = SKSpriteNode(imageNamed: "circulo") 

    var colorVerde: UIColor = UIColor(red: 0.3, green: 0.7, blue: 0.5, alpha: 0.9) 

    var circuloVerde = SKSpriteNode(imageNamed: "fondoBaseBlanco.png") 




for touch in touches { 
      let location = circuloVerde 

      let circuloVer = circuloVerde 

      circuloVerde.position = circuloVerde.position 

     circuloPrincipal.color = colorVerde 

     //circulo principal = player 
     //color verde = green color 
     //circulo verde = button 

     } 
} 
+0

Diese Frage zu breit ist, könnten Sie setzen Ihre einige Code, es ist nicht klar, Sie wollen eine Lösung für UIKit oder Sprite-Kit-Bibliothek, oder beide, und in welchem ​​Kontext –

+0

Ich habe meine Frage bearbeitet –

+0

Wo fügen Sie diese "Schaltfläche"? Ist ein UIButton? Sie haben ein SKScene? Bitte seien Sie klarer .. –

Antwort

0

Wenn Sie Ihre Schaltfläche einen Namen wie dieses Add erstellen:

circuloVerde.name = "button" 

Im touchesBegan Delegatmethode tun:

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 
     { 
      print("name : \(name)") 
      if name == "button" { 
       //do my stuff 
       circuloPrincipal.color = colorVerde 
       // or you can do also 
       circuloPrincipal.color = circuloVerde.color 
      } 
     } 
} 
+1

Vielen Dank Alessandro für Sie helfen! Es funktionierte! –

1

die Farbe zu erhalten, des Knopfes dies tun.

-(IBAction)buttonTapped:(id)sender{ 
    UIButton *btn = (UIButton*)sender; 
    UIColor *btnColor = btn.backgroundColor; 
// Now you can set this btnColor as the color of your player. 
} 
+0

danke! Ich werde es versuchen –