Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson7_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
1f1f8d54
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auto save
parent
022ec8df
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
114 additions
and
6 deletions
diy1.py
diy3.py
my_game.py
diy1.py
0 → 100644
View file @
1f1f8d54
import
pygame
cacti
=
pygame
.
image
.
load
(
"cacti.png"
)
rect
=
cacti
.
get_rect
()
print
(
rect
)
print
(
rect
.
x
)
print
(
rect
.
y
)
print
(
rect
.
width
)
print
(
rect
.
height
)
This diff is collapsed.
Click to expand it.
diy3.py
0 → 100644
View file @
1f1f8d54
import
tkinter
#创建窗口
root
=
tkinter
.
Tk
()
root
.
geometry
(
'300x350+500+300'
)
#创建画布
canvas1
=
tkinter
.
Canvas
(
root
,
width
=
240
,
height
=
300
,
bg
=
"lightblue"
)
canvas2
=
tkinter
.
Canvas
(
canvas1
,
width
=
100
,
height
=
100
,
bg
=
"green"
)
#布局
canvas1
.
place
(
x
=
30
,
y
=
20
)
canvas2
.
place
(
x
=
0
,
y
=
0
)
#保存画布
root
.
mainloop
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
my_game.py
View file @
1f1f8d54
import
pygame
from
pygame
import
locals
import
random
pygame
.
init
()
# 初始化
# 创建一个窗口
screen
=
pygame
.
display
.
set_mode
((
1000
,
600
))
#创建标题
pygame
.
display
.
set_caption
(
"悟空酷跑"
)
FPS
=
pygame
.
time
.
Clock
()
# pygame时钟,控制游戏速度(帧数)
# 载入图片
background
=
pygame
.
image
.
load
(
'bg.png'
)
# 背景
road
=
pygame
.
image
.
load
(
'road.png'
)
# 路
stone
=
pygame
.
image
.
load
(
'stone.png'
)
# 石头
cacti
=
pygame
.
image
.
load
(
'cacti.png'
)
# 仙人掌
apple
=
pygame
.
image
.
load
(
'bush.png'
)
# 灌木丛
hero
=
pygame
.
image
.
load
(
'hero1.png'
)
index
=
0
bush
=
pygame
.
image
.
load
(
'bush.png'
)
# 灌木丛
hero
=
[
pygame
.
image
.
load
(
'hero1.png'
),
pygame
.
image
.
load
(
'hero2.png'
),
pygame
.
image
.
load
(
'hero3.png'
),
pygame
.
image
.
load
(
'hero4.png'
),
pygame
.
image
.
load
(
'hero5.png'
)]
#障碍物精灵类
class
Block
(
pygame
.
sprite
.
Sprite
):
def
__init__
(
self
,
image1
,
image2
,
image3
):
super
()
.
__init__
()
self
.
image
=
random
.
choice
([
image1
,
image2
,
image3
])
self
.
rect
=
self
.
image
.
get_rect
()
self
.
rect
.
x
=
1000
self
.
rect
.
y
=
500
-
self
.
rect
.
height
#悟空精灵类
class
Player
(
pygame
.
sprite
.
Sprite
):
def
__init__
(
self
,
image
):
super
()
.
__init__
()
self
.
image
=
image
self
.
rect
=
self
.
image
.
get_rect
()
self
.
rect
.
x
=
150
self
.
rect
.
y
=
400
index
=
0
y
=
400
jumpState
=
"runing"
#t代表y坐标变化的值
t
=
30
#创建精灵组
block_list
=
pygame
.
sprite
.
Group
()
#道路的x坐标
road_x
=
0
#远方风景
bg_x
=
0
time
=
0
while
True
:
for
event
in
pygame
.
event
.
get
():
if
event
.
type
==
locals
.
QUIT
:
# 接收到退出事件后退出程序
exit
()
if
event
.
type
==
locals
.
KEYDOWN
:
if
jumpState
==
"runing"
:
if
event
.
key
==
locals
.
K_SPACE
:
jumpState
=
"jump"
if
jumpState
==
"jump"
:
if
t
>
0
:
y
-=
t
t
-=
2
else
:
jumpState
=
"down"
if
jumpState
==
"down"
:
if
t
<=
30
:
y
+=
t
t
+=
2
else
:
jumpState
=
"runing"
t
=
30
#动作
if
jumpState
==
"runing"
:
index
+=
1
if
index
>
4
:
index
=
0
wukong
=
Player
(
hero
[
index
])
# 将背景图画上去
screen
.
blit
(
background
,
(
0
,
0
))
screen
.
blit
(
road
,
(
0
,
500
))
screen
.
blit
(
hero
,
(
150
,
400
))
bg_x
-=
2
if
bg_x
<-
1000
:
bg_x
=
0
screen
.
blit
(
background
,
(
bg_x
,
0
))
#道路
road_x
-=
8
if
road_x
<-
1000
:
road_x
=
0
screen
.
blit
(
road
,
(
road_x
,
500
))
screen
.
blit
(
wukong
.
image
,
(
150
,
y
))
time
+=
1
if
time
>=
60
:
#保证至少一秒才会产生障碍物
time
=
0
num
=
random
.
randint
(
0
,
50
)
#1秒内可能产生
if
num
>
20
:
#障碍物移动
ob
=
Block
(
stone
,
cacti
,
bush
)
block_list
.
add
(
ob
)
#将精灵添加到精灵组中
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
))
# 刷新画面
pygame
.
display
.
update
()
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