在写Python游戏项目时,最重要的时python中的pygame库。安装pygame库和用法在我CSDN博客另一篇文章上。这里就不详细说了。下边时运行游戏界面。

下边是详细的代码和注释

import pygame,sys,random,time
from pygame.locals import *   #从pygame模块导入常用的函数和常量
#定义颜色变量
black_colour = pygame.Color(0,0,0)
white_colour = pygame.Color(255,255,255)
red_colour = pygame.Color(255,0,0)
grey_colour = pygame.Color(150,150,150)
#定义游戏结束函数
def GameOver(gamesurface):#设置提示字体的格式GameOver_font = pygame.font.SysFont("MicrosoftYaHei", 16)#设置提示字体的颜色GameOver_colour = GameOver_font.render('Game Over',True,grey_colour)#设置提示位置GameOver_location = GameOver_colour.get_rect()GameOver_location.midtop = (320,10)#绑定以上设置到句柄gamesurface.blit(GameOver_colour,GameOver_location)#提示运行信息pygame.display.flip()#休眠5秒time.sleep(5)#退出游戏pygame.quit()#退出程序sys.exit()
#定义主函数
def main():#初始化pygame,为使用硬件做准备pygame.init()pygame.time.Clock()ftpsClock = pygame.time.Clock()#创建一个窗口gamesurface = pygame.display.set_mode((640,480))#设置窗口的标题pygame.display.set_caption('tanchishe snake')#初始化变量#初始化贪吃蛇的起始位置snakeposition = [100,100]#初始化贪吃蛇的长度snakelength = [[100,100],[80,100],[60,100]]#初始化目标方块的位置square_purpose = [300,300]#初始化一个数来判断目标方块是否存在square_position = 1#初始化方向,用来使贪吃蛇移动derection = "right"change_derection = derection#进行游戏主循环while True:#检测按键等pygame事件for event in pygame.event.get():if event.type==QUIT:#接收到退出事件后,退出程序pygame.quit()sys.exit()elif event.type==KEYDOWN:#判断键盘事件,用w,s,a,d来表示上下左右if event.key==K_RIGHT or event.key==ord('d'):change_derection = "right"if event.key==K_LEFT or event.key==ord('a'):change_derection = "left"if event.key==K_UP or event.key==ord('w'):change_derection = "up"if event.key==K_DOWN or event.key==ord('s'):change_derection = "down"if event.key==K_ESCAPE:pygame.event.post(pygame.event.Event(QUIT))#判断移动的方向是否相反if change_derection =='left'and not derection =='right':derection = change_derectionif change_derection =='right'and not derection =='left':derection = change_derectionif change_derection == 'up' and not derection =='down':derection = change_derectionif change_derection == 'down' and not derection == 'up':derection = change_derection#根据方向,改变坐标if derection == 'left':snakeposition[0] -= 20if derection == 'right':snakeposition[0] += 20if derection == 'up':snakeposition[1] -= 20if derection == 'down':snakeposition[1] += 20#增加蛇的长度snakelength.insert(0,list(snakeposition))#判断是否吃掉目标方块if snakeposition[0]==square_purpose[0] and snakeposition[1]==square_purpose[1]:square_position = 0else:snakelength.pop()#重新生成目标方块if square_position ==0:#随机生成x,y,扩大二十倍,在窗口范围内x = random.randrange(1,32)y = random.randrange(1,24)square_purpose = [int(x*20),int(y*20)]square_position = 1#绘制pygame显示层gamesurface.fill(black_colour)for position in snakelength:pygame.draw.rect(gamesurface,white_colour,Rect(position[0],position[1],20,20))pygame.draw.rect(gamesurface,red_colour,Rect(square_purpose[0],square_purpose[1],20,20))#刷新pygame显示层pygame.display.flip()#判断是否死亡if snakeposition[0]<0 or snakeposition[0]>620:GameOver(gamesurface)if snakeposition[1]<0 or snakeposition[1]>460:GameOver(gamesurface)for snakebody in snakelength[1:]:if snakeposition[0]==snakebody[0] and snakeposition[1]==snakebody[1]:GameOver(gamesurface)#控制游戏速度ftpsClock.tick(5)if __name__ == "__main__":main()

Python贪吃蛇游戏详细代码和注释相关推荐

  1. python贪吃蛇原始代码_pthon贪吃蛇游戏详细代码

    本文实例为大家分享了pthon贪吃蛇游戏的具体代码,供大家参考,具体内容如下 在写Python游戏项目时,最重要的时python中的pygame库.安装pygame库和用法在我CSDN博客另一篇文章上 ...

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

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

  3. python小游戏代码大全-python贪吃蛇游戏代码

    本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...

  4. python写一个游戏多少代码-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  5. python游戏脚本实例-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  6. python代码大全-python贪吃蛇游戏代码

    本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下 贪吃蛇游戏截图: 首先安装pygame,可以使用pip安装pygame: pip install pygame 运行以下 ...

  7. flash游戏代码html5,Flash贪吃蛇游戏AS代码翻译

    Flash贪吃蛇游戏AS代码翻译 互联网   发布时间:2008-10-06 01:25:13   作者:佚名   我要评论 今天翻译了一段经典的贪吃蛇代码,译后感觉还有很多地方不太妥当,很多不妥的地 ...

  8. 贪吃蛇游戏 c++代码 ↑,↓,→,←分别控制蛇的方向 增加蛇长 随机生成食物 吃食物 吃撞墙 撞到自己

    贪吃蛇游戏 c++代码 ↑,↓,→,←分别控制蛇的方向 增加蛇长 随机生成食物 吃食物 吃撞墙 撞到自己 Snake.h文件 #pragma once #include <stdio.h> ...

  9. python贪吃蛇最简单代码_利用python实现简易版的贪吃蛇游戏(面向python小白)

    引言 作为python 小白,总是觉得自己要做好百分之二百的准备,才能开始写程序.以至于常常整天在那看各种语法教程,学了几个月还是只会print('hello world'). 这样做效率太低,正确的 ...

最新文章

  1. 用STM32实现:摄像头扫到二维码后提取二维码中的信息分别放到数组中
  2. (转)挺好的一篇介绍字节序的文章
  3. openssl+poly1305+sm4实现
  4. 【Python】count()方法:统计字符串出现的次数
  5. Linux下scp命令的用法
  6. 拆轮子:requests
  7. Java HttpServlet 详解
  8. 解题报告(LeetCode):Max Points on a Line
  9. struts2进阶篇(3)
  10. chmod 777和755
  11. python 写入文件时编码问题
  12. 解读联想重组:终于裁员了
  13. vscode连接安卓模拟器上autojs
  14. 数组,异质结构以及指针的详解
  15. 7-87 时间换算 (15 分)
  16. 落户上海市高校毕业生就业指导中心集体户口办理办法
  17. 手把手教你搭建SSM框架,简单有效理解SSM框架
  18. 机器人搭建和少儿编程的区别
  19. 磁共振功能成像BOLD-fMRI原理
  20. 【Mac】动图截图工具Kap

热门文章

  1. C语言串口通信AD转换定时器中断,大神们能帮我看一下程序吗?为啥串口中断没法打断定时器中断。...
  2. spyder的安装配置及无法使用第三方包的问题
  3. GL.iNet MT1300 双频千兆无线路由器
  4. 马尔科夫随机场简单理解
  5. 8.2计算各商品销售金额
  6. 异步(感应)电机概述
  7. RFC3261 SIP: Session Initiation Protocol 中文版 翻译中
  8. 联想拯救者isk15安装固态硬盘记录
  9. ubuntu 12.04英文版设置成中文版
  10. 马库斯批判Hinton、吴恩达、LeCun等煽风点火!炒作将带来AI寒冬