全是套路这才是贪吃蛇大作战最有趣的版本,你确定不看?
导语
“最有趣的版本”?O__O "…
唤起了记忆,唤起了忧伤。
还记得诺基亚称王的时代,拿着S40、S60系统的手机,在被窝里玩贪吃蛇的时光。当周围的人还在
玩平面黑白地贪吃蛇小游戏的时候,诺基亚的贪吃蛇让我兴奋不已。
人都是视觉动物,美的东西总会让人目不转睛。游戏更是如此,如果画面不喜欢,再好玩的玩法,
再有意思的剧情,都索然无味。
今天这就有意思多了,视觉效果特满满滴:那让我们开始探索叭
正文
一、《今日上线—最Skr变色贪吃蛇》
最新的贪吃蛇最大的特点就是,这个蛇的颜色一直在变化。这是怎么做到的呢?那还是要从彩色图开始
像是从像素点说起,计算机存储或者显示彩色图片时,实际上存储的是一个三维矩阵。每个像素点对
应三个颜色通道。在我们定义的画图函数中。用random随机生成三个颜色通道,这样在每次画图的
时候,颜色就是随机生成的,可以随时变化,这样就可以随时变化颜色。
二、准备中
1)运行环境
本文用到的环境如下:Python3、Pycharm、Pygame、numpy以及部分自带的模块。
模块安装:
pip install +模块名 或者豆瓣镜像源 pip install -i https://pypi.douban.com/simple/ +模块名
三、代码演示
import pygameimport sysfrom pygame.locals import*import numpy as npfrom random import randintpygame.init()rect_width=20size=width,height=800,500COLOR=(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=0snake=[[5,5],[5,6],[5,7]]food0=1def get_color(): color1=(randint(0,255),randint(0,255),randint(0,255)) return color1def 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()
四、效果展示
视频效果展示——
总结
合理游戏健康生活上课的时候别玩哦!
哈哈哈!这款变色的彩版贪吃蛇已经上线啦~想玩儿的滴滴我哈!
相关资讯