# Tag: Space

This is a simple space effect of sliding stars using Pygame.

We set some constants like the screen size and the number N of star we want.

```N = 200 SCREEN_W, SCREEN_H = (640, 480)```

Using list comprehension we create a list of random points in the screen, that will be our stars. The size of this list is N.

```stars = [ [random.randint(0, SCREEN_W),random.randint(0, SCREEN_H)] for x in range(N) ]```

Each star is represented by one tuple on the stars list. The first star is on stars[0] and is a touple with [x, y] positions.

At each step from the game loop we draw and update the position of each star. A star is draw as a white line of one pixel. See the pygame.draw.line doc.

```for star in stars: pygame.draw.line(background, (255, 255, 255), (star[0], star[1]), (star[0], star[1])) star[0] = star[0] - 1 if star[0] < 0: star[0] = SCREEN_W star[1] = random.randint(0, SCREEN_H)```

In this example we update the position of a star by decreasing its horizontal position. When the horizontal position is less than zero, it’s not displayed on the screen anymore so we replace its horizontal position (star[0]) by the screen width (SCREEN_W) and the vertical position (star[1]) by a new random position. This will be like create a new star and guarantee always a different pattern of sliding stars.

The complete code:

```#!/usr/bin/env python   # A simple effect of sliding stars to create a deep space sensation. # by Silveira Neto <me@silveiraneto.net> # Free under the terms of GPLv3 license # See http://silveiraneto.net/2009/08/12/pygame-simple-space-effect/   import os,sys,random import pygame from pygame.locals import *   # Constants N = 200 SCREEN_W, SCREEN_H = (640, 480)   def main(): # basic start pygame.init() screen = pygame.display.set_mode((SCREEN_W,SCREEN_H)) pygame.display.set_caption('Simple Space Effect by Silveira Neto')   # create background background = pygame.Surface(screen.get_size()) background = background.convert()   # generate N stars stars = [ [random.randint(0, SCREEN_W),random.randint(0, SCREEN_H)] for x in range(N) ]   # main loop clock = pygame.time.Clock() while 1: clock.tick(22) for event in pygame.event.get(): if event.type == QUIT: return elif event.type == KEYDOWN and event.key == K_ESCAPE: return background.fill((0,0,0)) for star in stars: pygame.draw.line(background, (255, 255, 255), (star[0], star[1]), (star[0], star[1])) star[0] = star[0] - 1 if star[0] < 0: star[0] = SCREEN_W star[1] = random.randint(0, SCREEN_H) screen.blit(background, (0,0)) pygame.display.flip()   if __name__ == '__main__': main()```