Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

Administrator / pygame_lesson6_diy4

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Switch branch/tag
  • pygame_lesson6_diy4
  • my_music.py
Find file
BlameHistoryPermalink
  • BellCodeEditor's avatar
    save project · 3cced9ea
    BellCodeEditor committed 2 years ago
    3cced9ea
my_music.py 4.08 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
import pygame
from pygame import locals
import os
pygame.init()
screen = pygame.display.set_mode((640, 480))
bg_img = pygame.image.load('background.png')
play_img = pygame.image.load('play.png')
stop_img = pygame.image.load('stop.png')
last_img = pygame.image.load('last.png')
next_img = pygame.image.load('next.png')
logo_img = pygame.image.load('logo.png')
basic_font = pygame.font.Font('neuropol.ttf', 14)
music_list = []
path = "C:\\Users\\Thinkbook\\Desktop\\song\\"
filelist = os.listdir(path)
for i in filelist:
    if i[-4:] == ".ogg" or i[-4:] == ".wav":
        music_list.append(i)
num = -1
volume = 0.2
pygame.mixer.music.set_volume(volume)
click = 0
play_button = stop_img
angle = 0
while True:
    for event in pygame.event.get():
        if event.type == locals.QUIT:
            exit()
        if event.type == locals.KEYDOWN:
            if event.key == locals.K_UP:
                volume += 0.1
                if volume > 1:
                    volume = 1
                pygame.mixer.music.set_volume(volume)
            if event.key == locals.K_DOWN:
                volume -= 0.1
                if volume < 0:
                    volume = 0
                pygame.mixer.music.set_volume(volume)
        if event.type == locals.MOUSEBUTTONDOWN:
            if event.button == 1:
                x, y = event.pos
                if x > 270 and x < 370 and y > 350 and y < 450:
                    click += 1
                    if click % 2 == 0:
                        pygame.mixer.music.unpause()
                        play_button = stop_img
                    else:
                        pygame.mixer.music.pause()
                        play_button = play_img
                if x > 120 and x < 220 and y > 350 and y < 400:
                    num -= 1
                    if num < 0:
                        num = len(music_list) - 1
                    pygame.mixer.music.load(path +"\\" +music_list[num])
                    pygame.mixer.music.play()
                    play_button = stop_img
                    click = 0
                    music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
                    music_length = music1.get_length()
                    music_length = int(music_length)
                if x > 420 and x < 520 and y > 350 and y < 400:
                    num += 1
                    if num > len(music_list)-1:
                        num = 0
                    pygame.mixer.music.load(path +"\\" +music_list[num])
                    pygame.mixer.music.play()
                    play_button = stop_img
                    click = 0    
                    music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
                    music_length = music1.get_length()
                    music_length = int(music_length)         
    if pygame.mixer.music.get_busy() == False:
        num += 1
        if num > len(music_list)-1:
            num = 0
        pygame.mixer.music.load(path + "\\"+music_list[num])
        pygame.mixer.music.play()
        music1 = pygame.mixer.Sound(path + "\\" + music_list[num])
        music_length = music1.get_length()
        music_length = int(music_length)
    play_time = pygame.mixer.music.get_pos()
    play_time = int(play_time/1000)
    play_m = play_time//60
    play_s = play_time % 60
    if play_s < 10:
        play_s = "0"+str(play_s)
    info = str(play_m) + ":" + str(play_s)
    music_m = music_length//60
    music_s = music_length%60
    if music_s < 10:
        music_s = "0"+str(music_s)
    info2 = str(music_m)+":"+str(music_s)
    new_logo = pygame.transform.rotate(logo_img, angle)
    newRect = new_logo.get_rect(center=(320, 200))
    pos = (newRect[0], newRect[1])
    if play_button == stop_img:
        angle += 1
    screen.blit(bg_img, (0, 0))
    screen.blit(play_button, (270, 330))
    screen.blit(new_logo, pos)
    screen.blit(last_img, (120, 350))
    screen.blit(next_img, (420, 350))
    scoreSurf = basic_font.render(info, True, (255, 255, 255))
    screen.blit(scoreSurf, (120,440))
    scoreSurf2 = basic_font.render("/" + info2, True, (0, 0, 0))
    screen.blit(scoreSurf2, (170,440))
    pygame.display.update()