Use the Loop Variable
Part of the Python in a Game Window section of Coddy's Pygame journey. Lesson 17 of 32.
The loop variable is a number like any other, so you can do arithmetic with it and change more than the position. Here each planet is bigger and more yellow than the one before:
for i in range(6):
x = 70 + i * 100
radius = 5 + i * 5
colour = (255, 80 + i * 30, 120)
pygame.draw.circle(screen, colour, (x, 240), radius)Work through it for i = 2: x is 270, the radius 15, the colour (255, 140, 120). For i = 5: x 570, radius 30, colour (255, 230, 120).
Variables made inside the body, such as x and radius, get new values on every pass. Naming the parts first keeps the draw line short and clear.
Keep every colour number between 0 and 255. Here the largest green is 80 + 5 * 30, which is 230, so it is safe.
Challenge
MediumChange the loop so planet i:
- is centred at
(70 + i * 100, 240), as now; - has radius
5 + i * 5, from 5 to 30; - has colour
(255, 80 + i * 30, 120).
Try it yourself
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Set things up here, before the game loop.
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Change things here, once a frame.
screen.fill((20, 24, 48))
# Draw here, after the fill.
for i in range(6):
pygame.draw.circle(screen, (255, 80, 120), (70 + i * 100, 240), 10)
pygame.display.flip()
clock.tick(60)
pygame.quit()
All lessons in Python in a Game Window
4Loops That Draw
Repeat with ForStart, Stop and StepUse the Loop VariableA Loop in a LoopCount with While2Numbers and Variables
Name a ValueDo the MathsMove Every FrameWords on the ScreenWhole and Half NumbersPractice on your own: Pygame playground