Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson5_diy1
This project
Loading...
Sign in
Toggle navigation
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
Commit
1318cb3b
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
0ac64efd
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
131 additions
and
5 deletions
my_music.py
新建文本文档.txt
my_music.py
View file @
1318cb3b
...
@@ -22,15 +22,18 @@ song_list=[]
...
@@ -22,15 +22,18 @@ song_list=[]
path
=
'.
\\
'
path
=
'.
\\
'
filelist
=
os
.
listdir
(
path
)
filelist
=
os
.
listdir
(
path
)
angle
=
0
angle
=
0
for
i
in
filelist
:
for
i
in
filelist
:
if
i
[
-
4
:]
==
'.ogg'
or
i
[
-
4
:]
==
'.wav'
or
i
[
-
5
:]
==
'.flac'
:
if
i
[
-
4
:]
==
'.ogg'
or
i
[
-
4
:]
==
'.wav'
or
i
[
-
5
:]
==
'.flac'
:
song_list
.
append
(
path
+
'
\\
'
+
i
)
song_list
.
append
(
path
+
'
\\
'
+
i
)
def
music_md
():
global
music_1
global
music_len
music_1
=
pygame
.
mixer
.
Sound
(
path
+
'
\\
'
+
song_list
[
num
])
music_len
=
music_1
.
get_length
()
music_len
=
int
(
music_len
)
while
True
:
while
True
:
play_time
=
pygame
.
mixer
.
music
.
get_pos
()
play_time
=
play_time
//
1000
play_m
=
play_time
//
60
play_s
=
play_time
%
60
info
=
str
(
play_m
)
+
':'
+
str
(
play_s
)
for
event
in
pygame
.
event
.
get
():
for
event
in
pygame
.
event
.
get
():
if
event
.
type
==
locals
.
QUIT
:
if
event
.
type
==
locals
.
QUIT
:
exit
()
exit
()
...
@@ -62,12 +65,14 @@ while True:
...
@@ -62,12 +65,14 @@ while True:
num
=
0
num
=
0
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
play
()
pygame
.
mixer
.
music
.
play
()
music_md
()
if
x
>
120
and
x
<
220
and
y
>
350
and
y
<
400
:
if
x
>
120
and
x
<
220
and
y
>
350
and
y
<
400
:
num
-=
1
num
-=
1
if
num
<
0
:
if
num
<
0
:
num
==
len
(
song_list
)
-
1
num
==
len
(
song_list
)
-
1
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
play
()
pygame
.
mixer
.
music
.
play
()
music_md
()
if
pygame
.
mixer
.
music
.
get_busy
()
==
False
:
if
pygame
.
mixer
.
music
.
get_busy
()
==
False
:
num
+=
1
num
+=
1
if
num
==
len
(
song_list
):
if
num
==
len
(
song_list
):
...
@@ -75,11 +80,20 @@ while True:
...
@@ -75,11 +80,20 @@ while True:
print
(
song_list
)
print
(
song_list
)
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
load
(
song_list
[
num
])
pygame
.
mixer
.
music
.
play
()
pygame
.
mixer
.
music
.
play
()
music_md
()
if
time
%
2
==
0
:
if
time
%
2
==
0
:
new_logo
=
pygame
.
transform
.
rotate
(
logo_img
,
angle
)
#旋转
new_logo
=
pygame
.
transform
.
rotate
(
logo_img
,
angle
)
#旋转
newRect
=
new_logo
.
get_rect
(
center
=
(
320
,
200
))
newRect
=
new_logo
.
get_rect
(
center
=
(
320
,
200
))
pos
=
(
newRect
[
0
],
newRect
[
1
])
pos
=
(
newRect
[
0
],
newRect
[
1
])
angle
+=
1
angle
+=
1
play_time
=
pygame
.
mixer
.
music
.
get_pos
()
play_time
=
play_time
//
1000
play_m
=
play_time
//
60
play_s
=
play_time
%
60
info
=
str
(
play_m
)
+
':'
+
str
(
play_s
)
music_m
=
music_len
//
60
music_s
=
music_len
%
60
info2
=
str
(
music_m
)
+
':'
+
str
(
music_s
)
# 绘制画面
# 绘制画面
screen
.
blit
(
bg_img
,
(
0
,
0
))
# 填充背景
screen
.
blit
(
bg_img
,
(
0
,
0
))
# 填充背景
...
@@ -89,5 +103,7 @@ while True:
...
@@ -89,5 +103,7 @@ while True:
screen
.
blit
(
next_img
,
(
420
,
350
))
# 下一曲
screen
.
blit
(
next_img
,
(
420
,
350
))
# 下一曲
scoreSurf
=
basic_font
.
render
(
info
,
True
,(
255
,
255
,
255
))
scoreSurf
=
basic_font
.
render
(
info
,
True
,(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,(
120
,
440
))
screen
.
blit
(
scoreSurf
,(
120
,
440
))
scoreSurf2
=
basic_font
.
render
(
'/'
+
info2
,
True
,
(
0
,
0
,
0
))
screen
.
blit
(
scoreSurf2
,(
170
,
440
))
# 刷新画面
# 刷新画面
pygame
.
display
.
update
()
pygame
.
display
.
update
()
This diff is collapsed.
Click to expand it.
新建文本文档.txt
0 → 100644
View file @
1318cb3b
import pygame,os
import pygame,os
from pygame import locals
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') # 上一曲按钮
logo_img = pygame.image.load('logo.png') # 中间logo
next_img = pygame.image.load('next.png')
basic_font = pygame.font.Font('neuropol.ttf',14)
# pygame.mixer.music.load('歌曲1.wav')
valome=0.5
pygame.mixer.music.set_volume(valome)
time=0
upace=stop_img
num=-1
song_list=[]
path='.\\'
filelist=os.listdir(path)
angle=0
for i in filelist:
if i[-4:]=='.ogg' or i[-4:]=='.wav' or i[-5:]=='.flac':
song_list.append(path + '\\'+i)
def music_md():
global music_1
global music_len
music_1 = pygame.mixer.Sound(path + '\\' + song_list[num])
music_len = music_1.get_length()
music_len = int(music_len)
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:
valome+=0.05
if valome>1:
valome=1
pygame.mixer.music.set_volume(valome)
if event.key == locals.K_DOWN:
valome-=0.05
if valome<0:
valome=0
pygame.mixer.music.set_volume(valome)
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:
time+=1
if time%2==0:
upace=stop_img
pygame.mixer.music.unpause()
else:
upace=play_img
pygame.mixer.music.pause()
if x>420 and x<520 and y>350 and y<400:
num+=1
if num==len(song_list):
num=0
pygame.mixer.music.load(song_list[num])
pygame.mixer.music.play()
music_md()
if x>120 and x<220 and y>350 and y<400:
num-=1
if num<0:
num==len(song_list)-1
pygame.mixer.music.load(song_list[num])
pygame.mixer.music.play()
music_md()
if pygame.mixer.music.get_busy() ==False:
num+=1
if num==len(song_list):
num=0
print(song_list)
pygame.mixer.music.load(song_list[num])
pygame.mixer.music.play()
music_md()
if time%2==0:
new_logo = pygame.transform.rotate(logo_img,angle)#旋转
newRect = new_logo.get_rect(center=(320,200))
pos = (newRect[0],newRect[1])
angle += 1
play_time = pygame.mixer.music.get_pos()
play_time = play_time//1000
play_m = play_time//60
play_s = play_time%60
info = str(play_m)+':'+str(play_s)
music_m = music_len//60
music_s = music_len%60
info2 = str(music_m)+':'+str(music_s)
# 绘制画面
screen.blit(bg_img, (0, 0)) # 填充背景
screen.blit(upace, (270, 330)) # 暂停按钮
screen.blit(new_logo, pos) # 中间logo图
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()
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment