Python小游戏(贪吃蛇)

举报
红目香薰 发表于 2022/01/22 22:31:21 2022/01/22
【摘要】 玩法:童年经典,普通魔术也没啥意思,小时候玩的也是加速的。 源码分享: import cfgimport sysimport pygamefrom modules import * '''主函数'''def main(cfg): # 游戏初始化 pygame.init() screen = pygame.di...

玩法:童年经典,普通魔术也没啥意思,小时候玩的也是加速的。

源码分享:


      import cfg
      import sys
      import pygame
      from modules import *
      '''主函数'''
      def main(cfg):
         # 游戏初始化
          pygame.init()
          screen = pygame.display.set_mode(cfg.SCREENSIZE)
          pygame.display.set_caption('Greedy Snake —— 九歌')
          clock = pygame.time.Clock()
         # 播放背景音乐
          pygame.mixer.music.load(cfg.BGMPATH)
          pygame.mixer.music.play(-1)
         # 游戏主循环
          snake = Snake(cfg)
          apple = Apple(cfg, snake.coords)
          score = 0
         while True:
              screen.fill(cfg.BLACK)
             # --按键检测
             for event in pygame.event.get():
                 if event.type == pygame.QUIT:
                      pygame.quit()
                      sys.exit()
                 elif event.type == pygame.KEYDOWN:
                     if event.key in [pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT]:
                          snake.setDirection({pygame.K_UP: 'up', pygame.K_DOWN: 'down', pygame.K_LEFT: 'left', pygame.K_RIGHT: 'right'}[event.key])
             # --更新贪吃蛇和食物
             if snake.update(apple):
                  apple = Apple(cfg, snake.coords)
                  score += 1
             # --判断游戏是否结束
             if snake.isgameover: break
             # --显示游戏里必要的元素
              drawGameGrid(cfg, screen)
              snake.draw(screen)
              apple.draw(screen)
              showScore(cfg, score, screen)
             # --屏幕更新
              pygame.display.update()
              clock.tick(cfg.FPS)
         return endInterface(screen, cfg)
      '''run'''
      if __name__ == '__main__':
         while True:
             if not main(cfg):
                 break
  
 

祝大家玩得开心,欢迎点赞、关注、评论,欢迎一健三联。

文章来源: laoshifu.blog.csdn.net,作者:红目香薰,版权归原作者所有,如需转载,请联系作者。

原文链接:laoshifu.blog.csdn.net/article/details/120425300

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。