Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
pygame_lesson3_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
1459fc55
authored
2 years ago
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auto save
parent
6f77d7d1
c200937l1354p256a13985/is586967
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
64 deletions
snake.py
t01526f19edb564ecf5.jpg
snake.py
View file @
1459fc55
...
...
@@ -5,11 +5,11 @@ import random
pygame
.
init
()
# 创建一个窗口
screen
=
pygame
.
display
.
set_mode
((
660
*
2
,
48
0
))
screen
=
pygame
.
display
.
set_mode
((
400
,
30
0
))
FPSCLOCK
=
pygame
.
time
.
Clock
()
# pygame时钟,控制游戏速度(帧数)
# 背景
background
=
pygame
.
image
.
load
(
'
bg.pn
g'
)
background
=
pygame
.
image
.
load
(
'
t01526f19edb564ecf5.jp
g'
)
right
=
pygame
.
image
.
load
(
'right.png'
)
# 头 朝右
food
=
pygame
.
image
.
load
(
'apple.png'
)
# 食物 苹果
body
=
pygame
.
image
.
load
(
'body.png'
)
# 身体
...
...
@@ -18,66 +18,66 @@ up = pygame.image.load('up.png') # 头 朝上
down
=
pygame
.
image
.
load
(
'down.png'
)
# 头 朝下
z
=
pygame
.
font
.
Font
(
'neuropol.ttf'
,
18
)
x
,
y
=
240
,
120
position
=
[(
180
,
90
),
(
180
,
120
),
(
210
,
120
),
(
x
,
y
)]
#
x, y = 240, 120
#
position = [(180, 90), (180, 120), (210, 120), (x, y)]
setheading
=
"right"
snake_head
=
right
a
=
360
b
=
300
score
=
0
while
True
:
for
event
in
pygame
.
event
.
get
():
if
event
.
type
==
locals
.
QUIT
:
# 接收到退出事件后退出程序
exit
()
if
event
.
type
==
locals
.
KEYDOWN
:
if
event
.
key
==
locals
.
K_RIGHT
and
setheading
!=
"left"
:
setheading
=
'right'
snake_head
=
right
if
event
.
key
==
locals
.
K_LEFT
and
setheading
!=
"right"
:
setheading
=
'left'
snake_head
=
left
if
event
.
key
==
locals
.
K_UP
and
setheading
!=
"down"
:
setheading
=
'up'
snake_head
=
up
if
event
.
key
==
locals
.
K_DOWN
and
setheading
!=
"up"
:
setheading
=
'down'
snake_head
=
down
#
setheading = "right"
#
snake_head = right
#
a = 360
#
b = 300
#
score = 0
#
while True:
#
for event in pygame.event.get():
#
if event.type == locals.QUIT:
#
# 接收到退出事件后退出程序
#
exit()
#
if event.type == locals.KEYDOWN:
#
if event.key == locals.K_RIGHT and setheading != "left":
#
setheading = 'right'
#
snake_head = right
#
if event.key == locals.K_LEFT and setheading != "right":
#
setheading = 'left'
#
snake_head = left
#
if event.key == locals.K_UP and setheading != "down":
#
setheading = 'up'
#
snake_head = up
#
if event.key == locals.K_DOWN and setheading != "up":
#
setheading = 'down'
#
snake_head = down
# 设置贪吃蛇的头部坐标
if
setheading
==
"right"
:
x
+=
30
elif
setheading
==
"left"
:
x
-=
30
elif
setheading
==
"up"
:
y
-=
30
else
:
y
+=
30
position
.
append
((
x
,
y
))
if
x
==
a
and
y
==
b
:
a
=
random
.
randint
(
0
,
22
)
b
=
random
.
randint
(
0
,
16
)
a
*=
30
b
*=
30
score
+=
10
else
:
position
.
pop
(
0
)
if
x
<
0
or
x
>
630
or
y
<
0
or
y
>
450
:
exit
()
# 将背景图画上去
screen
.
blit
(
background
,
(
0
,
0
))
screen
.
blit
(
background
,
(
661
,
0
))
# 将贪吃蛇的头画上去
screen
.
blit
(
snake_head
,
position
[
-
1
])
# 将贪吃蛇的身体画上去
for
i
in
range
(
len
(
position
)
-
1
):
screen
.
blit
(
body
,
position
[
i
])
# 将果实画上去
screen
.
blit
(
food
,
(
a
,
b
))
info
=
"Score:"
+
str
(
score
)
text
=
z
.
render
(
info
,
True
,(
0
,
0
,
0
))
screen
.
blit
(
text
,(
540
,
10
))
# 刷新画面
pygame
.
display
.
update
()
FPSCLOCK
.
tick
(
3
)
\ No newline at end of file
# # 设置贪吃蛇的头部坐标
# if setheading == "right":
# x += 30
# elif setheading == "left":
# x -= 30
# elif setheading == "up":
# y -= 30
# else:
# y += 30
# position.append((x, y))
# if x == a and y == b:
# a = random.randint(0,22)
# b = random.randint(0,16)
# a *= 30
# b *= 30
# score += 10
# else:
# position.pop(0)
# if x < 0 or x > 630 or y < 0 or y > 450:
# exit()
# # 将背景图画上去
# screen.blit(background, (0, 0))
# screen.blit(background, (661, 0))
# # 将贪吃蛇的头画上去
# screen.blit(snake_head, position[-1])
# # 将贪吃蛇的身体画上去
# for i in range(len(position)-1):
# screen.blit(body, position[i])
# # 将果实画上去
# screen.blit(food, (a,b))
# info = "Score:" + str(score)
# text = z.render(info,True,(0,0,0))
# screen.blit(text,(540,10))
# # 刷新画面
# pygame.display.update()
# FPSCLOCK.tick(3)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
t01526f19edb564ecf5.jpg
0 → 100644
View file @
1459fc55
31.9 KB
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