我正在尝试在iOS上的游戏中进行注册场景。到目前为止我所拥有的是:
由于我无法将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)
}
}
如果有任何其他方式来实现游戏的文本输入(保存游戏统计数据或对游戏有用的东西)请告诉我,任何帮助将非常感激
编辑:
根据Cristian Woerz的说法,我做了以下事情,这解决了我的问题。
let txtField:UITextField!
txtField = UITextField(frame: CGRect(x: 0, y: 0, width: 200, height: 30));
self.view?.addSubview(txtField!)
答案 0 :(得分:0)
通常,你不应该在SpriteKit游戏中使用UIKit元素。但是对于这个问题,您可以使用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)