2015-02-17 3 views
2

Я пытаюсь сделать сцену регистрации внутри игры на iOS. что я до сих пор это:показать клавиатуру на SKNode touch

Game Registration Scene

Поскольку мне не удалось поставить UITextField внутри сцены, что у меня есть, я попытался поставить SKNodes, активирующие клавиатуру на ощупь. Было бы очень полезно, если бы кто-то помог мне поместить UITextFields внутри моей игровой сцены (потому что было бы легче получить сцену регистрации и с меньшим количеством кода, а также с поддержкой для этого).

Мой код до сих пор это:

let nameForm:SKSpriteNode = SKSpriteNode(imageNamed: "RegistrationScene_TEST_textviews") 
let usernameForm:SKSpriteNode = SKSpriteNode(imageNamed: "RegistrationScene_TEST_textviews") 
let passwordForm:SKSpriteNode = SKSpriteNode(imageNamed: "RegistrationScene_TEST_textviews") 
let passwordForm2:SKSpriteNode = SKSpriteNode(imageNamed: "RegistrationScene_TEST_textviews") 

И когда кто-то касание любой из этих узлов он должен управляться с помощью метода, как это:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { 
    let touch = touches.anyObject()! as UITouch 
    let location = touch.locationInView(self.view) 

    for touch:AnyObject in touches{ 
     if CGRectContainsPoint(nameForm.frame, touch.locationInNode(self)){ 
      //Function to display the keyboard 
      //Function that saves the keystroke 
      //Function to display a nameLabel with the saved keystroke 
     } 
     //same for the other Forms 

     //methods for the buttons (DONE) 
    } 
} 

Если есть другой способ получить текстовый ввод в игру (чтобы сохранить статистику игры или что-то полезное для игрового процесса), пожалуйста, дайте мне знать, любая помощь будет очень оценена

EDIT:

Согласно Кристиану Вёрц, я сделал следующее, и это решило мою проблему.

let txtField:UITextField! 

txtField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 30)); 
self.view?.addSubview(txtField!) 

ответ

0

Как правило, вы не должны использовать UIKit-элементы в игре SpriteKit. Но для этой проблемы, вы можете использовать UITextField и добавить его к вашему мнению:

var txtField: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 30)); 
self.view.addSubview(txtField) 

Вы также можете сделать свой UITextField полупрозрачные, установив цвет фона alpha значение меньше, то по умолчанию 1:

txtField.backgroundColor = UIColor(red: 125/255, green: 125/250, blue: 125/250, alpha: 0.5) 
+0

отредактируйте свой код в соответствии с кодом, который я написал (и работал для меня), чтобы кто-нибудь еще мог понять, как это сделать, если у них есть одна и та же проблема :) –

Смежные вопросы