如何改变乌龟的大小?

时间:2016-06-29 14:52:55

标签: python turtle-graphics

每次按下键盘上的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()

2 个答案:

答案 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 函数不接受 数组它需要turtlesizeint s,因此您需要unpack the tuple with a * 当您将元组传递给函数时。

在您的float函数中,不需要increaseSizetuple包装器, 只浪费效率。只需使用[]

()

在代码之上

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)

输出:

enter image description here