Pygame 重力脚本
Pygame Gravity Script
我正在尝试用 pygame 制作一个 python 脚本来模拟重力。问题是,我的 "player" 一直卡在底部,连一次弹跳都没有。如果有帮助,我正在使用 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 个单位。然后您的速度变为 -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
我正在尝试用 pygame 制作一个 python 脚本来模拟重力。问题是,我的 "player" 一直卡在底部,连一次弹跳都没有。如果有帮助,我正在使用 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 个单位。然后您的速度变为 -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