【发布时间】:2021-05-10 20:39:28
【问题描述】:
所以我正在努力提高我的 Python 技能;我根据教程制作了一款游戏,用于制作经典的乒乓球游戏。但是,我的代码有两个主要问题,我无法确定是什么原因造成的。
球不动,作为游戏的基本功能,它并不好。 两个玩家的得分计数器以指数速度上升,就好像不动的球已经通过了游戏墙的一侧。
我的圆珠笔代码如下。我认为这可能与游戏循环的时间有关(wn.update()),但我完全迷失了。我曾尝试通过导入时间 (time.sleep(0.09)) 来减慢游戏速度,但没有成功。
我不知道为什么分数会更新,因为球不会移动。这是在海龟而不是 PyGame 中。下面的代码是用于游戏球和笔的。
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.shapesize(stretch_wid=1.5)
ball.dx = 2
ball.dy = 2
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
pen.penup()#So it does not draw lines.
pen.hideturtle()
pen.goto(0, 260)
pen.write(" Player One: 0 Player Two", align="center", font=("Courier", 24, "normal"))
在我的主游戏循环中,我有:
wn.update()
time.sleep(0.09) # where 0.09 is the number of seconds (note milliseconds)
# to do nothing for.
# Moving the ball
ball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
【问题讨论】:
-
您应该使用on_timer 定期运行函数-并且该函数应该移动球。而且这不会阻塞其他代码。
标签: python python-3.x debugging turtle-graphics python-turtle