python - Can anyone explain to me how this code allows the stars to move? -
trying understand how code works, can explain please.
def draw_star(star): # drawing star # need change pixel, use set_at, not draw.line screen.set_at((star[0], star[1]), (255, 255, 255)) star[0] -= 1 if star[0] < 0: star[0] = screen.get_width() star[1] = random.randint(0, screen.get_height()) stars = [] in range(1200): x = random.randint(0, screen.get_width()) y = random.randint(0, screen.get_height()) stars.append([x,y]) star in stars: draw_star(star)
first, code generates 1200 [x, y]
coordinates, each python list
:
stars = [] in range(1200): x = random.randint(0, screen.get_width()) y = random.randint(0, screen.get_height()) stars.append([x,y])
each x
, y
coordinate consist of random value within constraints of screen.
next, each of these coordinates drawn:
for star in stars: draw_star(star)
this passes [x, y]
coordinate list function draw_star
def draw_star(star): # drawing star
this sets white pixel @ given coordinates (star[0]
x
, star[1]
y
coordinate):
# need change pixel, use set_at, not draw.line screen.set_at((star[0], star[1]), (255, 255, 255))
the code subtracts 1 x coordinate (one step left). changes original list, because mutable lists used:
star[0] -= 1
if changed coordinates beyond edge of screen, star coordinates replaced new coordinates on right-hand side of screen, @ random height:
if star[0] < 0: star[0] = screen.get_width() star[1] = random.randint(0, screen.get_height())
if repeat for star in stars: draw_star(star)
loop screen blanking in between, you'd animating stars moving right left, new stars appearing on right @ random heights stars drop off left-hand side of screen.
the core idea here draw_star()
function handles mutable lists , changes values contained in them, changing contents of global stars
list next loop of animation.
Comments
Post a Comment