当前位置:   article > 正文

python编写小游戏详细教程,用python制作一个小游戏_python游戏

python游戏

这篇文章主要介绍了如何用python做一个简单的小游戏,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

Source code download: 本文相关源码

Python为什么能这么火热?Python相对于其他语言来说比较简单,即使是零基础的普通人也能很快的掌握,在其他方面比如,处于灰色界的爬虫,要VIP的视频,小说,歌,没有爬虫解决不了的;数据挖掘及分析,淘宝就是例子,想开个淘宝店,需要获取相关商品信息,这时数据分析就能解决等等;游戏开发、自动化测试、人工智能,黑客入门语言等等等。

接着介绍下去今天就停不了啦,只要对于Python有过了解的,用过的,应该都知道他的厉害之处, 进入主题,游戏,今天直接上干货,童年你玩过的21款游戏源码分享70个python练手项目

1、五子棋

展示: 在这里插入图片描述

游戏源码:

  1. '''游戏开始界面'''
  2. class gameStartUI(QWidget):
  3. def __init__(self, parent=None, **kwargs):
  4. super(gameStartUI, self).__init__(parent)
  5. self.setFixedSize(760, 650)
  6. self.setWindowTitle('五子棋 —— 九歌')
  7. self.setWindowIcon(QIcon(cfg.ICON_FILEPATH))
  8. # 背景图片
  9. palette = QPalette()
  10. palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start'))))
  11. self.setPalette(palette)
  12. # 按钮
  13. # --人机对战
  14. self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self)
  15. self.ai_button.move(250, 200)
  16. self.ai_button.show()
  17. self.ai_button.click_signal.connect(self.playWithAI)
  18. # --联机对战
  19. self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self)
  20. self.online_button.move(250, 350)
  21. self.online_button.show()
  22. self.online_button.click_signal.connect(self.playOnline)
  23. '''人机对战'''
  24. def playWithAI(self):
  25. self.close()
  26. self.gaming_ui = playWithAIUI(cfg)
  27. self.gaming_ui.exit_signal.connect(lambda: sys.exit())
  28. self.gaming_ui.back_signal.connect(self.show)
  29. self.gaming_ui.show()
  30. '''联机对战'''
  31. def playOnline(self):
  32. self.close()
  33. self.gaming_ui = playOnlineUI(cfg, self)
  34. self.gaming_ui.show()
  35. '''run'''
  36. if __name__ == '__main__':
  37. app = QApplication(sys.argv)
  38. handle = gameStartUI()
  39. font = QFont()
  40. font.setPointSize(12)
  41. handle.setFont(font)
  42. handle.show()
  43. sys.exit(app.exec_())

2、保卫森林大作战

展示: 在这里插入图片描述

游戏源码:

  1. import cfg
  2. import pygame
  3. from modules import *
  4. '''主函数'''
  5. def main():
  6. pygame.init()
  7. pygame.mixer.init()
  8. pygame.mixer.music.load(cfg.AUDIOPATHS['bgm'])
  9. pygame.mixer.music.play(-1, 0.0)
  10. pygame.mixer.music.set_volume(0.25)
  11. screen = pygame.display.set_mode(cfg.SCREENSIZE)
  12. pygame.display.set_caption("塔防游戏 —— 九歌")
  13. **调用游戏开始界面**
  14. start_interface = StartInterface(cfg)
  15. is_play = start_interface.update(screen)
  16. if not is_play:
  17. return
  18. **调用游戏界面**
  19. while True:
  20. choice_interface = ChoiceInterface(cfg)
  21. map_choice, difficulty_choice = choice_interface.update(screen)
  22. game_interface = GamingInterface(cfg)
  23. game_interface.start(screen, map_path=cfg.MAPPATHS[str(map_choice)], difficulty_path=cfg.DIFFICULTYPATHS[str(difficulty_choice)])
  24. end_interface = EndInterface(cfg)
  25. end_interface.update(screen)
  26. '''run'''
  27. if __name__ == '__main__':
  28. main()

3、超级大迷宫

展示:在这里插入图片描述

游戏源码:

  1. import cfg
  2. import sys
  3. import pygame
  4. from modules import *
  5. '''主函数'''
  6. def main(cfg):
  7. **初始化**
  8. pygame.init()
  9. pygame.mixer.init()
  10. pygame.font.init()
  11. pygame.mixer.music.load(cfg.BGMPATH)
  12. pygame.mixer.music.play(-1, 0.0)
  13. screen = pygame.display.set_mode(cfg.SCREENSIZE)
  14. pygame.display.set_caption('Maze —— 九歌')
  15. font = pygame.font.SysFont('Consolas', 15)
  16. 开始界面
  17. Interface(screen, cfg, 'game_start')
  18. 记录关卡数
  19. num_levels = 0
  20. 记录最少用了多少步通关
  21. best_scores = 'None'
  22. 关卡循环切换
  23. while True:
  24. num_levels += 1
  25. clock = pygame.time.Clock()
  26. screen = pygame.display.set_mode(cfg.SCREENSIZE)
  27. --随机生成关卡地图
  28. maze_now = RandomMaze(cfg.MAZESIZE, cfg.BLOCKSIZE, cfg.BORDERSIZE)
  29. --生成hero
  30. hero_now = Hero(cfg.HEROPICPATH, [0, 0], cfg.BLOCKSIZE, cfg.BORDERSIZE)
  31. --统计步数
  32. num_steps = 0
  33. --关卡内主循环
  34. while True:
  35. dt = clock.tick(cfg.FPS)
  36. screen.fill((255, 255, 255))
  37. is_move = False
  38. # ----↑↓←→控制hero
  39. for event in pygame.event.get():
  40. if event.type == pygame.QUIT:
  41. pygame.quit()
  42. sys.exit(-1)
  43. elif event.type == pygame.KEYDOWN:
  44. if event.key == pygame.K_UP:
  45. is_move = hero_now.move('up', maze_now)
  46. elif event.key == pygame.K_DOWN:
  47. is_move = hero_now.move('down', maze_now)
  48. elif event.key == pygame.K_LEFT:
  49. is_move = hero_now.move('left', maze_now)
  50. elif event.key == pygame.K_RIGHT:
  51. is_move = hero_now.move('right', maze_now)
  52. num_steps += int(is_move)
  53. hero_now.draw(screen)
  54. maze_now.draw(screen)
  55. ----显示一些信息
  56. showText(screen, font, 'LEVELDONE: %d' % num_levels, (255, 0, 0), (10, 10))
  57. showText(screen, font, 'BESTSCORE: %s' % best_scores, (255, 0, 0), (210, 10))
  58. showText(screen, font, 'USEDSTEPS: %s' % num_steps, (255, 0, 0), (410, 10))
  59. showText(screen, font, 'S: your starting point D: your destination', (255, 0, 0), (10, 600))
  60. ----判断游戏是否胜利
  61. if (hero_now.coordinate[0] == cfg.MAZESIZE[1] - 1) and (hero_now.coordinate[1] == cfg.MAZESIZE[0] - 1):
  62. break
  63. pygame.display.update()
  64. --更新最优成绩
  65. if best_scores == 'None':
  66. best_scores = num_steps
  67. else:
  68. if best_scores > num_steps:
  69. best_scores = num_steps
  70. --关卡切换
  71. Interface(screen, cfg, mode='game_switch')
  72. '''run'''
  73. if __name__ == '__main__':
  74. main(cfg)

在这里插入图片描述

4、滑雪游戏在这里插入图片描述

5、接金币游戏

在这里插入图片描述

6、塔防小游戏

在这里插入图片描述

7、坦克大战

在这里插入图片描述

8、连连看

在这里插入图片描述

9、扫雷

在这里插入图片描述

10、超级玛丽

在这里插入图片描述

11、炸弹人

在这里插入图片描述 太多了,偷懒就不一一展示,这些游戏陪伴了我们每个不同成长阶段的快乐,需要资源的可以关注我点击领取资源!

在这里插入图片描述
Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/1002454
推荐阅读
相关标签