Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson8_diy4
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
07655000
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
8acb0f6b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
7 deletions
my_game.py
my_game.py
View file @
07655000
import
pygame
import
pygame
from
pygame
import
locals
from
pygame
import
locals
import
random
import
random
import
json
pygame
.
init
()
# 初始化
pygame
.
init
()
# 初始化
...
@@ -53,11 +55,18 @@ bg_x = 0
...
@@ -53,11 +55,18 @@ bg_x = 0
time
=
0
time
=
0
gamestate
=
True
gamestate
=
True
score
=
0
score
=
0
speed
=
8
old_score
=
score
old_score
=
score
block_list
=
pygame
.
sprite
.
Group
()
# 创建精灵组
block_list
=
pygame
.
sprite
.
Group
()
# 创建精灵组
with
open
(
'record.txt'
,
'r'
,
encoding
=
'utf-8'
)
as
f
:
content
=
f
.
read
()
record
=
json
.
loads
(
content
)
one
=
record
[
"第1名"
]
two
=
record
[
"第2名"
]
three
=
record
[
"第3名"
]
while
True
:
while
True
:
for
event
in
pygame
.
event
.
get
():
for
event
in
pygame
.
event
.
get
():
if
event
.
type
==
locals
.
QUIT
:
if
event
.
type
==
locals
.
QUIT
:
...
@@ -67,7 +76,8 @@ while True:
...
@@ -67,7 +76,8 @@ while True:
if
jumpState
==
"runing"
:
if
jumpState
==
"runing"
:
if
event
.
key
==
locals
.
K_SPACE
:
if
event
.
key
==
locals
.
K_SPACE
:
jumpState
=
"up"
jumpState
=
"up"
speed
=
8
+
score
//
3
speed
=
8
+
score
//
3
# 悟空造型
# 悟空造型
wukong
=
Player
(
hero
[
index
])
wukong
=
Player
(
hero
[
index
])
if
jumpState
==
"runing"
:
# 跑步状态下
if
jumpState
==
"runing"
:
# 跑步状态下
...
@@ -80,14 +90,14 @@ while True:
...
@@ -80,14 +90,14 @@ while True:
if
t
>
0
:
if
t
>
0
:
y
-=
t
y
-=
t
wukong
.
rect
.
y
=
y
wukong
.
rect
.
y
=
y
t
-=
1
t
-=
2
else
:
else
:
jumpState
=
"down"
jumpState
=
"down"
if
jumpState
==
"down"
:
# 降落状态
if
jumpState
==
"down"
:
# 降落状态
if
t
<=
30
:
if
t
<=
30
:
y
+=
t
y
+=
t
wukong
.
rect
.
y
=
y
wukong
.
rect
.
y
=
y
t
+=
1
t
+=
2
else
:
else
:
jumpState
=
"runing"
jumpState
=
"runing"
t
=
30
t
=
30
...
@@ -98,7 +108,7 @@ while True:
...
@@ -98,7 +108,7 @@ while True:
bg_x
=
0
bg_x
=
0
screen
.
blit
(
background
,
(
bg_x
,
0
))
# 远景
screen
.
blit
(
background
,
(
bg_x
,
0
))
# 远景
road_x
-=
8
road_x
-=
speed
if
road_x
<=
-
1000
:
if
road_x
<=
-
1000
:
road_x
=
0
road_x
=
0
screen
.
blit
(
road
,
(
road_x
,
500
))
# 道路
screen
.
blit
(
road
,
(
road_x
,
500
))
# 道路
...
@@ -113,7 +123,7 @@ while True:
...
@@ -113,7 +123,7 @@ while True:
obstacle
=
Block
(
bush
,
cacti
,
stone
)
obstacle
=
Block
(
bush
,
cacti
,
stone
)
block_list
.
add
(
obstacle
)
block_list
.
add
(
obstacle
)
for
sprite
in
block_list
:
# 遍历、展示障碍物精灵
for
sprite
in
block_list
:
# 遍历、展示障碍物精灵
sprite
.
rect
.
x
-=
8
sprite
.
rect
.
x
-=
speed
screen
.
blit
(
sprite
.
image
,
(
sprite
.
rect
.
x
,
sprite
.
rect
.
y
))
screen
.
blit
(
sprite
.
image
,
(
sprite
.
rect
.
x
,
sprite
.
rect
.
y
))
if
sprite
.
rect
.
x
<=
0
-
sprite
.
rect
.
width
:
if
sprite
.
rect
.
x
<=
0
-
sprite
.
rect
.
width
:
sprite
.
kill
()
sprite
.
kill
()
...
@@ -125,13 +135,21 @@ while True:
...
@@ -125,13 +135,21 @@ while True:
if
(
sprite
.
rect
.
x
+
sprite
.
rect
.
width
)
<
wukong
.
rect
.
x
:
if
(
sprite
.
rect
.
x
+
sprite
.
rect
.
width
)
<
wukong
.
rect
.
x
:
score
+=
sprite
.
score
score
+=
sprite
.
score
sprite
.
score
=
0
sprite
.
score
=
0
if
score
>
old_score
:
if
score
>
old_score
:
score_audio
.
play
()
score_audio
.
play
()
old_score
=
score
old_score
=
score
# 分数
# 分数
scoreSurf
=
basic_font
.
render
(
"分数:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
scoreSurf
=
basic_font
.
render
(
"分数:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,
(
880
,
20
))
screen
.
blit
(
scoreSurf
,
(
880
,
20
))
scoreSurf
=
basic_font
.
render
(
"第1名:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,
(
880
,
50
))
scoreSurf
=
basic_font
.
render
(
"第2名:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,
(
880
,
80
))
scoreSurf
=
basic_font
.
render
(
"第3名:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,
(
880
,
110
))
# 刷新画面
# 刷新画面
pygame
.
display
.
update
()
pygame
.
display
.
update
()
FPS
.
tick
(
60
)
FPS
.
tick
(
60
)
\ No newline at end of file
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