今天看到几个关于pygame模块的博客和视频,感觉非常有趣,这里照猫画虎写了一个贪吃蛇小游戏,目前还有待完善,但是基本游戏功能已经实现,下面是代码:
#导入模块 进口pygame 进口随机 #初始化 pygame.init () w=720 #窗口宽度 h=600 #窗口高度 行=30 #行数 坳=36 #列数 #将所有的坐标看作是一个个点,定义点类 类: 行=0 坳=0 def __init__(自我、行坳): 自我。行=行 自我。坳=坳 def副本(自我): 返回点(行=自我。行,坳=self.col) #显示窗口和标题 大?(w h) 窗口=pygame.display.set_mode(大小) pygame.display.set_caption(“贪吃蛇”) #定义蛇头坐标 头=点(行=行/2,坳=坳/2) #蛇身体 snake_list=[ 点(行=P?坳=head.col + 1), 点(行=P?坳=head.col + 2), 点(行=P?坳=head.col + 3) ] #产生食物 def pro_food (): #食物不能与蛇重叠 而真正的: pos=点(行=random.randint(第2行),坳=random.randint(1,第二列)) is_coll=False 如果头。行==pos.row和头部。==pos.col上校: is_coll=True 蛇在snake_list: 如果蛇。==pos.col上校和蛇。行==pos.row: is_coll=True 打破 如果不是is_coll: 返回pos 食物=pro_food () #定义颜色 bg_color=(255、255、255) head_color=(0、128、128) food_color=(255、255、0) snake_color=(200200200) #给定初始方向 可怕的='左' def矩形(点、颜色): cell_width=w/坳 cell_height=h/行=point.col * cell_width离开了=point.row * cell_height pygame.draw.rect ( 窗口中,颜色, (左,上,cell_width cell_height) ) 通过 #游戏循环 辞职=True 时钟=pygame.time.Clock () 而退出: 在pygame.event.get事件(): #退出方式 如果事件。类型==pygame.QUIT: 辞职=False elif事件。类型==pygame.KEYDOWN: #键盘控制 如果事件。键==273或事件。键==119: 如果可怕==白蟆被蚩膳碌?=罢返摹? 可怕的='了' elif事件。键==274或事件。键==115: 如果可怕==白蟆被蚩膳碌?=罢返摹? 可怕的='下来' elif事件。键==276或事件。键==97: 如果可怕==吧仙被蚩膳碌?=跋吕础? 可怕的='左' elif事件。键==275或事件。键==100: 如果可怕==吧仙被蚩膳碌?=跋吕础? 可怕的='正确' #吃 吃=(头。行==食物。行和头部。==food.col)上校 如果吃: 食物=pro_food () #处理身体 # 1。原来的头换到身体最前端 snake_list.insert (0, head.copy ()) # 2。删除身体最后一个 如果不吃: snake_list.pop () #移动 如果可怕==白蟆? 头。col -=1 elif可怕==罢返摹? 头。坳+=1 elif可怕==傲恕? 头。行-=1 elif可怕==跋吕础? 头。行+=1 #检测: 死=False # 1。撞的墙 如果头。坳& lt;0或head.row<0或头。坳祝辞=坳或头。行祝辞=行: 死=True # 2。撞自己 蛇在snake_list: 如果头。坳==蛇。上校和头部。行==snake.row: 死=True 打破 如果死: 打印(“死”) 辞职=False #绘制背景 pygame.draw。矩形(窗口、bg_color (0, 0 w h)) #蛇头 矩形(头,head_color) #食物 矩形(食物、food_color) #蛇身 蛇在snake_list: 矩形(蛇,snake_color) pygame.display.flip () #游戏帧数 clock.tick (20)
效果:
到此这篇关于使用Python第三方库pygame写个贪吃蛇小游戏的文章就介绍到这了,更多相关Python贪吃蛇游戏内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!