Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson9_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
c6d44dc8
authored
2 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auto save
parent
6e3c3f53
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
6 deletions
Untitled-1.py.py
Untitled-1.py.py
View file @
c6d44dc8
...
@@ -17,6 +17,15 @@ class Block(pygame.sprite.Sprite): # 障碍物精灵类
...
@@ -17,6 +17,15 @@ class Block(pygame.sprite.Sprite): # 障碍物精灵类
self
.
rect
.
y
=
500
-
self
.
rect
.
height
self
.
rect
.
y
=
500
-
self
.
rect
.
height
self
.
score
=
1
self
.
score
=
1
pygame
.
init
()
# 初始化
pygame
.
init
()
# 初始化
class
Player
(
pygame
.
sprite
.
Sprite
):
# 悟空
def
__init__
(
self
,
image
):
super
()
.
__init__
()
# 加载悟空精灵图像
self
.
image
=
image
# image的get_rect()方法,可以返回pygame.Rect(0,0,图像宽,图像高)的对象
self
.
rect
=
self
.
image
.
get_rect
()
self
.
rect
.
x
=
150
self
.
rect
.
y
=
400
# 创建一个窗口
# 创建一个窗口
screen
=
pygame
.
display
.
set_mode
((
1000
,
600
))
screen
=
pygame
.
display
.
set_mode
((
1000
,
600
))
FPS
=
pygame
.
time
.
Clock
()
# pygame时钟,控制游戏速度(帧数)
FPS
=
pygame
.
time
.
Clock
()
# pygame时钟,控制游戏速度(帧数)
...
@@ -32,13 +41,30 @@ hero = [pygame.image.load('hero1.png'),
...
@@ -32,13 +41,30 @@ hero = [pygame.image.load('hero1.png'),
pygame
.
image
.
load
(
'hero3.png'
),
pygame
.
image
.
load
(
'hero3.png'
),
pygame
.
image
.
load
(
'hero4.png'
),
pygame
.
image
.
load
(
'hero4.png'
),
pygame
.
image
.
load
(
'hero5.png'
)]
pygame
.
image
.
load
(
'hero5.png'
)]
index
=
0
score_audio
=
pygame
.
mixer
.
Sound
(
'score.wav'
)
basic_font
=
pygame
.
font
.
Font
(
'STKAITI.TTF'
,
18
)
# 字体
index
=
0
y
=
400
jumpState
=
"runing"
t
=
30
road_x
=
0
bg_x
=
0
time
=
0
gamestate
=
True
score
=
0
old_score
=
score
block_list
=
pygame
.
sprite
.
Group
()
# 创建精灵组
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
:
# 接收到退出事件后退出程序
# 接收到退出事件后退出程序
exit
()
exit
()
if
event
.
type
==
locals
.
KEYDOWN
:
if
jumpState
==
"runing"
:
if
event
.
key
==
locals
.
K_SPACE
:
jumpState
=
"up"
wukong
=
hero
[
index
]
wukong
=
hero
[
index
]
index
+=
1
index
+=
1
...
@@ -46,9 +72,42 @@ while True:
...
@@ -46,9 +72,42 @@ while True:
index
=
0
index
=
0
# 将背景图画上去
# 将背景图画上去
screen
.
blit
(
background
,
(
0
,
0
))
bg_x
-=
1
screen
.
blit
(
road
,
(
0
,
500
))
if
bg_x
<=
-
1000
:
screen
.
blit
(
wukong
,
(
150
,
400
))
bg_x
=
0
# 刷新画面
screen
.
blit
(
background
,
(
bg_x
,
0
))
pygame
.
display
.
update
()
road_x
-=
8
if
road_x
<=
-
1000
:
road_x
=
0
screen
.
blit
(
road_x
,
500
))
screen
.
blit
(
wukong
.
inage
,(
150
,
y
))
time
+=
1
if
time
>=
60
:
# 创建障碍物精灵
time
=
0
num
=
random
.
randint
(
0
,
50
)
if
num
>
20
:
obstacle
=
Block
(
bush
,
cacti
,
stone
)
block_list
.
add
(
obstacle
)
for
sprite
in
block_list
:
# 遍历、展示障碍物精灵
sprite
.
rect
.
x
-=
8
screen
.
blit
(
sprite
.
image
,
(
sprite
.
rect
.
x
,
sprite
.
rect
.
y
))
if
sprite
.
rect
.
x
<=
0
-
sprite
.
rect
.
width
:
sprite
.
kill
()
if
pygame
.
sprite
.
collide_rect
(
wukong
,
sprite
):
# 精灵碰撞检测
gameover
=
pygame
.
image
.
load
(
'gameover.png'
)
# 游戏结束
screen
.
blit
(
gameover
,
(
400
,
200
))
gamestate
=
False
else
:
if
(
sprite
.
rect
.
x
+
sprite
.
rect
.
width
)
<
wukong
.
rect
.
x
:
score
+=
sprite
.
score
sprite
.
score
=
0
# 分数
scoreSurf
=
basic_font
.
render
(
"分数:"
+
str
(
score
),
True
,
(
255
,
255
,
255
))
screen
.
blit
(
scoreSurf
,
(
880
,
20
))
# 刷新画面
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