Почему спрайт-изображение мигает / складывается? - PullRequest
0 голосов
/ 12 января 2012

Как я могу предотвратить неконтролируемое мерцание изображения спрайта?(изображение зовут сантехники).при запуске программы единственным мерцанием изображения является спрайт.

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()

1 Ответ

0 голосов
/ 12 января 2012

Я действительно не знаю Pygame, но пока вы ждете ответа от кого-то с большим опытом в этой области.Я могу предложить этот совет, который может помочь.

Вы настраиваете фон с нуля каждый раз, что требует интенсивного использования процессора.Лучше всего вместо этого фактически перерисовать только ту часть фона, которая требуется.Т.е. части, где раньше водопроводчик спрайт занимал.

Обычно вы делаете это, создавая две переменные, называемые old X, old Y. Этот процесс рендеринга исчерпан.

В настоящее время вы визуализируете весь экран каждый цикл цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...