如何将Quadratics编程为简单的平台游戏?

时间:2016-04-27 00:01:25

标签: python pygame

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

1 个答案:

答案 0 :(得分:1)

在这里查看代码,暂时忽略相机部分。这是你想要跳跃的方式吗? Add scrolling to a platformer in pygame