微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

乒乓球比赛 - 为什么球不会移动? 可能是 time.sleep 问题

如何解决乒乓球比赛 - 为什么球不会移动? 可能是 time.sleep 问题

所以我正在努力提高我的 Python 技能;我根据教程制作了一个游戏,用于制作经典游戏乒乓球。但是,我的代码有两个主要问题,我无法确定导致它们的原因。

球不动,这不是比赛的基本功能。 玩家 2 的分数计数器以指数速率上升,就好像不动的球已经越过了游戏墙一样。

我的球和笔的代码如下。我认为这可能与游戏循环(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)

解决方法

你不应该在turtle中使用time.sleep(),因为它会停止整个游戏及其事件循环,而是使用这个:

screen.ontimer(func_name,2000) #ms

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。