亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Turtle 中的箭頭命令

Python Turtle 中的箭頭命令

肥皂起泡泡 2022-07-12 15:46:32
我一直在嘗試使用畫布功能將海龜放入 tkinter。我希望能夠制作一個海龜蝕刻素描器,這樣我就可以用箭頭鍵控制海龜。我似乎無法讓它工作并且不理解它吐出的錯誤:NameError: name 'Screen' is not defined這是我的代碼:import tkinter as tkimport turtlewindow = tk.Tk()window.geometry("750x500")window.resizable(0,0)app = tk.Canvas(master = window,                width = 500,                height = 500,                bg = "white")app.pack()Screen()turtle = turtle.RawTurtle(app)turtle = turtle.Screen()def k1():    move.forward(1)def k2():    move.left(1)def k3():    move.right(1)def k4():    move.back(1)turtle.onkey(k1, "Up")turtle.onkey(k2, "Left")turtle.onkey(k3, "Right")turtle.onkey(k4, "Down")turtle.listen()window.mainloop()
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

你必須使用


turtle.Screen()

代替


Screen()

但我看到代碼的其他問題。 當按下鍵時,我會使用tkinter方法來執行功能。bind()


import tkinter as tk

import turtle


# --- functions ---


def k1(event):

    t.forward(1)


def k2(event):

    t.left(1)


def k3(event):

    t.right(1)


def k4(event):

    t.back(1)


# --- main ---


window = tk.Tk()


window.geometry("750x500")

window.resizable(False, False)


canvas = tk.Canvas(master=window, width=500, height=500, bg="white")

canvas.pack()


t = turtle.RawTurtle(canvas)


window.bind("<Up>", k1)

window.bind("<Left>", k2)

window.bind("<Right>", k3)

window.bind("<Down>", k4)


window.mainloop()


查看完整回答
反對 回復 2022-07-12
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

就像你使用RawTurtleinstead of一樣Turtle,當你使用嵌入在 tkinter 窗口中的 turtle 時,如果你想要它提供的方法,你需要使用TurtleScreeninstead of :Screen


import tkinter as tk

from turtle import TurtleScreen, RawTurtle


window = tk.Tk()

window.geometry("750x500")

window.resizable(0, 0)


canvas = tk.Canvas(master=window, width=500, height=500)

canvas.pack()


screen = TurtleScreen(canvas)

turtle = RawTurtle(screen)


def k1():

    turtle.forward(1)


def k2():

    turtle.left(1)


def k3():

    turtle.right(1)


def k4():

    turtle.back(1)


screen.onkey(k1, "Up")

screen.onkey(k2, "Left")

screen.onkey(k3, "Right")

screen.onkey(k4, "Down")


screen.listen()

screen.mainloop()

在這種情況下不要使用獨立的海龜Screen,因為它可能會創建第二個 tkinter 根窗口,從而導致稍后出現細微的錯誤(例如圖像未加載。)


查看完整回答
反對 回復 2022-07-12
  • 2 回答
  • 0 關注
  • 550 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號