A simple game made as a hobby. Use the mouse to control the starship and collect the gems. The faster you collect them the better. Needs pygame (2.1.2) to run.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

41 lines
1.4 KiB

import pygame as pg
import random
WHITE = (255,)*3
def snap(x, scale):
return int(x//scale)*scale
class Starfield:
def __init__(self,
screen,
inv_density=10,
grid_step=31,
paralax = 2,
star_color=WHITE,
star_size = 1):
self.rng = random.Random()
self.screen = screen
self.inv_density = inv_density
self.paralax = paralax
self.grid_step = grid_step
self.star_color = star_color
self.star_size = star_size
def draw(self, screen, map_pos):
sky_pos = pg.math.Vector2((map_pos.x, map_pos.y))/self.paralax
xstart = snap(sky_pos.x, self.grid_step)
ystart = snap(sky_pos.y, self.grid_step)
xstop = xstart + screen.get_rect().width
ystop = ystart + screen.get_rect().width
for x in range(xstart, xstop, self.grid_step):
for y in range(ystart, ystop, self.grid_step):
self.rng.seed(hash((x,y)))
if self.rng.randint(0, self.inv_density) == 0:
xoff = self.rng.randint(0, self.grid_step)
yoff = self.rng.randint(0, self.grid_step)
cx = x + xoff - sky_pos.x
cy = y + yoff - sky_pos.y
pg.draw.circle(screen, self.star_color, (cx,cy), self.star_size)