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

当它从 10 年到 510 年时,我如何放慢速度

如何解决当它从 10 年到 510 年时,我如何放慢速度

我如何减慢速度?现在它立即下降/左/上/右。我知道它与时间模块有关,但我不知道如何实现它。基本上我想把这个过程从 10 年减到 490 年。不是添加延迟而是减慢过程,例如让它以慢动作进行。我什至尝试了 120fps 的 pygame 时钟,但没有用

import time
import pygame
from pygame.locals import *

clock = pygame.time.Clock()
fps = 120

pygame.init()
surface = pygame.display.set_mode((600,600))
background = pygame.image.load('back.png')
surface.blit(background,(0,0))
block = pygame.image.load('block.png').convert()
block_y = 0
block_x = 0
surface.blit(block,(block_x,block_y))

def draw():
    surface.blit(background,0))
    surface.blit(block,block_y))
    pygame.display.flip()

pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                running = False
            if event.key == K_UP:
                block_y -= 10
                draw()
            if event.key == K_DOWN:
                block_y += 10
                draw()
            if event.key == K_LEFT:
                block_x -= 10
                draw()
            if event.key == K_RIGHT:
                block_x += 10
                draw()
        elif event.type == QUIT:
            running = False
        elif event.type == KEYUP:
            clock.tick(fps)
            if event.key == K_UP:
                block_y -= 10
                draw()
            if event.key == K_DOWN:
                block_y += 490
                draw()
            if event.key == K_LEFT:
                block_x -= 100
                draw()
            if event.key == K_RIGHT:
                block_x += 510
                draw()
    ```

解决方法

这可能不是一个很好的解决方案,因为它不是独立于帧速率的(请参阅 FaranAiki 的评论),但是您可以(将 speed 更改为,呃,更改速度。您可能还想降低帧速率) :

import time
import pygame
from pygame.locals import *

clock = pygame.time.Clock()
fps = 120
speed=1
pygame.init()
surface = pygame.display.set_mode((600,600))
background = pygame.image.load('back.png')
surface.blit(background,(0,0))
block = pygame.image.load('block.png').convert()
block_y = 0
block_x = 0
surface.blit(block,(block_x,block_y))

def draw():
    surface.blit(background,0))
    surface.blit(block,block_y))
    pygame.display.flip()

pygame.display.flip()
running = True
while running:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            if event.key == K_ESCAPE:
                running = False
            if event.key == K_UP:
                block_y -= speed
                draw()
            if event.key == K_DOWN:
                block_y += speed
                draw()
            if event.key == K_LEFT:
                block_x -= speed
                draw()
            if event.key == K_RIGHT:
                block_x += speed
                draw()
        elif event.type == QUIT:
            running = False
        elif event.type == KEYUP:
            clock.tick(fps)
            if event.key == K_UP:
                block_y -= 10
                draw()
            if event.key == K_DOWN:
                block_y += 490
                draw()
            if event.key == K_LEFT:
                block_x -= 100
                draw()
            if event.key == K_RIGHT:
                block_x += 510
                draw()

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