我想用pygame製作一個python腳本來模擬重力。問題是,我的「球員」一直在底部卡住,甚至沒有彈跳一次。如果有幫助,我使用python 3.4.1。這是我的代碼:Pygame重力劇本
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)
重力似乎工作如你所願。如果您希望「球員」在擊中底部時彈跳,則需要對能量進行保存建模,並且球員處於完全彈性(即通過反彈釋放碰撞能量)和完全塑性(即完全吸收碰撞能量)。 – Simon
@Simon我認爲'speed = speed * -0.7'是一種試圖模擬彈跳的嘗試。 – irrelephant
@irrelephant:啊,是的,你是對的。 – Simon