我正在尝试用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)
答案 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