在 Turtle 中禁用全屏模式

Disable fullscreen mode in Turtle

我是 Python 初学者,我正在尝试使用 Turtle 模块制作一个简单的贪吃蛇游戏。我正在制作具有特定尺寸的游戏,当它全屏显示时游戏会变得很奇怪。蛇一直卡在框架内。请给出我如何在 Turtle-python 中阻止全屏选项的想法,以便游戏 运行 顺利进行。

将不胜感激。

一种方法是 "censor" 去掉多余的东西,可能像这样,用一个矩形函数和一个制作背景的函数:

screenHeight = 800
screenWidth = 800

turtle.setup(screenWidth, screenHeight)

def rect(x,y,width,height,color="white"):
    go(x, y, t, 0, False)
    t.fillcolor(color)
    t.begin_fill()
    t.setx(x+width)
    t.sety(y+height)
    t.setx(x)
    t.sety(y)
    t.end_fill()

def menu():
    rect(0-(s.window_width()/2+5), 0-(s.window_height()/2+5), s.window_width()+10, s.window_height()+10, "gray")
    rect(-400, -400, 800, 800, "black")
    rect(-400, 300, 800, 100, "#101010")

你可以改变screenHeightscreenWidth的值来改变海龟的原始大小window。

仅供参考:t 是海龟,s 是屏幕。

大多数时候,当我们想要对 turtle 没有句柄的 window 做一些事情时,我们需要下降到 tkinter 基础。有几种方法可以解决这个问题。在 standalone turtle 中,我们可以使用 turtle 对象的未记录字段来访问 tkinter 对象。但是,如果我们想要额外的 tkinter 功能,如菜单,我们可能会将它变成一个带有海龟图形的 tkinter 程序 embedded in a canvas.

这是独立的方法,戳中了 tkinter 的基础:

from turtle import Screen, Turtle

screen = Screen()
screen.setup(width=600, height=600)
screen._root.resizable(False, False)  # drop down to tkinter

turtle = Turtle()

turtle.penup()
turtle.sety(-100)
turtle.pendown()
turtle.circle(100)

screen.mainloop()

这个window应该被600锁定到600并且抵制任何变化。对于嵌入式方法,请参阅 this answer about disabling turtle window resize