Why are you not using range loops ?
You can do that. All with one function.
You can do that. All with one function.
import os import pygame from itertools import product def draw_color(surface, x, y, color, c_range, block): y_top = y red = range(color.r, -1, -c_range) green = range(color.g, -1, -c_range) blue = range(color.b, -1, -c_range) for r, g, b in product(red, green, blue): pygame.draw.rect(surface, (r, g, b), (x, y, block, block)) y += block if y > block * 4 + y_top: x += block y = y_top def main(): pygame.init() # Center Screen before creating main surface. os.environ['SDL_VIDEO_CENTERED'] = '1' block = 50 size = block * 25, block * 25 # Basic pygame setup pygame.display.set_caption("Colors") surface = pygame.display.set_mode(size) clock = pygame.time.Clock() rect = surface.get_rect() delta = 0 fps = 60 # Main Loop running = True while running: # Event Loop for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Draw surface.fill(pygame.Color('black')) draw_color(surface, 0, 0, pygame.Color('red'), 50, block) draw_color(surface, block, 0, pygame.Color('green'), 50, block) draw_color(surface, block * 2, 0, pygame.Color('blue'), 50, block) draw_color(surface, block * 4, 0, pygame.Color(255, 255, 0), 50, block) draw_color(surface, block * 12, 0, pygame.Color(0, 255, 255), 50, block) draw_color(surface, block * 4, block * 6, pygame.Color(255, 0, 255), 50, block) # Render to screen pygame.display.flip() # Sleep/Idle and Delta delta = clock.tick(fps) main()
99 percent of computer problems exists between chair and keyboard.