Python小游戏(贪吃蛇)

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

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

源码分享:


  
  1. import cfg
  2. import sys
  3. import pygame
  4. from modules import *
  5. '''主函数'''
  6. def main(cfg):
  7. # 游戏初始化
  8. pygame.init()
  9. screen = pygame.display.set_mode(cfg.SCREENSIZE)
  10. pygame.display.set_caption('Greedy Snake —— 九歌')
  11. clock = pygame.time.Clock()
  12. # 播放背景音乐
  13. pygame.mixer.music.load(cfg.BGMPATH)
  14. pygame.mixer.music.play(-1)
  15. # 游戏主循环
  16. snake = Snake(cfg)
  17. apple = Apple(cfg, snake.coords)
  18. score = 0
  19. while True:
  20. screen.fill(cfg.BLACK)
  21. # --按键检测
  22. for event in pygame.event.get():
  23. if event.type == pygame.QUIT:
  24. pygame.quit()
  25. sys.exit()
  26. elif event.type == pygame.KEYDOWN:
  27. if event.key in [pygame.K_UP, pygame.K_DOWN, pygame.K_LEFT, pygame.K_RIGHT]:
  28. snake.setDirection({pygame.K_UP: 'up', pygame.K_DOWN: 'down', pygame.K_LEFT: 'left', pygame.K_RIGHT: 'right'}[event.key])
  29. # --更新贪吃蛇和食物
  30. if snake.update(apple):
  31. apple = Apple(cfg, snake.coords)
  32. score += 1
  33. # --判断游戏是否结束
  34. if snake.isgameover: break
  35. # --显示游戏里必要的元素
  36. drawGameGrid(cfg, screen)
  37. snake.draw(screen)
  38. apple.draw(screen)
  39. showScore(cfg, score, screen)
  40. # --屏幕更新
  41. pygame.display.update()
  42. clock.tick(cfg.FPS)
  43. return endInterface(screen, cfg)
  44. '''run'''
  45. if __name__ == '__main__':
  46. while True:
  47. if not main(cfg):
  48. break

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

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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