Esempio n. 1
0
def settings():
    screen.fill([245, 245, 220])
    screen.blit(menu2.image, menu2.rect)
    start = True

    saves = open(os.path.join('data', 'lvl.txt'))
    c = saves.read().split()
    if c[4] == '0':
        hiden = f3.render('Привет я рада что ты сюда заглянул) Как тебе музыка?^-^', True, (80, 150, 80))
        screen.blit(hiden, (0, 600))
    c[4] = '1'
    copy = ' '.join(c)
    saves.close()
    f = open('data\lvl.txt', 'w')
    f.write(copy)
    f.close()

    info1 = f1.render("to move forvard print space or enter :3", True, (138, 43, 226))
    screen.blit(info1, (0, 268))
    info2 = f1.render("to back to menu click esc ", True, (138, 43, 226))
    screen.blit(info2, (0, 320))
    info3 = f1.render("BUT don't forget save your progress", True, (138, 43, 226))
    screen.blit(info3, (0, 372))
    info4 = f1.render("thanks for playing ;)", True, (138, 43, 226))
    screen.blit(info4, (0, 428))

    ex = f3.render('you still need esc to exit to menu', True, (215, 24, 104))
    screen.blit(ex, (0, 676))

    music = Slider("Music Volume", 300, 300, 1, (20, 20), (400, 70), f2)

    off = Button.Button()
    off.create_button(screen, (90, 255, 100), 30, 150, 200, 50, 0, 'off', (68, 45, 37))

    while start:
        music.draw(screen)
        pygame.display.flip()

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                start = False
                pygame.quit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    start = False
                    startWindow()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                pos = pygame.mouse.get_pos()
                if music.button_rect.collidepoint(pos):
                    music.hit = True
                    pygame.mixer.music.set_volume(int(music.get_value()) / 300)
                if off.pressed(pos):
                    pygame.mixer.music.set_volume(0)
            elif event.type == pygame.MOUSEBUTTONUP:
                music.hit = False
        if music.hit:
            music.move()

    pygame.quit()
Esempio n. 2
0
    for planet in planets:
        planet.update_velocity(planets, FPS, v_simulation)

    for planet in planets:
        planet.update_position(FPS, v_simulation)
        planet.draw(screen)

    pygame.draw.rect(screen, DATA_GREY, (WIDTH, 0, width_data_rect, HEIGHT))
    pygame.draw.line(screen, WHITE, (WIDTH, 0), (WIDTH, HEIGHT))

    for i in range(len(planets)):
        planets[i].write(i, screen, font, WIDTH)

    slider.set_value(v_simulation)
    slider.draw(screen)

    clock.tick(FPS)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            mouse = mouse_x, mouse_y = pygame.mouse.get_pos()
            if mouse_x < WIDTH:
                # new planet generation
                planet_pos = planet_w, planet_h = mouse

                mass = "1*10**24"
                color = WHITE

                speed_and_mass = False
Esempio n. 3
0
def interactive(b):
    exit = False
    userPick = False
    possibleStart = False
    possibleRestart = False
    boardCleared = False
    showSlider = False
    #Initialize all buttons
    opta = Button(GREEN, padding, 10, 70, 30, "MAZE")
    optb = Button(GREEN, padding + 80, 10, 70, 30, "RANDOM")
    optc = Button(GREEN, padding + 160, 10, 70, 30, "CREATIVE")
    optd = Button(GREEN, padding + 240, 10, 70, 30, "BASIC")
    optStart = Button(GREEN, WIDTH - 100, 10, 70, 30, "Start")
    optClear = Button(D_VIOLET, WIDTH - 180, 10, 70, 30, "Clear")
    optRestart = Button(D_VIOLET, WIDTH - 260, 10, 70, 30, "Restart")
    next_b = Button(GOLD, WIDTH - 100, HEIGHT - 30, 90, 20, text="Next")
    slider = Slider(padding + 320, 10, 140, 20, 100)
    recommended_text = font1.render('Recommended [0,30]', True, ORANGE)
    selection = False
    b.act = "choose"
    while not exit:
        possibleRestart = True
        screen.fill(WHITE)
        display_l(b)
        for e in pygame.event.get():
            pos = pygame.mouse.get_pos()
            if e.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

            if e.type == pygame.MOUSEBUTTONDOWN:
                if opta.isOver(pos):
                    # User selected maze board
                    showSlider = False
                    userPick = True
                    possibleStart = False
                    boardCleared = False
                    b = MazeBoard(rows, cols)

                elif optb.isOver(pos):
                    #User selected random board
                    showSlider = True
                    userPick = False
                    possibleStart = False

                elif optc.isOver(pos):
                    #User selected creative board
                    showSlider = False
                    userPick = True
                    possibleStart = False
                    boardCleared = False
                    b = ObsticleBoard(rows, cols, 'map51x51.txt')

                elif optd.isOver(pos):
                    #User selected basic board
                    showSlider = False
                    userPick = True
                    possibleStart = False
                    boardCleared = False
                    b = Board(rows, cols)

                elif optClear.isOver(pos):
                    #User cleared board
                    b.clear()
                    possibleStart = False
                    possibleRestart = False
                    userPick = False
                    boardCleared = True

                elif optRestart.isOver(pos):
                    # User restarted board
                    # None of the nodes are removed
                    # (The path is cleared only for the user to replay the animation)
                    if possibleRestart and not boardCleared:
                        b.restart()
                        #User will be able to start the path finding
                        possibleStart = True
                    else:
                        possibleStart = False

            #Change colour of button on mouse hover
            if opta.isOver(pos):
                opta.color = GREEN
            else:
                opta.color = AQUA
            if optb.isOver(pos):
                optb.color = GREEN
            else:
                optb.color = AQUA
            if optc.isOver(pos):
                optc.color = GREEN
            else:
                optc.color = AQUA
            if optd.isOver(pos):
                optd.color = GREEN
            else:
                optd.color = AQUA
            if optClear.isOver(pos):
                optClear.color = VIOLET
            else:
                optClear.color = D_VIOLET
            if optRestart.isOver(pos) and possibleRestart:
                optRestart.color = VIOLET
            else:
                optRestart.color = D_VIOLET

            if showSlider and not possibleStart:
                #Draw slider if board is random
                slider.draw(screen)
                if slider.isOver(pos) and e.type == pygame.MOUSEBUTTONDOWN:
                    selection = True

                if e.type == pygame.MOUSEBUTTONUP:
                    selection = False

                if selection:
                    slider.setValueByMousePos(pos[0])
                    #Display recommended value of random wall spawn rate
                    #Lower -> Less walls, Higher -> More walls
                    if 0 <= slider.val < 30:
                        recommended_text = font1.render(
                            'Recommended value', True, D_GREEN)
                    else:
                        recommended_text = font1.render(
                            'Recommended [0,30]', True, RED)

                if e.type == pygame.MOUSEBUTTONDOWN:
                    if next_b.isOver(pos):
                        next_b.color = ORANGE
                        b = RandomBoard(rows, cols, slider.val)
                        boardCleared = False
                        userPick = True
                        selection = False
                    else:
                        next_b.color = GOLD
                screen.blit(recommended_text, (padding + 320, 30))

            if userPick and not possibleStart:
                b.initilize()
                b.act = 'choose'
                b.userChoose()
                possibleStart = True
                possibleRestart = False

            if possibleStart and not boardCleared and b.start.x:
                #User has option to start the Pathfinding
                optStart.color = GREEN
                if optStart.isOver(pos):
                    if e.type == pygame.MOUSEBUTTONDOWN:
                        b.initChildren()
                        possibleRestart = False
                        return b
                else:
                    optStart.color = D_GREEN
            else:
                optStart.color = L_RED

            # Draw board options
            opta.draw(screen)
            optb.draw(screen)
            optc.draw(screen)
            optd.draw(screen)

            if showSlider:
                slider.draw(screen)
                next_b.draw(screen)

            if userPick:
                next_b.draw(screen)

            if possibleStart:
                optStart.draw(screen, (0, 150, 0))  #Green button
            else:
                optStart.draw(screen, (150, 0, 0))  #Red button

            optClear.draw(screen)
            optRestart.draw(screen)
            pygame.display.update()