微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取用户输入并在 Turtle Screen 上显示

如何解决获取用户输入并在 Turtle Screen 上显示

我正在尝试制作一个乌龟键盘游戏,您需要在其中输入正确的字母才能获胜。 这是我到目前为止的代码

import turtle
from english_words import english_words_lower_alpha_set
import time
import random


wn = turtle.Screen()
wn.setup(width = 1200,height = 800)
wn.title("Keyboard Typer")
wn.bgcolor("#9bf6ff")


floor = turtle.Turtle()
floor.speed(0)
floor.shape("square")
floor.hideturtle()
floor.color("#fdffb6")
floor.penup()
floor.shapesize(stretch_wid = 10,stretch_len = 60)
floor.goto(0,-310)
floor.showturtle()

sun = turtle.Turtle()
sun.speed(0)
sun.shape("circle")
sun.hideturtle()
sun.color("yellow")
sun.penup()
sun.shapesize(stretch_wid = 3,stretch_len = 3)
sun.goto(-500,270)
sun.showturtle()

text = turtle.Turtle()
text.hideturtle()
text.color("black","#caffbf")
text.shape("square")
text.speed(0)
text.penup()
text.goto(0,390)
text.showturtle()




List = list(english_words_lower_alpha_set)
for Numbers in range(0,5):
    text.clear()
    text.goto(0,390)
    text.showturtle()    
    Wordies = random.choice(List)
    for i in range(0,20):
        y = text.ycor()
        y -= 20
        text.sety(y)
        time.sleep(0.2)
    
    text.write(Wordies,move = True,align = "center",font = ("Arial",30,"normal"))
    text.hideturtle()
    time.sleep(5)




while True:
    wn.update()

结果如下:

This is the Result

但是,我想要一个文本框或黄色矩形上的类似内容。 想要带文本框的输入:

Want Input with text box

有没有办法做到这一点?

解决方法

事实上,是的。

由于“海龟”使用 Tkinter 绘制所有图形,您可以将来自 Tkinter 本身的小部件直接添加到海龟的画布中。 这是一个代码:

import turtle
import time
from english_words import english_words_lower_alpha_set
import random
import tkinter as tk

wn = turtle.Screen()
wn.setup(width=1200,height=800)
wn.title("Keyboard Typer")
wn.bgcolor("#9bf6ff")

floor = turtle.Turtle()
# some tkinter
# canvas = floor.getscreen().cv
# or
canvas = wn.cv
#                    x and y
canvas.create_window(30,30,tags=["entry"],window=tk.Entry(None,))
floor.speed(0)
floor.shape("square")
floor.hideturtle()
floor.color("#fdffb6")
floor.penup()
floor.shapesize(stretch_wid=10,stretch_len=60)
floor.goto(0,-310)
floor.showturtle()

sun = turtle.Turtle()
sun.speed(0)
sun.shape("circle")
sun.hideturtle()
sun.color("yellow")
sun.penup()
sun.shapesize(stretch_wid=3,stretch_len=3)
sun.goto(-500,270)
sun.showturtle()

text = turtle.Turtle()
text.hideturtle()
text.color("black","#caffbf")
text.shape("square")
text.speed(0)
text.penup()
text.goto(0,390)
text.showturtle()

List = list(english_words_lower_alpha_set)
for Numbers in range(0,5):
    text.clear()
    text.goto(0,390)
    text.showturtle()
    Wordies = random.choice(List)
    for i in range(0,20):
        canvas.update()
        canvas.update_idletasks()
        y = text.ycor()
        y -= 20
        text.sety(y)
        time.sleep(0.2)

    text.write(Wordies,move=True,align="center",font=("Arial","normal"))
    text.hideturtle()
    time.sleep(5)



# while True:
#     wn.update()

所以,我在画布上添加了一个“条目”小部件。第一个和第二个参数分别是 x 和 y。如需进一步修改,您可以访问此page

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。