Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson11_diy01
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
8b36e980
authored
3 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
1dd7b9f7
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
6 deletions
my_Tetris.py
my_Tetris.py
View file @
8b36e980
import
pygame
import
pygame
import
random
from
pygame
import
locals
from
pygame
import
locals
def
isOutofang
(
cur_center
,
cur_shape
):
for
cube
in
cur_shape
:
pos
=
(
cur_center
[
0
]
+
cube
[
0
],
cur_center
[
1
]
+
cube
[
1
])
if
pos
[
0
]
>
grid_num_height
or
pos
[
1
]
>
grid_num_width
or
pos
[
0
]
<
1
or
pos
[
1
]
<
1
:
return
True
pygame
.
init
()
# 初始化
pygame
.
init
()
# 初始化
score
=
0
score
=
0
grid_size
=
20
# 格子大小
grid_size
=
20
# 格子大小
grid_num_width
=
15
# 横向格子数量
grid_num_width
=
15
# 横向格子数量
grid_num_height
=
25
# 纵向格子数量
grid_num_height
=
25
# 纵向格子数量
FPS
=
30
FPS
=
30
count
=
0
states
=
False
# 创建窗口
# 创建窗口
screen
=
pygame
.
display
.
set_mode
((
460
,
500
))
screen
=
pygame
.
display
.
set_mode
((
460
,
500
))
...
@@ -44,8 +53,6 @@ cube_colors = [
...
@@ -44,8 +53,6 @@ cube_colors = [
(
255
,
204
,
0
),
(
204
,
0
,
51
),(
255
,
0
,
51
),
(
0
,
102
,
153
),
(
255
,
204
,
0
),
(
204
,
0
,
51
),(
255
,
0
,
51
),
(
0
,
102
,
153
),
(
153
,
0
,
51
),
(
204
,
255
,
102
),
(
255
,
153
,
0
)]
(
153
,
0
,
51
),
(
204
,
255
,
102
),
(
255
,
153
,
0
)]
center
=
[
2
,
8
]
# 第2行第8列
current_shape
=
[(
0
,
-
1
),
(
0
,
0
),
(
0
,
1
),
(
-
1
,
0
)]
while
True
:
while
True
:
for
event
in
pygame
.
event
.
get
():
for
event
in
pygame
.
event
.
get
():
...
@@ -53,17 +60,42 @@ while True:
...
@@ -53,17 +60,42 @@ while True:
exit
()
exit
()
if
event
.
type
==
locals
.
KEYDOWN
:
if
event
.
type
==
locals
.
KEYDOWN
:
if
event
.
key
==
locals
.
K_RIGHT
:
# 向右
if
event
.
key
==
locals
.
K_RIGHT
:
# 向右
if
center
[
1
]
<
15
:
center
[
1
]
+=
1
center
[
1
]
+=
1
if
isOutofang
(
center
,
current_shape
)
==
True
:
center
[
1
]
-=
1
elif
event
.
key
==
locals
.
K_LEFT
:
# 向左
elif
event
.
key
==
locals
.
K_LEFT
:
# 向左
if
center
[
1
]
>
1
:
if
center
[
1
]
>
1
:
center
[
1
]
-=
1
center
[
1
]
-=
1
if
isOutofang
(
center
,
current_shape
)
==
True
:
center
[
1
]
+=
1
elif
event
.
key
==
locals
.
K_DOWN
:
# 向下
elif
event
.
key
==
locals
.
K_DOWN
:
# 向下
if
center
[
0
]
<
25
:
if
center
[
0
]
<
25
:
center
[
0
]
+=
1
center
[
0
]
+=
1
if
isOutofang
(
center
,
current_shape
)
==
True
:
center
[
1
]
-=
1
elif
event
.
key
==
pygame
.
K_UP
:
direction
+=
1
current_shape
=
shape
[
direction
%
len
(
shape
)]
if
isOutofang
(
center
,
current_shape
)
==
True
:
center
[
1
]
-=
1
current_shape
=
shape
[
direction
%
len
(
shape
)]
# 将背景图画上去
# 将背景图画上去
screen
.
blit
(
background
,
(
0
,
0
))
screen
.
blit
(
background
,
(
0
,
0
))
if
states
==
False
:
states
=
True
center
=
[
2
,
8
]
color
=
random
.
choice
(
cube_colors
)
shape
=
random
.
choice
(
shape_list
)
direction
=
random
.
randint
(
0
,
len
(
shape
)
-
1
)
current_shape
=
shape
[
direction
]
count
+=
1
if
count
%
FPS
==
0
:
center
[
0
]
+=
1
if
isOutofang
(
center
,
current_shape
):
center
[
0
]
-=
1
states
=
False
# 计算出所有小方块的行、列位置
# 计算出所有小方块的行、列位置
current_pos
=
[]
current_pos
=
[]
for
cube
in
current_shape
:
for
cube
in
current_shape
:
...
...
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