tutorial - función python pygame blit
pygame scale sprite (2)
Blit nunca borra elemento anterior - no puede - todos los elementos blighted crean un mapa de bits.
Tienes que ajustar todos los elementos de nuevo en todo el ciclo.
O tienes que mantener parte del fondo antes de blit sprite y usarlo más tarde para ajustar esta parte en lugar de sprite para eliminarla.
También puede usar pygame.display.update()
con argumentos para suavizar solo algunas partes del fondo.
Cuando uso blit
función blit
, no elimina el sprite cargado anterior para hacer que los sprites se muevan hasta que llamo a la función "display.fill (bgcolor)". El problema es que tengo un fondo multicolor. Entonces, ¿cómo actualizo la imagen sin afectar mi fondo? NOTA - Ya probé "pygame.display.update ()" y "pygame.display.flip ()" - no ayuda :(
class states():
def __init__(self, goku1,goku2, x, y):
self.image=goku1
keys=pygame.key.get_pressed()
if keys[K_RIGHT]:
self.image=goku2
if keys[K_LEFT]:
self.image=goku2
while True:
pygame.display.flip()
pygame.display.update()
obj=states(goku1, goku2, x, y)
call=position()
DISPLAYSURF.blit(obj.image, (x, y))
estoy atascado por mucho tiempo :(
Enceñarías primero el fondo y luego cambiarías la nueva ubicación del sprite que se está moviendo. Se vería algo como esto:
window= pygame.display.set_mode(WINDOWSIZE, 0, 32)
while True:
#update events
window.blit(your_multi_colored_background, (0, 0))
window.blit(obj.image, (x, y))
pygame.display.update()
Espero que esto ayude.