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

我的播放器图片在移动过程中模糊

如何解决我的播放器图片在移动过程中模糊

我在 python 的 pygame 库中创建了一个简单的平台游戏。我已经加载了空闲和运动姿势的玩家图像,在运动过程中他的图像非常模糊,我尝试转换图像但它不起作用,这是下面两个文件代码一个是玩家类,另一个是主游戏文件

 import pygame as pg
 from os import path
 import random

 class Player(pg.sprite.Sprite):
     def __init__(self,winx,winy):
         super().__init__()
         image_dir=path.join(path.dirname(__file__),'Enemy_walk')

         self.winx=winx
         self.winy=winy
         self.walk_left=[]
         self.walk_right=[]
         current_pic=2
         for i in range(7):
             if i==0:
                 idle=pg.image.load(path.join(image_dir,'enemy1.png'))#.convert()
                 self.idle=pg.transform.scale(idle,(100,100))
                 continue
             left=pg.image.load(path.join(image_dir,'enemy'+str(current_pic)+'.png'))#.convert()
             left1=pg.transform.scale(left,100))
             right=pg.transform.flip(left1,True,False)
             self.walk_left.append(left1)
             self.walk_right.append(right)
             current_pic+=1

         self.image=self.idle
         self.rect=self.image.get_rect()
         self.rect.x=winx//2
         self.rect.bottom=winy

         self.moving_left=False
         self.moving_right=False
         self.speed=[9,10]
         self.index=0
         self.animation_speed=0
         self.gravity=1
         self.is_jumping=False

     def update(self):
         key=pg.key.get_pressed()
         if key[pg.K_a] and self.rect.left>0:
             self.moving_left=True
             self.rect.left-=self.speed[0]
             self.animation_speed+=1
             if self.index>len(self.walk_left)-1:
                 self.index=0
             if self.animation_speed>2:
                 self.image=self.walk_left[self.index]
                 self.index+=1
                 self.animation_speed=0

         elif key[pg.K_d] and self.rect.right<self.winx:
             self.moving_right=True
             self.rect.right+=self.speed[0]
             self.animation_speed+=1
             if self.index>len(self.walk_right)-1:
                 self.index=0
             if self.animation_speed>2:
                 self.image=self.walk_right[self.index]
                 self.index+=1
                 self.animation_speed=0
         else: 
             self.moving_left=False
             self.moving_right=False
             self.animation_speed=10
             self.index=0
             self.image=self.idle

         if key[pg.K_SPACE] and self.is_jumping==False:
             self.is_jumping=True
         if self.speed[1]>=-10 and self.is_jumping==True:
                 self.rect.y -= self.speed[1]*abs(self.speed[1]*0.5)
                 self.speed[1]-=self.gravity
         else:
                 self.speed[1]=10
                 self.is_jumping=False

我尝试降低速度并改变帧出现的时间,但这是最自然的方式,速度与帧匹配,但运动模糊 在主文件中,我只是使用组在屏幕上绘制他

import pygame as pg
import random
from os import path
from Player import *

#Variables go in here
win_width=800
win_height=600
fps=30
BLACK=(0,0)
WHITE=(255,255,255)
RED=(255,0)
GREEN=(0,0)
BLUE=(0,255)
LIGHT_BLUE=(173,216,230)

pg.init()
win=pg.display.set_mode((win_width,win_height))
pg.display.set_caption('My Template')
clock=pg.time.Clock()

#GROUPS-------------------------------------------------------
hero = pg.sprite.Group()
player1=Player(win_width,win_height)
hero.add(player1)





run=True
while run:
    #Process Events
    for event in pg.event.get():
        if event.type==pg.QUIT:
            run =False


    #Render or Draw
    win.fill(LIGHT_BLUE)
    hero.draw(win)

    #Update game
    pg.display.update()
    clock.tick(fps)
    hero.update()

谁能找出运动模糊的原因。

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