微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame角色跳跃速度问题

如何解决Pygame角色跳跃速度问题

我目前正在尝试制作我的第一款游戏。我试图让我的角色跳跃,但我的代码没有错误,但是当我的角色跳跃时,它恰好很快。不知道改哪个部分。由于我仍在学习,因此我无法自己解决这个问题。这是我的代码

import pygame

pygame.init()

screen = pygame.display.set_mode((1200,600))
WinHeight = 600
WinWidth = 1200

# player
player = pygame.image.load("alien.png")
x = 50
y = 450
vel = 0.3
playerSize = 32

# title
pygame.display.set_caption("First Game")

# Jump
isJump = False
jumpCount = 10

running = True

while running:
    screen.fill((255,255,255))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
            break
    keys = pygame.key.get_pressed()
    if keys[pygame.K_a] and x > vel:
        x -= vel
    if keys[pygame.K_d] and x < WinWidth - vel - playerSize:
        x += vel
    if not (isJump):
        if keys[pygame.K_w] and y > vel:
            y -= vel
        if keys[pygame.K_s] and y < WinHeight - vel - playerSize:
            y += vel
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            neg = 1
            if jumpCount < 0:
                neg = -1
            y -= (jumpCount ** 2) * 0.5 * neg
            jumpCount -= 1
        else:
            isJump = False
            jumpCount = 10
    screen.blit(player,(x,y))

    pygame.display.update()

解决方法

使用 pygame.time.Clock 控制每秒帧数,从而控制游戏速度。

tick() 对象的方法 pygame.time.Clock 以这种方式延迟游戏,即循环的每次迭代消耗相同的时间段。见pygame.time.Clock.tick()

这个方法应该每帧调用一次。

这意味着循环:

clock = pygame.time.Clock()
running = True
while running:
    
    clock.tick(60)

    # [...]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。