2015-10-20 6 views
0

Итак, у меня есть два сценария, которые следуют ниже.DirectEntry и базовый чат Python AI: Panda3D

Сценарий 1:

while True: 
userInput = raw_input(">>> ") 
if userInput.lower() in ["yo",'hi', 'hello', 'hi there', 'hey there']: 
    print "Hi, I'm Jane." 
elif userInput.lower() in ["sup", "what's up", "how are you", "how are u", "sup?", "what's up?", "how are you?", "how are u?"]: 
    whassup = ['Not much, you?','The usual!', 'Working on paperwork.', 'Helping out, haha.', 'Annoying my sisters.'] 
    print(random.choice(whassup))   
elif userInput.lower() in ["cool", "awesome", "sounds cool", "rad"]: 
    print "Aww, thanks!" 
else: 
    print "Sorry, I can only use SpeedChat." 

Тогда, вот сценарий 2, который представляет собой слегка отредактированный вариант кода примера из here:

#add some text 
bk_text = "This is my Demo" 
userin = OnscreenText(text = bk_text, pos = (0, 0.7), 
scale = 0.07,fg=(0,0,0,1),align=TextNode.ACenter,mayChange=1) 
userin.setFont(font) 

#callback function to set text 
def setText(textEntered): 
    userin.setText(textEntered) 

#clear the text 
def clearText(): 
    b.enterText('') 

#add button 
b = DirectEntry(text = "" ,scale=.05, command=setText, 
initialText="Type Something", numLines = 2,focus=1,focusInCommand=clearText) 

Так нравится. То, что я пытаюсь, состоит в том, чтобы использовать тип ввода для ввода в поле DirectEntry, чтобы панель Panda3D (есть анимированный символ, но это не имеет значения) выводит ответ программы.

т. Е. Пользователь вводит «Привет!». поэтому программа продолжила бы выплюнуть «Привет, я Джейн». на экране.

Я супер-новый для кодирования и буквально все, что я делаю, очень сложно; объяснив немного, было бы очень полезно! Бесконечно благодарен!

ответ

0

Я действительно занимался одним решением, которое я пробовал и понял, что это действительно сработает! Я только напечатал все это неправильно, потому что я не могу набрать: P

Вот весь сценарий, если кто-то любопытно:

#add some text 
bk_text = "Hi, I'm Jane." 
userin = OnscreenText(text = bk_text, pos = (0, 0.7), 
scale = 0.07,fg=(0,0,0,1),align=TextNode.ACenter,mayChange=1) 
userin.setFont(font) 

#callback function to set text 
def setText(textEntered): 
     if textEntered.lower() in ["yo",'hi', 'hello', 'hi there', 'hey there']: 
       txt = "Hello!" 
       grunt.play() 
     elif textEntered.lower() in ["sup", "what's up", "how are you", "how are u", "sup?", "what's up?", "how are you?", "how are u?"]: 
       whassup = ['Not much, you?',"The sky's up.", 'Working on paperwork.', 'Researching cookie recipes.', 'Being a giant robot bird, as usual.'] 
       txt = (random.choice(whassup)) 
       statement.play() 
     elif textEntered.lower() in ["cool", "awesome", "sounds cool", "rad"]: 
       txt = "Haha, thanks." 
       statement.play() 
     elif textEntered.lower() in ["when i was a young boy"]: 
       txt = "MY FATHER, TOOK ME INTO THE CITY, TO SEE A MARCHING BAND!" 
       grunt.play() 
     elif textEntered.lower() in ["jane", "hey jane", "jane?", "hey jane?"]: 
       txt = "Yes?" 
       murmur.play() 
     elif textEntered.lower() in ["who is it", "who is it?", "it is", "is it", "john cena"]: 
       txt = "JOHN CENA" 
       JC.play() 
     else: 
       txt = "I don't speak Toon?" 
       question.play() 

    userin.setText(txt) 

#clear the text 
def clearText(): 
    b.enterText('') 

#add button 
b = DirectEntry(text = "" ,scale=.05, command=setText, 
initialText="Type Something", numLines = 2,focus=1,focusInCommand=clearText) 
b.setPos(-0.27, 0, -0.6) 

Так! Если кто-то любопытен, пойдите прямо и используйте его. Я, вероятно, собираюсь заменить часть if/elif/else на PyAIML, но для простой игры это определенно будет здорово! :)

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

  • Нет связанных вопросов^_^