我似乎无法让我的两只眼睛为 Turtle 工作

问题描述

那么我在这里错过了什么?我只需要有两只用红色填充的眼睛。我不确定“def eye”缺少什么,但我确定这就是我犯错的地方。

import turtle

t = turtle.Turtle()

def DCircle(x,y,radius,color):
    t.penup()
    t.setposition(x,y)
    t.pendown()
    t.fillcolor(color)
    t.begin_fill()
    t.color(color)
    t.circle(radius)
    t.end_fill()

def eye(color,radius):
    t.penup()
    t.setposition(-50,40)
    t.pendown()
    t.fillcolor(color)
    t.color(red)
    t.begin_fill()
    t.circle(radius)
    t.end_fill()

def Mickey():
    r = 50
    DCircle(0,2*r,'blue')
    DCircle(-135,115,r,'red')
    DCircle(135,'red')

def Main():
    Mickey()
    turtle.done()
    turtle.bye()
    turtle.getscreen()._root.mainloop()

Main()

解决方法

我认为您正在尝试这样做:

import turtle

t = turtle.Turtle()

def DCircle(x,y,color,radius):
    t.penup()
    t.setposition(x,y)
    t.pendown()
    t.fillcolor(color)
    t.begin_fill()
    t.color(color)
    t.circle(radius)
    t.end_fill()

def Mickey():
    r = 50
    DCircle(0,'blue',2*r)
    DCircle(-50,40,"red",r)
    DCircle(50,r)

def Main():
    Mickey()
    turtle.done()
    turtle.bye()
    turtle.getscreen()._root.mainloop()

Main()

您没有正确定位!我认为在您的代码中您创建了 eye 函数,但从未使用过它,但无论如何您都不需要该函数。我们可以在 DCircle 函数中做任何循环。

编辑: 你可以Mickey函数这个然后你会得到你所说的2只眼睛和2只耳朵!

def Mickey():
    r = 50
    DCircle(0,2*r,'blue')
    DCircle(-135,115,r,'red')
    DCircle(135,'red')
    DCircle(-50,100,20,"red")
    DCircle(50,"red")

我认为您不需要创建eye 函数!

您在代码中做错了什么:

  1. 首先,你还没有调用那个眼功能,你期待着工作。您必须先调用该函数,然后它才会起作用。
  2. t.color(red) 中有错误,您不能像这样写颜色名称,颜色名称应始终为字符串!
  3. 如果你已经修正了以上所有错误的东西,那么你也只会得到左眼,因为你已经像这样硬编码了乌龟的位置t.setposition(-50,40)
  4. 如果您对眼睛进行硬编码,则必须创建 2 个函数。一个用于左侧,第二个用于眼睛。
  5. Twist : 你不必创建新函数,你可以使用 DCircle 函数来做所有这些事情,你已经做了动态函数来制作任何类型的圆然后,为什么您需要创建新功能并将事情变得过于复杂。