资源简介
最近又学了一下python,听说pygame挺好玩的,研究了好久, 弄了个贪吃蛇出来,在一位网友的基础上加了不少东西,加减速,暂停,排名,障碍物弄了一半。希望没女朋友的大家喜欢~~~
代码片段和文件信息
## 导入相关模块
import random
import pygame
import sys
from pygame.locals import *
windows_width = 800
windows_height = 600 # 游戏窗口的大小
cell_size = 20 # 贪吃蛇身体方块大小注意身体大小必须能被窗口长宽整除
‘‘‘ #初始化区
由于我们的贪吃蛇是有大小尺寸的 因此地图的实际尺寸是相对于贪吃蛇的大小尺寸而言的
‘‘‘
map_width = int(windows_width / cell_size)
map_height = int(windows_height / cell_size)
# 颜色定义
white = (255 255 255)
black = (0 0 0)
gray = (230 230 230)
dark_gray = (40 40 40)
DARKGreen = (0 155 0)
Green = (0 255 0)
Red = (255 0 0)
blue = (0 0 255)
dark_blue = (0 0 139)
FOOD_color = [(10 (255 100 100)) (20 (100 255 100)) (30 (100 100 255))] # 食物颜色
BG_COLOR = black # 游戏背景颜色
# 定义方向
UP = 1
DOWN = 2
LEFT = 3
RIGHT = 4
HEAD = 0 # 贪吃蛇头部下标
score_add = []
def running_game(screen snake_speed_clocknum):
change_speed = 0 # 定义改变速度
start_speed = 2 # 贪吃蛇的原始速度+2
startx = random.randint(20 map_width - 20) # 开始位置
starty = random.randint(10 map_height - 10)
snake_coords = [{‘x‘: startx ‘y‘: starty} # 初始贪吃蛇
{‘x‘: startx - 1 ‘y‘: starty}
{‘x‘: startx - 2 ‘y‘: starty}]
direction = RIGHT # 开始时向右移动
food = get_random_location() # 实物随机位置
while True:
for event in pygame.event.get():
if event.type == QUIT:
terminate()
elif event.type == KEYDOWN: # and 判断是否输入了反方向
if (event.key == K_LEFT or event.key == K_a) and direction != RIGHT:
direction = LEFT
elif (event.key == K_RIGHT or event.key == K_d) and direction != LEFT:
direction = RIGHT
elif (event.key == K_UP or event.key == K_w) and direction != DOWN:
direction = UP
elif (event.key == K_DOWN or event.key == K_s) and direction != UP:
direction = DOWN
elif event.key == K_SPACE:
pause(screen)
elif event.key == K_ESCAPE:
terminate()
elif event.key == K_1: # 按“1”加速一局加速不超过10
if change_speed < 10:
change_speed += 1
elif event.key == K_2: # 按“2”减速,减速次数不能超过加速5次
if change_speed > -5 and len(snake_coords) > 8:
change_speed -= 1
move_snake(direction snake_coords) # 移动蛇
ret = snake_is_alive(snake_coords)
if not ret:
break # 蛇跪了. 游戏结束
snake_is_eat_food(snake_coords food) # 判断蛇是否吃到食物
screen.fill(BG_COLOR)
draw_grid(screen)
draw_snake(screen snake_coords)
draw_food(screen food)
draw_score(screen len(snake_coords) - 3)
pygame.display.update()
# 控制速度
if len(snake_coords) < 40:
snake_speed = change_speed + len(snake_coords) // 2 + start_speed
draw_speed(screen change_speed + len(snake_coords) // 2 + start_speed)
pygame.display.update()
else:
snake_speed = 10 # 长度到达40时,若一直按减速,则看到速度最小为10
draw_speed(screen 10)
pygame.display.update()
snake_speed_clock.tick(snake_speed)
keep_rangking(len(snake_coords)-4 num)
show_gameover_info(screenlen(snake_coords)-4num)
# 将食物画出来
def draw_food(screen food):
x = food[‘x‘] * cell_size
y = food[‘y‘] * cell_size
appleRect = pygame.Rect(x y cell_size
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-12 10:12 snake\
文件 1195 2018-12-11 20:08 snake\h.jpg
文件 19347 2018-12-11 19:56 snake\l.png
文件 4381372 2017-12-19 16:41 snake\myfont.ttf
文件 192520 2018-12-10 17:10 snake\over.png
文件 87281 2018-12-11 20:25 snake\rangking.jpg
文件 10121 2018-12-12 10:12 snake\snake.py
文件 67359 2018-12-10 19:16 snake\start.png
文件 1237 2018-12-11 20:13 snake\timg.jpg
相关资源
- 基于django的一个博客的前后端基础设
- 图像处理的详细python程序
- 5. 深度学习中的目标检测 python代码实
- OpenCV-Python入门教程.pdf
- 《编写高质量代码:改善Python程序的
- 鱼c工作室小甲鱼零基础学python全套课
- 快速入门python培训教程.ppt
- Python-即时通讯Python实现web版多人聊天
- 逻辑回归Python源代码
- micropython中文教程嵌入式详细教程
- python写的一个爬取指定电影链接
- python游戏编程入门--高清版
- 小甲鱼 Python3 完整ppt
- 学生成绩管理系统-python-tkinker.zip
- pywin32-221.win-amd64-py3.7.rar
- python 高效开发实战源代码配套
- Python语言程序设计国家计算机等级考
- FlaskWeb开发:基于Python的Web应用开发实
- Python Graphics.pdf
- python3.6模块集合-piprequestssetuptoolspyg
- 最新东北大学Python程序设计实验2019
- 深度学习入门:基于Python的理论与实
- Python爬虫爬取智联招聘
- 100行Python代码实现自动抢火车票
- 《Learning data mining with python》中文版
- Python基础教程(第3版).pdf109608
- Deep_Learning_for_Computer_Vision_with_Python_
- python3.4的安装包
- 利用脉冲耦合神经网络的图像处理.
- Python基础教程(第3版).[挪]Magnus Li
评论
共有 条评论