Я пытаюсь повернуть след на тот же угол, что и значок игрока, но pygame просто снова и снова повторяет одну и ту же поверхность, образуя черный ящик.
Вот мой код:
import os,sys
os.environ['PYGAME_HIDE_SUPPORT_PROMPT']='1'
import pygame
pygame.init()
screen=pygame.display.set_mode(vsync=1)
pygame.display.set_caption("pyDash")
pygame.display.set_allow_screensaver(False)
pgInfo=pygame.display.Info()
waveTrail=pygame.image.load("./wave-trail.png")
globalIcons={"wave":pygame.image.load("./defaultw.png")}
globalIcons["wave"]=pygame.transform.scale(globalIcons["wave"],(50.5,62.5))
def playExplodeAnimation(ani,cmode):pass
class Player(object):
def __init__(self,mode,ypos,hidden=False,gravity=0,rot=-90):
self.mode=mode
self.hidden=hidden
self.gravity=gravity
self.rot=rot
self.ypos=ypos
def kill(self,kb):
self.hidden=True
playExplodeAnimation(kb,self.mode)
player=Player("wave",0)
if player.mode=="wave":player.ypos=pgInfo.current_h/2-globalIcons["wave"].get_height()
try:
while True:
screen.fill((225,225,225))
for event in pygame.event.get():
if event.type==pygame.QUIT or event.type==pygame.KEYDOWN and event.key==pygame.K_NUMLOCK:pygame.quit()
if pygame.mouse.get_pressed()[0]:
if player.mode=="wave":player.rot=-45
else:pass
elif pygame.mouse.get_pressed()[2]:
if player.mode=="wave":player.rot=-135
if player.rot==-45:player.ypos-=1
elif player.rot==-135:player.ypos+=1
if not player.hidden:
prIcon=globalIcons[player.mode]
wtrail=pygame.transform.rotate(waveTrail,player.rot+90)
prIcon=pygame.transform.rotate(prIcon,player.rot)
screen.blit(wtrail,(100,200))
screen.blit(prIcon,(pgInfo.current_w/2,player.ypos))
pygame.display.flip()
except pygame.error:sys.exit(1)
Я пробовал менять порядок и вращение поверхности, но ничего не изменилось.
Я пытаюсь повернуть след на тот же угол, что и значок игрока, но pygame просто снова и снова повторяет одну и ту же поверхность, образуя черный ящик. Вот мой код: [code]import os,sys os.environ['PYGAME_HIDE_SUPPORT_PROMPT']='1' import pygame pygame.init() screen=pygame.display.set_mode(vsync=1) pygame.display.set_caption("pyDash") pygame.display.set_allow_screensaver(False) pgInfo=pygame.display.Info() waveTrail=pygame.image.load("./wave-trail.png") globalIcons={"wave":pygame.image.load("./defaultw.png")} globalIcons["wave"]=pygame.transform.scale(globalIcons["wave"],(50.5,62.5)) def playExplodeAnimation(ani,cmode):pass class Player(object): def __init__(self,mode,ypos,hidden=False,gravity=0,rot=-90): self.mode=mode self.hidden=hidden self.gravity=gravity self.rot=rot self.ypos=ypos def kill(self,kb): self.hidden=True playExplodeAnimation(kb,self.mode) player=Player("wave",0) if player.mode=="wave":player.ypos=pgInfo.current_h/2-globalIcons["wave"].get_height() try: while True: screen.fill((225,225,225)) for event in pygame.event.get(): if event.type==pygame.QUIT or event.type==pygame.KEYDOWN and event.key==pygame.K_NUMLOCK:pygame.quit() if pygame.mouse.get_pressed()[0]: if player.mode=="wave":player.rot=-45 else:pass elif pygame.mouse.get_pressed()[2]: if player.mode=="wave":player.rot=-135 if player.rot==-45:player.ypos-=1 elif player.rot==-135:player.ypos+=1 if not player.hidden: prIcon=globalIcons[player.mode] wtrail=pygame.transform.rotate(waveTrail,player.rot+90) prIcon=pygame.transform.rotate(prIcon,player.rot) screen.blit(wtrail,(100,200)) screen.blit(prIcon,(pgInfo.current_w/2,player.ypos)) pygame.display.flip() except pygame.error:sys.exit(1) [/code] Я пробовал менять порядок и вращение поверхности, но ничего не изменилось.