为什么我的形状不会出现在海龟模块中

问题描述 投票:0回答:2

我正在尝试创建一个乒乓球游戏,但是当我创建球拍时,它不会显示。我该如何修复它? 这是我的代码:

import turtle

wm = turtle.Screen()
wm.title("Pong by Zachary Bye")
wm.bgcolor("black")
wm.setup(width=800, height=600)
wm.tracer(0)


#Paddle a
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize
paddle_a.penup()
paddle_a.goto(-350,0)
python turtle-graphics python-turtle
2个回答
2
投票

两个问题:

  1. 一些设置已初始化,笔已抬起,但桨龟从未画任何东西。所以没什么可看的。尝试调用像

    .stamp()
    这样的绘图函数来打印一些东西。

    此外,作为一般注意事项,当您使用海龟进行绘制时,请确保其位置位于窗口范围内,尽管 x 在 -350 处应该没问题。

  2. 主海龟循环永远不会运行。这会构建窗口并阻止脚本退出,直到窗口关闭。我通常使用

    Screen().exitonclick()
    但类似
    Screen().mainloop()
    的东西也可以。尽管某些平台会自动运行循环,但这属于主代码的末尾。

from turtle import Screen, Turtle


screen = Screen()
screen.title("Pong by Zachary Bye")
screen.bgcolor("black")
screen.setup(width=800, height=600)
screen.tracer(0)

# Paddle a
paddle_a = Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize # this line does nothing
paddle_a.penup()
paddle_a.goto(-350,0)
paddle_a.stamp() # draw something
screen.exitonclick() # run the main turtle loop

1
投票

当我创建桨时,它不会显示。

原因是你调用了

tracer(0)
,它说:“在我明确地调用
update()
之前不要画任何东西。然后你没有调用
update()
!这就是我编写代码片段的方式:

from turtle import Screen, Turtle

screen = Screen()
screen.title("Pong by Zachary Bye")
screen.setup(width=800, height=600)
screen.bgcolor('black')
screen.tracer(0)

# Paddle a
paddle_a = Turtle()
paddle_a.shape('square')
paddle_a.color('white')
paddle_a.shapesize(5, 1)
paddle_a.penup()
paddle_a.setx(-350)

screen.update()
screen.mainloop()

我的一般规则是避免使用

tracer()
update()
,直到你的代码基本上可以工作并且你想要优化图形。

© www.soinside.com 2019 - 2024. All rights reserved.