| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- import pygame
 
 - import random
 
 - import copy
 
  
- snake_list = [[70,30]]
 
 - food_point = [random.randint(10,490),random.randint(10,490)]
 
  
- #一开始向下移动
 
 - move_up = False
 
 - move_down = True
 
 - move_left = False
 
 - move_right = False
 
  
- '''初始化游戏'''
 
 - pygame.init()
 
 - clock = pygame.time.Clock()#刷新帧率
 
 - screen = pygame.display.set_mode((500,500))#设置屏幕大小颜色
 
 - pygame.display.set_caption('贪吃蛇小游戏')#绘制标题
 
  
- '''进入游戏,玩游戏'''
 
 - running = True#设置游戏开关
 
 - while running:
 
 -     clock.tick(20)#20帧
 
 -     screen.fill([255,255,255])#绘制白色屏幕
 
  
-     # 键盘控制方向
 
 -     for event in pygame.event.get():
 
 -         #先判断摁键是否摁下
 
 -         #在判断摁键类型
 
 -         if event.type == pygame.KEYDOWN:
 
 -             if event.key == pygame.K_UP:
 
 -                 move_up = True
 
 -                 move_down = False
 
 -                 move_left = False
 
 -                 move_right = False
 
 -             if event.key == pygame.K_DOWN:
 
 -                 move_up = False
 
 -                 move_down = True
 
 -                 move_left = False
 
 -                 move_right = False
 
 -             if event.key == pygame.K_LEFT:
 
 -                 move_up = False
 
 -                 move_down = False
 
 -                 move_left = True
 
 -                 move_right = False
 
 -             if event.key == pygame.K_RIGHT:
 
 -                 move_up = False
 
 -                 move_down = False
 
 -                 move_left = False
 
 -                 move_right = True
 
  
 
-     food_rect = pygame.draw.circle(screen,[255,0,0],food_point,10,0)#绘制食物
 
 -     #绘制蛇的body
 
 -     snake_rect = []
 
 -     for pos in snake_list:
 
 -         snake_rect_point = pygame.draw.circle(screen,[0,0,255],pos,10,0)
 
 -         snake_rect.append(snake_rect_point)
 
  
-         #检测碰撞
 
 -         if food_rect.collidepoint(pos):
 
 -             snake_list.append(food_point)
 
 -             #重置食物
 
 -             food_point = [random.randint(10,490),random.randint(10,490)]
 
 -             food_rect = pygame.draw.circle(screen, [255, 0, 0], food_point, 10, 0)
 
 -             break
 
  
-     '''让蛇动起来'''
 
 -     pos = len(snake_list) - 1
 
  
-     #身子处理
 
 -     while pos > 0:
 
 -         snake_list[pos] = copy.deepcopy(snake_list[pos-1])#把后面一个点往前面移动
 
 -         pos -= 1
 
 -     #蛇头处理
 
 -     if move_up:
 
 -         snake_list[pos][1] -= 10
 
 -         if snake_list[pos][1] < 0:
 
 -             snake_list[pos][1] = 500
 
  
-     if move_down:
 
 -         snake_list[pos][1] += 10
 
 -         if snake_list[pos][1] > 500:
 
 -             snake_list[pos][1] = 0
 
  
-     if move_left:
 
 -         snake_list[pos][0] -= 10
 
 -         if snake_list[pos][0] <0:
 
 -             snake_list[pos][0] = 500
 
  
-     if move_right:
 
 -         snake_list[pos][0] += 10
 
 -         if snake_list[pos][0] > 500:
 
 -             snake_list[pos][0] = 0
 
  
-     #撞自己
 
 -     head_rect = snake_rect[0]
 
 -     count = len(snake_rect)
 
 -     while count > 1 :
 
 -         if head_rect.colliderect(snake_rect[count-1]):
 
 -             running = False
 
 -         count -= 1
 
  
-     pygame.display.update()#显示绘制内容
 
 - print('游戏结束')
 
 - pygame.quit()
 
  复制代码 
第62行. 
你吧蛇的位置设置成了食物的位置. 
而食物的位置上本来就有蛇.这样他就认为蛇自己撞自己了 
 
 
 |   
 
 
 
 |