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,这是一个稍微编辑版本的示例代码从这里:

    #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面板(有一个动画角色,但这并不相关)就会打印出程序的响应。

。用户输入"Hello!",然后程序就会在屏幕上显示"Hi, I'm Jane."

我对编码非常陌生,我最终做的每件事都非常复杂;解释一下会非常有帮助!!万分感谢!

我实际上是在摆弄我尝试过的一个解决方案,并意识到它实际上是可行的!我只是打错了,因为我不会打: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)

如此!如果有人好奇,就去用吧。我可能会用PyAIML代替if/elif/else部分,但对于一个简单的游戏来说,这绝对是很棒的!:)

相关内容

  • 没有找到相关文章

最新更新