这一期给大家继续讲解贪吃蛇小游戏的实现方法。
需要源代码的朋友,请在后台回复:game1。我们就会将源代码通过百度网盘链接的方式发送给大家。
如果大家需要具体的视频教程,可以在Bilibili上搜索“90行代码实现python贪吃蛇”,里面是我们贪吃蛇的视频讲解。
上一节我们讲到了如何画一个方块。这是贪吃蛇的基础
下面讲一讲代码的基本要素,首先我们需要导入一些特定的模块,并做一些初始化的设定:
import pygame
import sys
from pygame.locals import*
import numpy as np
from random import randint
pygame.init()
rect_width=10
size=width,height=800,500
COLOR=(100,67,3)#蛇的颜色
x_rect=int(width/rect_width)
y_rect=int(height/rect_width)#长宽格子有多个
导入pygame并且设置一个界面。
rect_width代表的是画方块的长度。size代表的是这个游戏界面的大小。COLOR也就是蛇的颜色,在这儿是由三个颜色通道组成。
重点在于x_rect和y_rect。这儿的意思是将整个界面按照方块的宽度分割成多少份,也就是能容纳多少个方格。x_rect和y_rect分别代表长和宽能容纳多少方格。
下面我们初始化这条小蛇
snake=[[5,5],[5,6],[5,7]]
我们用列表的形式表示这条蛇。其中列表的第一个元素代表的是蛇头,最后一个元素代表的是蛇尾。中间的元素代表的是蛇的身体。
在画蛇的时候,我们就是要根据列表里面的元素画出方块,蛇就是这些方块组成的。
移动蛇的时候,我们需要改变里面的列表的值。speed就是蛇移动的方向,这个方向是由键盘的按键控制的。代码如下:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
if event.type==KEYDOWN:
if event.key==K_LEFT:
speed=[-1,0]
if event.key==K_RIGHT:
speed=[1,0]
if event.key==K_UP:
speed=[0,-1]
if event.key==K_DOWN:
speed=[0,1]
speed是用一个列表存储的。一次动一个方格(当然是按照不同的方向)。
重点在于蛇吃食物,当蛇没有吃到食物时,很简单,我们只需要改变列表里面的元素就可以了。但是,当蛇吃到食物以后,根据贪吃蛇游戏设定,我们需要增加蛇的身体的长度。
在这里,我们就需要在列表里面插入一个元素,这个元素必须插入在第一个元素以前,这时候,这个元素成为了新的蛇头。
好了,我讲累了,大家也听累了。
给大家演示一下效果吧!然后大家回去看看源代码,就明白了。值得提一下的是,我这条蛇永远不会死,大家想一想是什么原因,可以加入我们的python群里讨论一下。
扫描二维码关注公众号
图片与资源来源网站:
1 https://pixabay.com/zh/
2 https://www.pexels.com
3 https://picjumbo.com
4 https://fancycrave.com
5 https://www.foodiesfeed.com
6 https://www.pakutaso.com
7 https://isorepublic.com