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

Pycharm,pygame 弹球程序

如何解决Pycharm,pygame 弹球程序

我可以让 pygame 在我设置的窗口的左下角显示一个球。但是由于某种原因,球没有移动并从窗户的墙壁上弹开。这样做的目标是构建一个简单的“物理引擎”。我不确定我哪里出错了。非常感谢任何和所有帮助。

代码如下: `导入pygame

pygame.init()

w,h = 1024,1024
# screen set up
screen = pygame.display.set_mode([w,h])
clock = pygame.time.Clock()

# this will run the window until I choose to quit it
running = True
while running:
    # click close button
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False


     
        def main(g=9.8,hdamp=0.05,damp=0.05,ballx=0,bally=0):
            ballx_v = 5
            bally_v = 5

            while True:

                bally_v += (g / 50)

                ballx_v += ballx_v

                bally_v += bally_v

                if ballx <= 0:
                    ballx_v = -ballx_v * (1 - damp)
                    ballx = 1

                if bally_v <= 0:
                    bally_v = -bally_v * (1 - damp)
                    ballx_v = -ballx_v * (1 - hdamp)
                    bally = 1

                if ballx >= w:
                    ballx_v = -ballx_v * (1 - damp)
                    var = w - 1

                if bally_v >= h:
                    bally_v = -bally_v * (1 - damp)
                    ballx_v = -ballx_v * (1 - hdamp)
                    bally = h - 1

                pygame.draw.circle(screen,(255,255,255),(int(ballx),(int(bally))),5)

                pygame.display.flip()
                pygame.event.get()
                clock.tick(40)
if __name__ == "__main__":
    main()

    # filling the background with color
    screen.fill((255,255))

    # drawing a shape in the window with tuple of RGB numbers and defining center and radius of circle
    # pygame.draw.circle(screen,(int(ball_x),(int(ball_y))),5)

    # flipping the display or updating it. with out this nothing shows
    #pygame.display.flip()
    #clock.tick(40)

# time to quit set up
pygame.quit()`

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