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