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()
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
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()