导语
“最有趣版本”?O__O "…
唤起了记忆,唤起了忧伤。
还记得诺基亚称王的时代,拿着S40、S60系统的手机,在被窝里玩贪吃蛇的时光。当周围的人还
在玩平面黑白的贪吃蛇小游戏的时候,诺基亚的贪吃蛇让我兴奋不已。
人都是视觉动物,美的东西总会让人目不转睛。游戏更是如此,如果画面不喜欢,再好玩的玩法,
再有意思的剧情,都索然无味。
今天这就有意思多了,视觉效果特满满滴:那让我们开始探索叭????
正文
一、《今日上线—最Skr变色贪吃蛇》
最新的贪吃蛇最大的特点就是,这个蛇的颜色一直在变化。这是怎么做到的呢?那还是要从彩色图
像的像素点说起,计算机存储或者显示彩色图片时,实际上存储的是一个三维矩阵。每个像素点对
应三个颜色通道。在我们定义的画图函数中。用random随机生成三个颜色通道,这样在每次画图
的时候,颜色就是随机生成的,可以随时变化,这样就可以随时变化颜色。
二、准备中
1)运行环境
本文用到的环境如下:Python3、Pycharm、Pygame、numpy以及部分自带的模块。
模块安装:
pip install +模块名 或者豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名
三、代码演示
import pygame
import sys
from pygame.locals import*
import numpy as np
from random import randint
pygame.init()
rect_width=20
size=width,height=800,500
COLOR=(100,30,39)#蛇的颜色
x_rect=int(width/rect_width)
y_rect=int(height/rect_width)#长宽格子有多个
font1 = pygame.font.SysFont('宋体', 30, True)
speed=[0,1]
bg=(255,255,180)
screen=pygame.display.set_mode(size)
pygame.display.set_caption("今日上线—最Skr变色贪吃蛇")
snake_new=[3,4]
font=pygame.font.Font(None,20)
food_live=1#食物的生命是否存在
Food=[12,18]#食物所在的坐标
ground=np.zeros([x_rect,y_rect])#整条蛇占据的矩阵,0是没有。
score=0
snake=[[5,5],[5,6],[5,7]]
food0=1
def get_color():
color1=(randint(0,255),randint(0,255),randint(0,255))
return color1
def get_rect(row,column):#计算应该在哪里画方格,以右上角为点。
x1=rect_width*row
y1=rect_width*column
return (x1,y1,rect_width,rect_width)
def move_snake(speed,food1):
global snake_new
k1=snake[0][0]+speed[0]
k2=snake[0][1]+speed[1]
snake_new=[k1,k2]
snake.insert(0,snake_new)
if food1==1:#如果吃到了食物就不用管了
pass
else:
del snake[-1]#没吃到食物就删除最后一项
def meet_food(snake_pos,food_pos):
global food0
global food_live
global score
if snake_pos[0]==food_pos:
food_live=0
food0=1
score=score+1
else:
food0=0
def draw_snake(snakebody):
for i in snakebody:
pygame.draw.rect(screen,get_color(),get_rect(i[0],i[1]),0)
def draw_food(x,y):
pygame.draw.rect(screen,get_color(),get_rect(x,y),0)
while True:
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]
if food_live:
pass
else:
Food=[randint(0,x_rect-1),randint(0,y_rect-1)]#随机生成食物的位置。
food_live=1
meet_food(snake,Food)
move_snake(speed,food0)
#判断贪吃蛇是否死亡,如果死亡,就退出游戏
if snake[0][0]>x_rect or snake[0][0]<0 or snake[0][1]>y_rect or snake[0][1]<0:
pygame.quit()
sys.exit()
else:
pass
screen.fill(bg)
screen.blit(font1.render(u'score:%d ' % score, True, [255, 0, 0]), [20, 20])
#pygame.draw.rect(screen,(23,56,78),get_rect(10,10),0)
draw_snake(snake)
draw_food(Food[0],Food[1])
pygame.display.flip()
四、效果展示
截图展示效果——
视频展示效果展示——
【全是套路】这才是贪吃蛇大作战最有趣的版本,你确定不看?
总结
合理游戏健康生活上课的时候别玩哦!
哈哈哈!这款变色的彩版贪吃蛇已经上线啦~想玩儿的滴滴我哈!
完整的免费源码领取处:找我吖!源码见文末哈自取~