python小游戏(一)贪吃蛇(2)

这一期给大家继续讲解贪吃蛇小游戏的实现方法。

需要源代码的朋友,请在后台回复: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

你可能感兴趣的:(python小游戏(一)贪吃蛇(2))