我正在尝试创建一个乒乓球游戏,但是当我创建球拍时,它不会显示。我该如何修复它? 这是我的代码:
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)
两个问题:
一些设置已初始化,笔已抬起,但桨龟从未画任何东西。所以没什么可看的。尝试调用像
.stamp()
这样的绘图函数来打印一些东西。
此外,作为一般注意事项,当您使用海龟进行绘制时,请确保其位置位于窗口范围内,尽管 x 在 -350 处应该没问题。
主海龟循环永远不会运行。这会构建窗口并阻止脚本退出,直到窗口关闭。我通常使用
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
当我创建桨时,它不会显示。
原因是你调用了
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()
,直到你的代码基本上可以工作并且你想要优化图形。