如何在Pygame中降低Sprite FPS?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Pygame中降低Sprite FPS?相关的知识,希望对你有一定的参考价值。
所以我的精灵在这里,我想知道如何在不降低游戏速度的情况下降低它的速度?video of my sprite正如您在视频中看到的那样,它的移动速度很快,我想放慢速度,我该怎么做
class snow:
def __init__(self,x,y,height,width,color):
self.x = x
self.y = y
self.height = height
self.width = width
self.color = color
self.games = [
pygame.image.load("key1.png"),
pygame.image.load("key2.png"),
pygame.image.load("key3.png"),
pygame.image.load("key4.png"),
pygame.image.load("key5.png"),
pygame.image.load("key6.png"),
pygame.image.load("key7.png")]
self.anim_index = 0
self.rect = pygame.Rect(x,y,height,width)
self.direction = "idk"
def draw(self):
self.rect.topleft = (self.x,self.y)
if self.direction == "idk":
window.blit(self.games[self.anim_index],self.rect)
self.anim_index += 1
if self.anim_index == len(self.games):
self.anim_index = 0
答案
如果要放慢动画的速度,则必须将动画索引除以一定的数字。添加一个属性(anim_frames
),该属性定义动画图像的帧数,然后将anim_index
除以anim_frames
。商是当前图像索引。如果超过最大索引,则重新启动动画(anim_index = 0
)。因此,anim_frames
控制动画的速度。例如:
class snow:
def __init__(self,x,y,height,width,color):
# [...]
self.anim_index = 0
self.anim_frames = 10
# [...]
def draw(self):
self.rect.topleft = (self.x,self.y)
if self.direction == "idk":
img_index = self.anim_index // self.anim_frames
if img_index >= len(self.games):
img_index = 0
self.anim_index = 0
self.anim_index += 1
window.blit(self.games[img_index], self.rect)
以上是关于如何在Pygame中降低Sprite FPS?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pygame 中使用 Sprite Sheets 创建动画精灵?
如何在 Pygame 中使用 Sprite Sheets 创建动画精灵?