我正在尝试用Python / PyGame制作一个简单的平台游戏。我似乎无法找到一种编程跳跃机制的简单方法。我到达了一个角色(一个蓝色方块)将按照抛物线移动,但它只在某个x坐标处的抛物线中移动。运行源代码,你会明白我的意思。理想情况下,该块会像马里奥在超级马里奥游戏中移动一样移动。我将不胜感激。
这是我的代码:
import pygame, math
pygame.init()
screen = pygame.display.set_mode((1000, 700))
clock = pygame.time.Clock()
pygame.display.set_caption('Platformer')
def main():
x = 0
y = 0
x_move = 0
jump = 0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_RIGHT:
x_move = 5
if event.key == pygame.K_LEFT:
x_move = -5
if event.key == pygame.K_SPACE:
jump = 1
if event.type == pygame.KEYUP:
if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT:
x_move = 0
if event.key == pygame.K_SPACE and y == 0:
jump = 0
if jump == 1:
y = -0.01 * (x ** 2) + (x/50) + 300
y = round(y)
if y < 0:
y = 0
x += x_move
screen.fill((40,40,40))
pygame.draw.rect(screen, (0,0,255), (x+500, 650-y, 50, 50))
pygame.display.update()
clock.tick(60)
main()