每次按下键盘上的x
时,我都会尝试将窗口中的乌龟大小加倍。我尝试使用.turtlesize(2,2,2)
,但那不对。每次按下键时我需要加倍,所以如果乌龟大小为(1,1,1)
,则每次按(2,2,2)
时,它将变为(4,4,4)
然后x
等等。
这是我到目前为止所做的:
import turtle
turtle.setup(500,500)
wn = turtle.Screen()
wn.title("Commands")
wn.bgcolor("black")
tess = turtle.Turtle()
tess.shape("triangle")
tess.color("red")
tess.left(90)
def increaseSize():
size = tess.turtlesize()
increase = tuple([2 * num for num in size])
tess.turtlesize(increase) #this is where the error occurs
wn.onkey(increaseSize, "x")
wn.listen()
答案 0 :(得分:1)
更改此行:
tess.turtlesize(increase)
代替:
tess.turtlesize(*increase)
turtlesize()
想要三个单独的值,但是你传递了三个值的一个元组,所以我们需要在参数列表中传播该元组。
答案 1 :(得分:0)
Turtle
对象的默认大小为20
个像素,相当于调整1
大小时的比例Turtle
。
例如:
import turtle
tess = turtle.Turtle()
print(tess.shapesize())
输出:
(1.0, 1.0, 1)
元组中的前两个1.0
代表Turtle
的宽度和高度为20个像素的单位,最后1
代表{{1 }}的轮廓。
如果仅将一个参数传递到Turtle
括号中,您将看不到大纲,因为默认情况下,没有大纲。
要增加tess.color()
的大小,只需将您希望每个Turtle
的尺寸都变成tess.shapesize()
或tess.turtesize()
的20像素数即可:
Turtle
另一个答案指出import turtle
tess = turtle.Turtle()
tess.shapesize(2, 3, 1) # Sets the turtle's width to 60px and height to 90px
函数不接受
数组它需要turtlesize
或int
s,因此您需要unpack the tuple with a *
当您将元组传递给函数时。
在您的float
函数中,不需要increaseSize
和tuple
包装器,
只浪费效率。只需使用[]
:
()
在代码之上
def increaseSize():
size = tess.turtlesize()
increase = (2 * num for num in size)
tess.turtlesize(*increase)
由于您定义了turtle.setup(500,500)
wn = turtle.Screen()
对象Screen
,因此使用wn
代替wn.setup()
会更干净:
turtle.setup()
一起:
wn = turtle.Screen()
wn.setup(500,500)
输出: