Python的cocos2d中的raw_input()等价物

Python的cocos2d中的raw_input()等价物,python,input,cocos2d-iphone,Python,Input,Cocos2d Iphone,我正在cocos2d-0.6.0中构建一个简单的游戏,不知道如何让玩家输入用户名或其他首选项的文本 我只找到了几个例子,比如这个,但它不是我想要的。我的尝试如下;我使用handling_events.py尝试更新_文本,但它只是将由逗号分隔的字母列表串在一起 最终目标是能够使用标签提出一个问题(“你叫什么名字?”),然后让用户键入一个响应,该响应将存储为一个变量,我可以稍后访问(例如,在高分列表的以下场景中显示)。如果我能澄清我的问题,请告诉我 class Settings(cocos.laye

我正在cocos2d-0.6.0中构建一个简单的游戏,不知道如何让玩家输入用户名或其他首选项的文本

我只找到了几个例子,比如这个,但它不是我想要的。我的尝试如下;我使用handling_events.py尝试更新_文本,但它只是将由逗号分隔的字母列表串在一起

最终目标是能够使用标签提出一个问题(“你叫什么名字?”),然后让用户键入一个响应,该响应将存储为一个变量,我可以稍后访问(例如,在高分列表的以下场景中显示)。如果我能澄清我的问题,请告诉我

class Settings(cocos.layer.ColorLayer):
is_event_handler = True
def __init__(self):
    super(Settings, self).__init__(0,0,0,255)

    label = cocos.text.Label('Pick a name:',
        font_name='Courier',
        font_size=32,
        anchor_x='center', anchor_y='center')
    label.position = 320,650
    self.add(label )

    self.text = cocos.text.Label("", x=100, y=280)
    self.keys_pressed = set()
    self.update_text()
    self.add(self.text)
问题就在这里。我不想只收集字母和符号的列表,比如a,G,t,分号

def update_text(self):
    key_names = [pyglet.window.key.symbol_string(k) for k in self.keys_pressed]
    text = 'Keys: ' + ','.join(key_names)
    # Update self.text
    self.text.element.text = text
这是可选的;它会将“设置”页面切换到“游戏性”主页面

def on_key_press(self, k, m):
    if k == key.ENTER:
        director.replace(FadeTransition(
            main_scene, 1))
    else:
        self.keys_pressed.add(k)
        self.update_text()


if __name__ == "__main__":
    cocos.director.director.init(height = 690, width = 640)
    settings_scene = cocos.scene.Scene(settings)
    cocos.director.director.run(settings_scene)

也许你在找这样的东西。唯一的缺点是现在都是上限:

import cocos
import pyglet

class Settings(cocos.layer.ColorLayer):
    is_event_handler = True
    def __init__(self):
        super(Settings, self).__init__(0,0,0,255)

        label = cocos.text.Label('Pick a name:',
            font_name='Courier',
            font_size=32,
            anchor_x='center', anchor_y='center')
        label.position = 320,650
        self.add( label )

        self.text = cocos.text.Label("", x=100, y=280)
        self.keys_pressed = ""
        self.update_text()
        self.add(self.text)

    def update_text(self):
        # Update self.text
        self.text.element.text = self.keys_pressed

    def on_key_press(self, k, m):
        if k == pyglet.window.key.ENTER:
            print "You Entered: {}".format(self.keys_pressed)
            # cocos.director.director.replace(FadeTransition(main_scene, 1))  # disabled for testing
            cocos.director.director.scene.end()  # added for testing
        else:
            kk = pyglet.window.key.symbol_string(k)
            if kk == "SPACE":
                kk = " "
            if kk == "BACKSPACE":
                self.keys_pressed = self.keys_pressed[:-1]
            else:
                # ignored_keys can obviously be expanded
                ignored_keys = ("LSHIFT", "RSHIFT", "LCTRL", "RCTRL", "LCOMMAND", 
                                "RCOMMAND", "LOPTION", "ROPTION")
                if kk not in ignored_keys:
                    self.keys_pressed = self.keys_pressed + kk
            self.update_text()


if __name__ == "__main__":
    cocos.director.director.init(height = 690, width = 640)
    settings_scene = cocos.scene.Scene(Settings())
    cocos.director.director.run(settings_scene)