Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson6_diy3
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
59eab729
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
f22c9579
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
62 additions
and
45 deletions
my_music.py
my_music.py
View file @
59eab729
...
@@ -2,29 +2,31 @@ import pygame
...
@@ -2,29 +2,31 @@ import pygame
from
pygame
import
locals
from
pygame
import
locals
import
os
import
os
pygame
.
init
()
# 初始化
pygame
.
init
()
# 初始化
# 创建窗口
# 创建窗口
screen
=
pygame
.
display
.
set_mode
((
640
,
480
))
screen
=
pygame
.
display
.
set_mode
((
640
,
480
))
# 载入图片
、资源
# 载入图片
bg_img
=
pygame
.
image
.
load
(
'background.png'
)
# 背景图
bg_img
=
pygame
.
image
.
load
(
'background.png'
)
# 背景图
play_img
=
pygame
.
image
.
load
(
'play.png'
)
# 播放按钮
play_img
=
pygame
.
image
.
load
(
'play.png'
)
# 播放按钮
stop_img
=
pygame
.
image
.
load
(
'stop.png'
)
# 暂停按钮
stop_img
=
pygame
.
image
.
load
(
'stop.png'
)
# 暂停按钮
last_img
=
pygame
.
image
.
load
(
'last.png'
)
# 上一曲按钮
last_img
=
pygame
.
image
.
load
(
'last.png'
)
# 上一曲按钮
next_img
=
pygame
.
image
.
load
(
'next.png'
)
# 下一曲按钮
next_img
=
pygame
.
image
.
load
(
'next.png'
)
# 下一曲按钮
logo_img
=
pygame
.
image
.
load
(
'logo.png'
)
# 下一曲按钮
logo_img
=
pygame
.
image
.
load
(
'logo.png'
)
# 中间logo图
basic_font
=
pygame
.
font
.
Font
(
'neuropol.ttf'
,
14
)
# 字体
music_list
=
[]
music_list
=
[]
path
=
"C:
\\
Users
\\
WM
\\
Desktop
\\
te
x
t"
path
=
"C:
\\
Users
\\
WM
\\
Desktop
\\
te
s
t"
filelist
=
os
.
listdir
(
path
)
filelist
=
os
.
listdir
(
path
)
num
=
-
1
angle
=
0
for
i
in
filelist
:
for
i
in
filelist
:
if
i
[
-
4
:]
==
".
wav"
or
i
[
-
4
:]
==
".ogg
"
:
if
i
[
-
4
:]
==
".
ogg"
or
i
[
-
4
:]
==
".wav
"
:
music_list
.
append
(
i
)
music_list
.
append
(
i
)
num
=
-
1
volume
=
0.2
volume
=
0.2
pygame
.
mixer
.
music
.
set_volume
(
volume
)
#
初始播放
音量
pygame
.
mixer
.
music
.
set_volume
(
volume
)
#
音乐播放器
音量
click
=
0
click
=
0
# 初始点击次数
play_button
=
stop_img
play_button
=
stop_img
angle
=
0
while
True
:
while
True
:
for
event
in
pygame
.
event
.
get
():
for
event
in
pygame
.
event
.
get
():
...
@@ -32,72 +34,90 @@ while True:
...
@@ -32,72 +34,90 @@ while True:
exit
()
exit
()
# 按键,控制声音大小
# 按键,控制声音大小
if
event
.
type
==
locals
.
KEYDOWN
:
if
event
.
type
==
locals
.
KEYDOWN
:
if
event
.
key
==
locals
.
K_
w
:
if
event
.
key
==
locals
.
K_
UP
:
volume
+=
0.1
volume
+=
0.1
if
volume
>
1
:
if
volume
>
1
:
volume
=
1
volume
=
1
pygame
.
mixer
.
music
.
set_volume
(
volume
)
pygame
.
mixer
.
music
.
set_volume
(
volume
)
if
event
.
key
==
locals
.
K_
s
:
if
event
.
key
==
locals
.
K_
DOWN
:
volume
-=
0.1
volume
-=
0.1
if
volume
<
0
:
if
volume
<
0
:
volume
=
0
volume
=
0
pygame
.
mixer
.
music
.
set_volume
(
volume
)
pygame
.
mixer
.
music
.
set_volume
(
volume
)
if
event
.
type
==
locals
.
MOUSEBUTTONDOWN
:
if
event
.
type
==
locals
.
MOUSEBUTTONDOWN
:
if
event
.
button
==
1
:
# 左击
if
event
.
button
==
1
:
# 左击
x
,
y
=
event
.
pos
x
,
y
=
event
.
pos
if
x
>
270
and
x
<
370
and
y
>
350
and
y
<
450
:
# 播放按钮
if
x
>
270
and
x
<
370
and
y
>
350
and
y
<
450
:
click
+=
1
click
+=
1
if
click
%
2
==
0
:
if
click
%
2
==
0
:
play_button
=
stop_img
pygame
.
mixer
.
music
.
unpause
()
pygame
.
mixer
.
music
.
unpause
()
play_button
=
stop_img
else
:
else
:
play_button
=
play_img
pygame
.
mixer
.
music
.
pause
()
pygame
.
mixer
.
music
.
pause
()
if
x
>
420
and
x
<
520
and
y
>
350
and
y
<
400
:
# 下一曲
play_button
=
play_img
num
+=
1
if
x
>
120
and
x
<
220
and
y
>
350
and
y
<
400
:
#上一曲
if
num
>
len
(
music_list
)
-
1
:
num
=
0
pygame
.
mixer
.
music
.
load
(
path
+
music_list
[
num
])
pygame
.
mixer
.
music
.
play
()
play_button
=
stop_img
if
click
%
2
==
0
:
click
+=
2
else
:
click
+=
1
if
x
>
120
and
x
<
220
and
y
>
350
and
y
<
400
:
# 上一曲
num
-=
1
num
-=
1
if
num
<
0
:
if
num
<
0
:
num
=
len
(
music_list
)
-
1
num
=
len
(
music_list
)
-
1
pygame
.
mixer
.
music
.
load
(
path
+
music_list
[
num
])
pygame
.
mixer
.
music
.
load
(
path
+
"
\\
"
+
music_list
[
num
])
pygame
.
mixer
.
music
.
play
()
pygame
.
mixer
.
music
.
play
()
play_button
=
stop_img
play_button
=
stop_img
if
click
%
2
==
0
:
click
=
0
click
+=
2
# 歌曲的时间
else
:
music1
=
pygame
.
mixer
.
Sound
(
path
+
"
\\
"
+
music_list
[
num
])
click
+=
1
music_length
=
music1
.
get_length
()
music_length
=
int
(
music_length
)
if
pygame
.
mixer
.
music
.
get_busy
()
==
False
:
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
num
+=
1
if
num
>
len
(
music_list
)
-
1
:
if
num
>
len
(
music_list
)
-
1
:
num
=
0
num
=
0
pygame
.
mixer
.
music
.
load
(
path
+
music_list
[
num
])
pygame
.
mixer
.
music
.
load
(
path
+
"
\\
"
+
music_list
[
num
])
pygame
.
mixer
.
music
.
play
()
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
=
pygame
.
mixer
.
music
.
get_pos
()
play_time
=
int
(
play_time
/
1000
)
play_time
=
int
(
play_time
/
1000
)
play_m
=
play_time
//
60
# 分
play_m
=
play_time
//
60
# 分
play_s
=
play_time
%
60
# 秒
play_s
=
play_time
%
60
# 秒
info
=
str
(
play_m
)
+
":"
+
str
(
play_s
)
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
)
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
if
play_button
==
stop_img
:
angle
+=
1
# 绘制画面
screen
.
blit
(
bg_img
,
(
0
,
0
))
# 填充背景
screen
.
blit
(
bg_img
,
(
0
,
0
))
# 填充背景
screen
.
blit
(
play_button
,
(
270
,
330
))
# 暂停按钮
screen
.
blit
(
play_button
,
(
270
,
330
))
# 暂停按钮
screen
.
blit
(
logo_img
,
(
170
,
60
)
)
# 中间logo图
screen
.
blit
(
new_logo
,
pos
)
# 中间logo图
screen
.
blit
(
last_img
,
(
120
,
350
))
# 上一曲
screen
.
blit
(
last_img
,
(
120
,
350
))
# 上一曲
screen
.
blit
(
next_img
,
(
420
,
350
))
# 下一曲
screen
.
blit
(
next_img
,
(
420
,
350
))
# 下一曲
# 绘制时间进度
# 绘制时间进度
...
@@ -105,8 +125,5 @@ while True:
...
@@ -105,8 +125,5 @@ while True:
screen
.
blit
(
scoreSurf
,
(
120
,
440
))
screen
.
blit
(
scoreSurf
,
(
120
,
440
))
scoreSurf2
=
basic_font
.
render
(
"/"
+
info2
,
True
,
(
0
,
0
,
0
))
scoreSurf2
=
basic_font
.
render
(
"/"
+
info2
,
True
,
(
0
,
0
,
0
))
screen
.
blit
(
scoreSurf2
,
(
170
,
440
))
screen
.
blit
(
scoreSurf2
,
(
170
,
440
))
# 刷新画面
pygame
.
display
.
update
()
pygame
.
display
.
update
()
FPS
.
tick
(
60
)
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