Pygame重力脚本

时间:2015-01-03 01:19:45

标签: python pygame

我正在尝试用pygame创建一个python脚本来模拟重力。问题是,我的“玩家”一直卡在底部而不会弹跳一次。如果有帮助我正在使用python 3.4.1。这是我的代码:

import pygame

pygame.init()

disp_w = 800
disp_h = 600
disp = pygame.display.set_mode((disp_w,disp_h))

pygame.display.set_caption('Gravity')

player_x = disp_w/2
player_y = 0
player = pygame.image.load('images/player.png')

gravity = 0.1
speed = 0

clock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    player_y += speed
    speed += gravity

    if player_y > disp_h:
        speed = speed * -0.7

    disp.fill((0,0,0))
    disp.blit(player,(player_x,player_y))

    pygame.display.flip()
    clock.tick(120)

1 个答案:

答案 0 :(得分:3)

在一个画面上,你会掉到地板下,比如1.0单位。然后你的速度变为-0.7。

因此,在下一帧中,你最终低于地面0.3个单位并再次翻转速度,达到+0.49。

在下一帧中,你在地板下方0.79单位并再次翻转标志,依此类推。你永远不会离开。

尝试:

if player_y > disp_h:
    # stop the player at the floor
    player_y = disp_h
    speed = speed * -0.7