【问题标题】:Get user input and show on Turtle Screen获取用户输入并在 Turtle Screen 上显示
【发布时间】:2021-07-31 05:29:20
【问题描述】:

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

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()

这是结果:

但是,我希望黄色矩形上有一个文本框或类似的东西。 希望带文本框输入:

有什么办法吗?

【问题讨论】:

    标签: python-3.x turtle-graphics python-turtle


    【解决方案1】:

    其实是的。

    由于“海龟”使用 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", 30, "normal"))
        text.hideturtle()
        time.sleep(5)
    
    
    
    # while True:
    #     wn.update()
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-19
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      相关资源
      最近更新 更多