Python Forum
Why do I have an infinite loop?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Why do I have an infinite loop?
#8
Why are you not using range loops ?
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.
Reply


Messages In This Thread
Why do I have an infinite loop? - by xBlackHeartx - Jan-12-2020, 05:53 PM
RE: Why do I have an infinite loop? - by Windspar - Jan-12-2020, 11:37 PM
RE: Why do I have an infinite loop? - by Windspar - Jan-13-2020, 11:37 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020