关于编写游戏,是博主非常向往的东西(博主喜爱游戏),编写游戏得一步一步的走!今天我简单的编写一下非常经典的游戏贪吃蛇!!!!

效果图:

首先引入pygame模块

pip install pygame

关于编写贪吃蛇有如下几个步骤!依次思考

1,设置背景大小,即游戏框大小,---像素(px)

2,设置颜色,蛇的颜色,背景颜色,豆子的颜色

#pygame游戏库,sys操控python运行的环境
import pygame,sys,random
#这个模块包含所有pygame所使用的常亮
from  pygame.locals import  *
#1,定义颜色变量
#0-255  0黑色  255白色
redColor = pygame.Color(255,0,0)
#背景为黑色
blackColor = pygame.Color(0,0,0)
#贪吃蛇为白色
whiteColor = pygame.Color(255,255,255)

3,设置蛇的初始位置和长度,豆子的初始位置及被吃后随机出现的位置(如下),及蛇的速度

4,设置按键,控制蛇的上下左右

5,设置蛇通过与豆子的位置重合判断是否吃了豆子,此时蛇长度加一,豆子消失同时随机出现

6,设置开始函数(1,,3,4,5都可以设置在开始函数里),结束函数,并判断死亡方式,及游戏结束方式(直接退出,或者游戏结束)

def main():#初始化pygamepygame.init()#定义一个变量来控制速度fpsClock=pygame.time.Clock()#创建pygame显示层,创建一个界面playsurface=pygame.display.set_mode((640,480))pygame.display.set_caption('贪吃蛇')#初始化变量#贪吃蛇初始坐标位置   (先以100,100为基准)snakePosition = [100,100]#初始化贪吃蛇的长度列表中有个元素就代表有几段身体snakeBody = [[100,100],[80,100],[60,100]]#初始化目标方向额位置targetPosition = [300,300]#目标方块的标记 目的:判断是否吃掉了这个目标方块1 就是没有吃 0就是吃掉targetflag = 1#初始化方向   --》往右direction = 'right'#定义一个方向变量(人为控制  按键)changeDirection = direction
def gameover():    #游戏结束pygame.quit()sys.exit()

关于游戏运行可以当做一个时间,通过不断地循环是蛇不断地前进(设置按键,凭个人喜好按键)

 while True:for event in pygame.event.get():  #从队列中获取事件if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:if event.key == K_d:changeDirection = 'right'if event.key == K_a:changeDirection = 'left'if event.key ==K_w:changeDirection = 'up'if event.key ==K_s:changeDirection = 'down'#对应键盘上的esc文件if event.key == K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))

确定方向!当蛇在运行时不可掉头!不可前后,左后!

#确定方向if changeDirection =='left' and not direction =='right':direction = changeDirectionif changeDirection =='right' and not direction =='left':direction = changeDirectionif changeDirection =='up' and not direction =='down':direction = changeDirectionif changeDirection =='down' and not direction =='up':direction = changeDirection

这里通过像素的加减确定蛇头的移动向上或向下加减20px相当于向上下移动一步

 #根据方向移动蛇头if direction =='right':snakePosition[0] +=20if direction =='left':snakePosition[0] -=20if direction =='up':snakePosition[1] -=20if direction =='down':snakePosition[1] +=20#增加蛇的长度snakeBody.insert(0,list(snakePosition))#如果贪吃蛇和目标方块的位置重合if snakePosition[0] == targetPosition[0] and snakePosition[1] ==targetPosition[1]:targetflag= 0else:snakeBody.pop()if targetflag ==0:x = random.randrange(1,32)y = random.randrange(1,24)targetPosition = [int(x*20),int(y*20)]targetflag =1#填充背景颜色playsurface.fill(blackColor)

设置蛇与豆子的颜色长宽

        for position in snakeBody:#第一个参数serface指定一个serface编辑区,在这个区域内绘制#第二个参数color:颜色#第三个参数:rect:返回一个矩形(xy),(width,height)#第四个参数:width:表示线条的粗细  width0填充  实心#化蛇pygame.draw.rect(playsurface,redColor,Rect(position[0],position[1],20,20))pygame.draw.rect(playsurface, whiteColor, Rect(targetPosition[0], targetPosition[1], 20, 20))

将上面的所作为显示到桌面,通过下面的方法实现

pygame.display.flip()

判断游戏结束

 if snakePosition[0] > 620 or snakePosition[0] < 0:gameover()elif snakePosition[1] >460 or snakePosition[1] <0:gameover()#控制游戏速度fpsClock.tick(2)

基本的贪吃蛇步骤如上,如果要是添加得分或者开始和结束界面都凭自身能力了,大佬们肯定是洒洒水了

以下是完整代码

#pygame游戏库,sys操控python运行的环境
import pygame,sys,random
#这个模块包含所有pygame所使用的常亮
from  pygame.locals import  *
#1,定义颜色变量
#0-255  0黑色  255白色
redColor = pygame.Color(255,0,0)
#背景为黑色
blackColor = pygame.Color(0,0,0)
#贪吃蛇为白色
whiteColor = pygame.Color(255,255,255)#定义游戏结束的函数
def gameover():pygame.quit()sys.exit()
#定义main函数--》定义我们的入口函数
def main():#初始化pygamepygame.init()#定义一个变量来控制速度fpsClock=pygame.time.Clock()#创建pygame显示层,创建一个界面playsurface=pygame.display.set_mode((640,480))pygame.display.set_caption('贪吃蛇')#初始化变量#贪吃蛇初始坐标位置   (先以100,100为基准)snakePosition = [100,100]#初始化贪吃蛇的长度列表中有个元素就代表有几段身体snakeBody = [[100,100],[80,100],[60,100]]#初始化目标方向额位置targetPosition = [300,300]#目标方块的标记 目的:判断是否吃掉了这个目标方块1 就是没有吃 0就是吃掉targetflag = 1#初始化方向   --》往右direction = 'right'#定义一个方向变量(人为控制  按键)changeDirection = directionwhile True:for event in pygame.event.get():  #从队列中获取事件if event.type == QUIT:pygame.quit()sys.exit()elif event.type == KEYDOWN:if event.key == K_d:changeDirection = 'right'if event.key == K_a:changeDirection = 'left'if event.key ==K_w:changeDirection = 'up'if event.key ==K_s:changeDirection = 'down'#对应键盘上的esc文件if event.key == K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))#确定方向if changeDirection =='left' and not direction =='right':direction = changeDirectionif changeDirection =='right' and not direction =='left':direction = changeDirectionif changeDirection =='up' and not direction =='down':direction = changeDirectionif changeDirection =='down' and not direction =='up':direction = changeDirection#根据方向移动蛇头if direction =='right':snakePosition[0] +=20if direction =='left':snakePosition[0] -=20if direction =='up':snakePosition[1] -=20if direction =='down':snakePosition[1] +=20#增加蛇的长度snakeBody.insert(0,list(snakePosition))#如果贪吃蛇和目标方块的位置重合if snakePosition[0] == targetPosition[0] and snakePosition[1] ==targetPosition[1]:targetflag= 0else:snakeBody.pop()if targetflag ==0:x = random.randrange(1,32)y = random.randrange(1,24)targetPosition = [int(x*20),int(y*20)]targetflag =1#填充背景颜色playsurface.fill(blackColor)for position in snakeBody:#第一个参数serface指定一个serface编辑区,在这个区域内绘制#第二个参数color:颜色#第三个参数:rect:返回一个矩形(xy),(width,height)#第四个参数:width:表示线条的粗细  width0填充  实心#化蛇pygame.draw.rect(playsurface,redColor,Rect(position[0],position[1],20,20))pygame.draw.rect(playsurface, whiteColor, Rect(targetPosition[0], targetPosition[1], 20, 20))#更新显示到屏幕表面pygame.display.flip()#判断是否游戏结束if snakePosition[0] > 620 or snakePosition[0] < 0:gameover()elif snakePosition[1] >460 or snakePosition[1] <0:gameover()#控制游戏速度fpsClock.tick(2)
#   启动入口函数
if __name__ =='__main__':main()

运行结果:

python编写贪吃蛇游戏相关推荐

  1. python编写贪吃蛇游戏下载,python实现简单的贪吃蛇游戏

    本文实例为大家分享了python实现贪吃蛇游戏的具体代码,加入按钮.难度.音乐.得分功能,供大家参考,具体内容如下 贪吃蛇小游戏,可以显示出得分,又背景音乐,难度选择和开始重启按钮设置. 游戏实现效果 ...

  2. 【课件】使用Python写贪吃蛇游戏(pygame)

    使用Python写贪吃蛇游戏(pygame) 课件地址:https://blog.csdn.net/a772304419/article/details/130087202 本地路径: cd /D/W ...

  3. python 贪吃蛇小游戏代码_10分钟再用Python编写贪吃蛇小游戏

    Python编写贪吃蛇 前不久我们公众号发布了一篇C++编写贪吃蛇小游戏的推文,反响空前.看来大家对这类简单易上手小游戏还是很喜爱的. 恰逢2018年IEEE Spectrum编程语言排行榜新鲜出炉, ...

  4. python制作贪吃蛇游戏_用Python写贪吃蛇游戏的代码实例

    这篇文章主要为大家详细介绍了Python贪吃蛇游戏的编写代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近在学Python,想做点什么来练练手,命令行的贪吃蛇一般是C的练手项目,但是一时之间 ...

  5. 怎么用python编贪吃蛇_少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二)

    原标题:少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二) 检测和判断 无论我们制作的简单或者复杂的游戏 这都是最关键的两个部分 事件处理循环 61. while True: # 游戏主循环 62 ...

  6. Linux下编写贪吃蛇游戏

    Linux下编写贪吃蛇游戏 文章目录 Linux下编写贪吃蛇游戏 前言 一.贪吃蛇代码 二.运行贪吃蛇代码 前言 本程序需要ncurses库,ubuntu下安装ncurses可以执行下面命令: sud ...

  7. 如何用python开发一个贪吃蛇游戏_教你一步步利用python实现贪吃蛇游戏

    教你一步步利用python实现贪吃蛇游戏 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  教你一步步利用python实现贪吃蛇游戏.txt ] (友情提示:右键点 ...

  8. 10分钟用python编写贪吃蛇小游戏_牛得一批!10分钟用Python编写一个贪吃蛇小游戏...

    贪吃蛇,大家应该都玩过.当初第一次接触贪吃蛇的时候 ,还是能砸核桃的诺基亚上,当时玩的不亦乐乎.今天,我们用Python编程一个贪吃蛇游戏,下面我们先看看效果: 好了,先介绍一个思路 所有的游戏最主要 ...

  9. 手把手教你使用 Python 制作贪吃蛇游戏

    贪吃蛇游戏是有史以来最受欢迎的街机游戏之一.在这个游戏中,玩家的主要目标是在不撞墙或不撞墙的情况下抓住最大数量的水果.在学习 Python 或 Pygame 时,可以将创建蛇游戏视为一项挑战.这是每个 ...

最新文章

  1. 活见鬼,明明删除了数据,空间却没减少!
  2. Java基础-等待子线程结束
  3. NIO网络编程实战之简单多人聊天室
  4. 下列哪个不是it行业技术岗位_28岁毕业进入IT互联网行业从事技术研发岗位是否还来得及...
  5. C++smallest circle 获取外接给定点集的最小圆的中心和半径算法(附完整源码)
  6. vue 渲染函数处理slot_vue render 渲染函数
  7. atomikos   log already in use
  8. 简单干净的C#方法设计案例:SFCUI.AjaxValue()之一
  9. “咏刚的家”全新改版
  10. 【深度学习笔记】深度学习用于图片的分类和检测总结
  11. socket多人聊天程序C语言版(二)
  12. 安卓手机管理软件_超强手机磁力搜索+播放+下载软件,满速下载,一键播放!...
  13. tp ajax 多图上传,TP5 Ajax上传图片
  14. 手机linux发短信的命令,用AT指令操作短信猫发短信
  15. php下一页的代码,php 下一页的代码
  16. 虚拟机(VM)与JVM
  17. IPsec+预共享密钥的IKE野蛮模式
  18. 计算机慢的解决方法,几种电脑变慢的解决方法
  19. 谷歌搜索 site命令 指定网站搜索
  20. C语言程序设计-现代方法 第二版 第6.1小节 显示平方表

热门文章

  1. 知识:ubuntu硬盘挂载详细步骤:
  2. 一心多用多线程-future-java线程中的异步执行
  3. Maven中不能引入ojdbc解决方法:com.oracle:ojdbc6:jar:11.2.0.3
  4. xcode7.1生成打包上传时需要注意的东西
  5. 【JavaScript:快速入门】
  6. 218本巴菲特、芒格及段永平推荐书籍下载 (2012-03-31 22:53:28)
  7. 写给当初的你,现在的我
  8. 过年烟花特效+鼠标滑过+樱花特效
  9. linux下/proc/pid/maps和pmap命令详解
  10. VM 虚拟机网络配置