import math import pygame import random import gametimer class Galaxy(object): def __init__(self, width, height): self.starmap = [[[] for x in range(width)] for x in range(height)] self.starlist = [] def update(self): for star in self.get_all_stars(): star.update() def draw(self, scr): for star in self.get_all_stars(): star.draw(scr) def add_star(self, star): self.starlist.append(star) self.starmap[int(star.y / 100)][int(star.x / 100)].append(star) def get_distance(self, x, y, x2, y2): return math.sqrt((x-x2)**2 + (y-y2)**2) def get_stars_in_sector(self, sx, sy): return [star for star in self.starmap[sy][sx] if type(star) == StarSys] def get_all_stars(self): return self.starlist def get_nearest_star(self, x, y): mindist = None minstar = None for star in self.get_all_stars(): stardist = self.get_distance(x, y, star.x, star.y) if mindist == None or stardist < mindist: mindist = stardist minstar = star return minstar """ star = None radius = 0 while True: starlist = [] self.get_stars_in_sector(x / 100, y / 100) if if star != None: return star else: """ class StarSys(object): def __init__(self, x, y, startype, habitat, minerals): self.x = x self.y = y self.startype = startype self.habitat = habitat self.minerals = minerals def draw(self, surf): self.startype.draw(surf, int(self.x / 10), int(self.y / 10), self.frame) def update(self): #if self.startype.size == "Dwarf" and self.startype.color == "White": #print gametimer.elapsed() #print self.frame_timer #print self.frame_timer - gametimer.elapsed() #print self.delays #sys.exit(0) self.frame_timer -= gametimer.elapsed() while self.frame_timer <= 0: self.frame_timer += self.delays[self.frame] self.frame += 1 if self.frame >= len(self.delays): self.frame = 0 def set_frame_timers(self, delays): self.delays = [int(x * 1000) for x in delays] self.frame_timer = self.delays[0] self.frame = 0 class StarClass(object): def __init__(self, name, color, size, habitat_mod, minerals_mod): self.name = name self.color = color self.size = size self.habitat_mod = habitat_mod self.minerals_mod = minerals_mod self.frames = None def draw(self, surf, x, y, frame): if self.frames == None: self.frames = [pygame.image.load('img/%s_%s%d.png' % (self.color.lower(), self.size.lower(), i+1)) for i in range(2)] for png in self.frames: png.convert_alpha(surf) dest = self.frames[frame].get_rect() dest.x = x - (dest.w / 2) + 1 dest.y = y - (dest.h / 2) + 1 surf.blit(self.frames[frame], dest)