![]() |
[pygame] transparent rects - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Game Development (https://python-forum.io/forum-11.html) +--- Thread: [pygame] transparent rects (/thread-19004.html) |
[pygame] transparent rects - SheeppOSU - Jun-10-2019 I made a block rectangle that is supposed to slowly go from 255 transparency to 0. I am having problems though. I don't understand this because I can slowly make it darken, but I can't get it to slowly lighten. Thanks in Advance. Here is the code - For lightening it slowly. BTW - the indentations are weird because this is all inside a function. #Presets interval = time.time() transparency = 255 cover = pygame.Surface((500, 500), pygame.SRCALPHA) #Cover Screen while time.time() - interval < 10: for event in pygame.event.get(): if event.type == pygame.QUIT: interval -= 10 cover.fill((0, 0, 0, transparency)) Screen.blit(cover, (0, 0)) if transparency != 0: transparency -= 1 time.sleep(0.05) pygame.display.update() Clock.tick(fps)That code won't work, but this code for darkening the transparency does work. #Presets interval = time.time() transparency = 0 cover = pygame.Surface((500, 500), pygame.SRCALPHA) #Cover Screen while time.time() - interval < 10: for event in pygame.event.get(): if event.type == pygame.QUIT: interval -= 10 cover.fill((0, 0, 0, transparency)) Screen.blit(cover, (0, 0)) if transparency != 255: transparency += 1 time.sleep(0.05) pygame.display.update() Clock.tick(fps) RE: [pygame] transparent rects - Windspar - Jun-10-2019 Your code failed do to not clearing background first. You need to clear background with a solid color then blits cover. Lets also get ride of that time.sleep. #Presets interval = 100 # 100 milliseconds = 0.1 seconds next_tick = interval + pygame.time.get_ticks() trans_direction = -1 cover = pygame.Surface((500, 500), pygame.SRCALPHA) cover_color = pygame.Color('black') #Cover Screen running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False ticks = pygame.time.get_ticks() if ticks > next_tick: next_tick += interval cover_color.a += trans_direction if cover_color.a < 1: trans_direction = 1 if cover_color.a > 254: trans_direction = -1 cover.fill(cover_color) # Need to clear screen. Screen.fill(pygame.Color('white')) Screen.blit(cover, (0, 0)) pygame.display.update() Clock.tick(fps) RE: [pygame] transparent rects - SheeppOSU - Jun-10-2019 Thanks, I don't quite understand it now, but I'll try to break it all down. |