/ / Dlaczego miganie / filckowanie obrazów sprite? - python, pygame

Dlaczego migotanie / pisanie obrazków z ikonami sprite? - python, pygame

Jak mogę zapobiec niekontrolowanemu migotaniu obrazu sprite? (nazwa zdjęcia to hydraulicy). po uruchomieniu programu jedynym migotaniem obrazu jest ikonka.

import pygame
import os, sys
import itertools
import pygame
from pygame.sprite import Sprite

cloud_background = pygame.image.load("clouds.bmp")
brick_tile = pygame.image.load("brick_tile.png")
plumbers = pygame.image.load("Mario_sideways_sprite_2xL.png")

pink = (255, 64, 64)
w = 640
h = 480
screen = pygame.display.set_mode((w, h))
running = 1

def setup_background():
screen.fill((pink))
screen.blit(cloud_background,(0,0))
brick_width, brick_height = brick_tile.get_width(), brick_tile.get_height()
for x,y in itertools.product(range(0,640,brick_width),
range(390,480,brick_height)):
# print(x,y)
screen.blit(brick_tile, (x,y))


def show_sprites():
screen.blit(plumbers,(50,337))
pygame.display.flip()



while running:
show_sprites()
setup_background()
pygame.display.flip()
event = pygame.event.poll()
if event.type == pygame.QUIT: sys.exit()

Odpowiedzi:

0 dla odpowiedzi № 1

Naprawdę nie znam pygame, ale kiedy czekasz na odpowiedź od kogoś z większym doświadczeniem w tej dziedzinie, mogę zaoferować tę radę, która może pomóc.

Twoje ustawienie tła od zeraczas, który jest procesem intensywnym dla procesora. Najlepszym rozwiązaniem jest zrenderowanie tylko wymaganej części tła. To znaczy części, w których wcześniej pracował twój sprite hydraulik.

Normalnie robisz to, tworząc dwie zmienne o nazwie stary X, stary Y. Ten proces renderowania jest wydawany w górę.

Obecnie renderujesz cały ekran w każdym cyklu pętli.