Skip to content
Snippets Groups Projects
Commit bbe2b865 authored by Erkki Kaila's avatar Erkki Kaila
Browse files

refactored starfield to it's own class

parent 4656f1cc
No related branches found
No related tags found
No related merge requests found
......@@ -217,6 +217,26 @@ class Floor:
self.offset = 0
class StarField:
""" Mallintaa kokonaista skrollaavaa tähtikenttää """
def __init__(self):
self.stars = []
ri = random.randint
rc = random.choice
direct = (-1,1)
for i in range(1, 9):
for j in range(20):
self.stars.append(Star(ri(0,640), ri(5,475), i))
def draw(self, screen):
for star in self.stars:
star.draw(screen)
def move(self):
for star in self.stars:
star.move()
# Tarkistaa onko joku luodeista osunut viholliseen
def check_bullet_hits(bullets: list, enemies: list):
......@@ -245,19 +265,13 @@ high = 0
lives = 3
score = 0
ri = random.randint
# Silmukka, jossa peli pyörii uudelleen ja uudelleen
while True:
# Lista, jossa ovat kaikki taustalla rulllavat tähdet
stars = []
ri = random.randint
rc = random.choice
direct = (-1,1)
for i in range(1, 9):
for j in range(20):
stars.append(Star(ri(0,640), ri(5,475), i))
stars = StarField()
# Kaikki ruudulla näkyvät ammukset
bullets = []
......@@ -335,8 +349,7 @@ while True:
# Piirretään kaikki tähdet - kaikki muu piirretään tähtien päälle,
# siksi tämän pitää olla ensin
for star in stars:
star.draw(scr)
stars.draw(scr)
# Piirretään lattia
floor.draw(scr)
......@@ -400,10 +413,8 @@ while True:
# Tämä piirtää muutokset ruudulle
pygame.display.flip()
# Liikutetaan tähtiä listassa
for star in stars:
star.move()
# Liikutetaan tähtiä listassa ja lattiaa
stars.move()
floor.move()
# Tämä määrää pelin nopeuden - kokeile pienentää tai suurentaa arvoa
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment