手把手带你用python做小游戏
此篇建议小白反复食用
每当你女神或者女友看着电视里的程序员痴迷发呆时,你是不是也捶胸顿足,暗自发狠,噢!为什么我怎么不能像电视里的程序员一样自信、一样帅气、一样…不好意思有些偏题了。
而这一篇文章正是为像你一样的人群准备的,什么学习python的门槛高,书买回来我看不懂?不存在的,今天本小白就带你们零基础做python小游戏。
回归正题,今天我们要用python做的小游戏是,五脏俱全的贪吃蛇,废话不多说我们正式开始。
具体思路:
- 在python中安装pygame模块
- 设置游戏窗口
- 写出小蛇以及它的食物
- 设置方向键控制小蛇的移动
- 在小蛇撞死的时候结束游戏
- 运行我们所写的程序
一.安装pygame
找到python官网
链接已经放在这里啦!点击此处直接跳转
然后选择你所需要的相应版本,比如我的python是3.6.0版本,我的电脑系统是64位,这里我就选择
下载之后,找到后缀为whl的文件放到python的pip文件下方
然后win+R输入cmd打开命令提示符,输入pip install pygame
因为此前我已经下载过所以这里显示的是已存在
那我们如何来验证自己是否已经下载好了呢?
这里同样打开cdm,输入python进入交互模式,再输入import pygame
好的,至此我们万里长征第一步已经完美的跨出了第一步,如果在这里遇到问题的小伙伴可以在文章末尾的注意里查看注意事项,看看是否有同样的疑问。
现在我们就可以打开python在里面使用我们的模块pygame了
import pygame #导入pygame模块
import random #导入random模块
pygame.init() #初始化pygame保证模块的完整性
这里我们导入了两个模块,一个是pygame一个是random,pygame我们之前已经下载好了而random是系统自带的模块我们就不需要下载直接导入使用就好了。
二.设置游戏窗口
写出游戏窗口的基本信息
length = 800 #设置窗口的长度
width = 800 #设置窗口的宽度
scor = 0 #初始成绩,之后会提到
window = pygame.display.set_mode(length,width) #设置游戏窗口的长度与宽度
pygame.display.set_caption("出来吧!贪吃蛇“)#设置窗口标题,括号里的内容可以自定义
点击右上角的绿色三角符号运行以下就可以看到一个黑色的框框啦!
三.画出小蛇以及它的食物
咱先来画蛇
purple=(128,0,128) #这里是定义蛇的颜色,喜欢什么颜色就用什么颜色,我这里选用的紫色括号内的是对应颜色的RGB,想用其它颜色可以去百度某某色的rgb是多少放到括号里面就是了
black=(0,0,0) #这里是定义背景的颜色为黑色
head=[200,200] #定义蛇的头部坐标
snack=[[200,200],[190,200],[180,200],[170,200]] #定义蛇身的初始坐标为四节
然后为小蛇画食物
food_rd=[random.randrange(1,60)*10,random.randrange(1,60)*10] #这里随机给出了食物的坐标
最后
while Ture:
window.fill(black) #给窗口绘制出黑色的背景
pygame.drew.rect(window,purple,pygame.Rect(food_rd[0],food_rd[1],10,10)) #画出食物
for i in snake:
pygame.draw.rect(window,purple,pygame.Rect(i[0],i[0],10,10)) #绘制紫色小蛇
pygame.display.update() #刷新界面
效果就是这样
不要让战斗停下来!!!
四.让我们来control它
直接上代码
def movesnake(direction):
global food_rd
global score #声明全局变量
if direction ==1: #如果移动是朝上方
head[1] = head[1] - 10 #在Y轴坐标上减去10
snake.insert(0,list(head)) #插入新的头部坐标
if head !=food_rd: #如果没有迟到食物
snake.pop(-1) #删去最后一个元素
else: #吃到食物以后,食物的坐标就为蛇头的坐标,直接增长一节。这里运用的if else语句
score = score + 1 #这里是设置吃到一口食物就会加一分,后面会讲到
food_rd = [random.randrange(1,50)*10,random.randrange(1,50)*10] #食物被吃掉后随即产生新的食物
elif direction ==2: #移动方向朝下,这里用的是if elif语句来实现的
head[1] = head[1] + 10
snake.insert(0,list