Skip to content

Category: english

Pygame, Simple Space Effect

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

[youtube]TXGV6guTOno[/youtube]

Direct link to video: simple_space_effect_01.ogv

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 
# 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()

My Free Tileset, version 10

My laptop broke and I lose the newest versions of some of my drawing. Fortunately I had backups for most of them. I found out that I had not published the 10th version yet. Here it is.

pixelart free tileset version 10

As usual is just little improvements over the last version. This time I added some geography elements. It’s now possible to create little levels and simple island.

Got SCSAS

I passed on the exam for the Sun Certified Solaris Associate (SCSAS) from Sun Microsystems.

It covers fundamentals on Unix and Solaris 10, like knowledge of basic Solaris topics, including using basic Solaris commands to work with directories and files, creating and editing files, compressing, viewing and uncompressing files, managing permissions and ownership, configuring access control lists, searching directories and files, performing basic process control, working with advanced shell functionality, archiving file, and performing remote file transfers.

solaris logo

It’s not a dificult exam if you are already familiar with working with some command line tools on Linux systems, just need to know a little bit more on the Solaris 10 details like acess control lists and the Korn shell.