Esempio n. 1
0
 def draw(self):
     if self.kind == "dot":
         pixel_points = CoorsAndPixels.coor_to_pixel(self.pos, scale, size)
         radius = int((self.charge)**(1.0/3.0)*scale)
         gfxdraw.filled_circle(screen, pixel_points[0], pixel_points[1], radius, self.color)
         if radius > 1:
             gfxdraw.aacircle(screen, pixel_points[0], pixel_points[1], radius, self.color)
     elif self.kind == "line":
         #pygame.draw.aaline(screen, self.color, CoorsAndPixels.coor_to_pixel(self.pos, scale, size, True), CoorsAndPixels.coor_to_pixel([self.pos[0]+self.length*self.cos_a, self.pos[1]+self.length*self.sin_a], scale, size, True))
         pygame.draw.line(screen, self.color, CoorsAndPixels.coor_to_pixel(self.pos, scale, size, True), CoorsAndPixels.coor_to_pixel([self.pos[0]+self.length*self.cos_a, self.pos[1]+self.length*self.sin_a], scale, size, True), int(self.charge**(1.0/3.0)/5.0)+1)
Esempio n. 2
0
def display_info(): #shows level name and comments (if there are any)
    label = font.render("Level " + str(level+1) + ": " + level_name, 1, (0, 0, 0))
    screen.blit(label, [10, 10])
    #label = font.render("Sim. speed: " + str(simulation_speed), 1, (0, 0, 0))
    #screen.blit(label, [10, 10+label.get_rect()[3]])
    for x in comments:
        label = font.render(x[0], 1, (0, 0, 0))
        screen.blit(label, CoorsAndPixels.coor_to_pixel([x[1][0], x[1][1]], scale, size))
Esempio n. 3
0
def simulate(l_secs = 0.0, steps = 0, vel = [0.0, 0.0], pos=[0.0, 0.0]):
    local_pos = [pos[0], pos[1]]
    local_vel = [vel[0], vel[1]]
    for x in range(steps):
        for i in range(object_count):
            local_vel = objects[i].act_upon(l_secs, local_vel, local_pos)
        if local_vel == False:
            break
        prev_dots = [local_pos[0], local_pos[1]]
        local_pos[0] += local_vel[0]*l_secs
        local_pos[1] += local_vel[1]*l_secs
        green = int(255.0/steps*x)
        blue = int(255.0/steps*x)
        pygame.draw.aaline(screen, (255, green, blue), CoorsAndPixels.coor_to_pixel(prev_dots, scale, size, True), CoorsAndPixels.coor_to_pixel(local_pos, scale, size, True))
        total_velocity = math.sqrt(local_vel[0]**2 + local_vel[1]**2)
        try:
            l_secs = min(1.0/60.0, 1.0/total_velocity)
        except:
            l_secs = 1.0/400.0
Esempio n. 4
0
            level_thumbnails.append(pygame.image.load(str(x) + ".png").convert_alpha())
        except: #if unlocked and the thumbnail is not found
            level_thumbnails.append(pygame.image.load("question.png").convert_alpha())
    else: #if locked
        level_thumbnails.append(pygame.image.load("locked.png").convert_alpha())
    level_thumbnails[x] = pygame.transform.smoothscale(level_thumbnails[x], (w, w))

quit_p = False #main loop condition

#main menu
while in_menu:
    mouse_pos = pygame.mouse.get_pos()
    screen.fill((255, 255, 255))

    if menu == 0: #main menu
        if CoorsAndPixels.in_box(mouse_pos, start_rect):
            label = font.render("Start", 1, (0, 255, 0))
            pygame.draw.rect(screen, (0, 255, 0), start_rect, 1)
        else:
            label = font.render("Start", 1, (0, 0, 0))
        label_rect = label.get_rect()
        label_rect[0] = (size[0]-label_rect[2])/2
        label_rect[1] = start_rect[1]+(30-label_rect[3])/2
        screen.blit(label, label_rect)

        if CoorsAndPixels.in_box(mouse_pos, level_rect):
            label = font.render("Level select", 1, (0, 255, 0))
            pygame.draw.rect(screen, (0, 255, 0), level_rect, 1)
        else:
            label = font.render("Level select", 1, (0, 0, 0))
        label_rect = label.get_rect()