一.介绍

本篇文章将使用pygame开发一个拼图小游戏以使读者了解pygame游戏开发的大概流程.

游戏代码几乎没有任何封装,为的就是给读者呈现一个清晰的执行流程.

游戏截图:

二.游戏代码

1.需要的图片,请与代码文件放在同一文件文件夹下,并命名为shili.jpg:

2.游戏代码:

import randomimport pygame# 初始化
pygame.init()
# 窗口标题
pygame.display.set_caption('拼图游戏')
# 窗口大小
s = pygame.display.set_mode((1200, 600))#绘图地图
imgMap = [[0, 1, 2],[3, 4, 5],[6, 7, 8]
]#判断胜利的地图
winMap = [[0, 1, 2],[3, 4, 5],[6, 7, 8]
]#游戏的单击事件
def click(x, y, map):if y - 1 >= 0 and map[y - 1][x] == 8:map[y][x], map[y - 1][x] = map[y - 1][x], map[y][x]elif y + 1 <= 2 and map[y + 1][x] == 8:map[y][x], map[y + 1][x] = map[y + 1][x], map[y][x]elif x - 1 >= 0 and map[y][x - 1] == 8:map[y][x], map[y][x - 1] = map[y][x - 1], map[y][x]elif x + 1 <= 2 and map[y][x + 1] == 8:map[y][x], map[y][x + 1] = map[y][x + 1], map[y][x]#打乱地图
def randMap(map):for i in range(1000):x = random.randint(0, 2)y = random.randint(0, 2)click(x, y, map)# 加载图片
img = pygame.image.load('./shili.jpg')
#随机地图
randMap(imgMap)
#游戏主循环
while True:#延时32毫秒,相当于FPS=30pygame.time.delay(32)for event in pygame.event.get():# 窗口的关闭事件if event.type == pygame.QUIT:exit()elif event.type == pygame.MOUSEBUTTONDOWN:      #鼠标单击事件if pygame.mouse.get_pressed() == (1, 0, 0):     #鼠标左键按下mx, my = pygame.mouse.get_pos()     #获得当前鼠标坐标if mx<498 and my <498:      #判断鼠标是否在操作范围内x=int(mx/166)       #计算鼠标点到了哪个图块y=int(my/166)click(x,y,imgMap)   #调用单击事件if imgMap==winMap:  #如果当前地图情况和胜利情况相同,就print胜利print("胜利了!")#背景色填充成绿色s.fill((0,255,0))#绘图for y in range(3):for x in range(3):i = imgMap[y][x]if i == 8:      #8号图块不用绘制continuedx = (i % 3) * 166      #计算绘图偏移量dy = (int(i / 3)) * 166s.blit(img, (x * 166, y * 166), (dx, dy, 166, 166))# 画参考图片s.blit(img, (600, 0))# 刷新界面pygame.display.flip()

三.注意

该游戏如果直接在地图的二维数组上进行随机打乱,是会很大几率出现无解的情况.

所以,上面的代码是在拼好的基础上采用随机移动(按照游戏规则来移动)的思路进行地图打乱的.

python游戏开发实战:三阶拼图相关推荐

  1. python游戏开发实战:网络游戏Demo(客户端)

    一.运行效果 二.介绍 源码github:https://github.com/zxf20180725/pygame-online-demo.git 这只是一个简单的联网程序Demo,代码有很多不严谨 ...

  2. python游戏开发实战:梦幻西游背包系统

    一.效果 整理背包演示 物品叠加演示 拖动窗口演示 二.源码 代码挺多的,我就不贴在博客里了,大家直接在百度网盘下载吧: 链接:https://pan.baidu.com/s/13CUF4cxtQBK ...

  3. python游戏开发实战:酷跑游戏

    一.游戏运行效果 二.简介 游戏操作: 跳跃:空格或继续游戏 前进:D 后退:A 这个项目是我为了快速熟悉pygame写来练手的.项目结构与代码组织方面还存在一些问题.我会在后续的文章中做出改进. 下 ...

  4. python游戏开发实战:游戏按钮

    一.效果 二.简介 游戏中,按钮是必不可少的控件.但是pygame并没有给我们提供相关的功能.那么只能自己写一个啦. 演示工程的下载地址:https://pan.baidu.com/s/1dCgCs8 ...

  5. python游戏开发实战:视频转彩色字符动画

    一.效果 原图: 转换后: 效果可通过代码开头几行的参数调节 二.代码 开头几行代码,自己看着调整,把效果调到最佳就ok. 依赖库: pip install opencv-python pip ins ...

  6. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  7. python游戏开发的五个案例分享

    本文给大家分享了作者整理的五个python游戏开发的案例,通过具体设计思路,代码等方面详细了解python游戏开发的过程,非常的详细,希望大家能够喜欢 一.序列应用--猜单词游戏 1. 游戏介绍 猜单 ...

  8. 师傅带徒弟学:Python游戏开发引擎cocos2d-python-关东升-专题视频课程

    师傅带徒弟学:Python游戏开发引擎cocos2d-python-299人已学习 课程介绍         Python语言之所以受欢迎,很大的原因是有很多可以使用的库,Python社区也有很多游戏 ...

  9. python应用开发实战第一章 兽人之袭0.0.1

    第一章:采用面向对象编程实现兽人之袭文本游戏 1.采用面向对象编程实现 # python应用开发实战 #兽人之袭v1.0.面向对象编程 ''' 需求分析: 1.获得所有木屋击败木屋里的所有敌人 2.可 ...

最新文章

  1. 王建春计算机应用基础,计算机应用基础(本)教学指南.pdf
  2. springcloud(四):熔断器Hystrix
  3. Unable to open /dev/sda的原因之一
  4. 深度学习技术在机器阅读理解应用的研究进展
  5. brew 安装php56,homebrew安装php5.6后的信息
  6. SQL Server中查询存储的用例
  7. Android GreenDAO 3.0 不修改版本号的情况下增加、删除表、添加字段
  8. java 降低jdk版本_jdk1.7降级到1.6 | 学步园
  9. 数据库系统:NoSQL与SQL的区别
  10. 网工浓缩笔记以及考点(第七章 网络安全)
  11. 最简洁影视后期制作(AE)教程之导出导入
  12. swift语言前景_swift语言从天而降,作为ios程序猿,我们如果面对?
  13. 安装tensorflow的GPU版本(详细图文教程)--CUDA11.6的安装
  14. rust实现一个mysql驱动_使用Rust编写用户态驱动程序
  15. 案例三:淘宝用户行为分析
  16. Android初学习之四:知晓当前是哪一个活动和随时随地退出程序
  17. Certificate for <xx.xxx.xxx.xxx> doesn‘t match any of the subject alternative names: [xx.xxxx.xxxx.
  18. js事件冒泡、阻止事件冒泡以及阻止默认行为
  19. 此iphone尚未备份显示未连接服务器,iPhone出现尚未备份的提示是怎么回事 提示取消方法...
  20. dp P1968 美元汇率 题解

热门文章

  1. 用java实现情人节
  2. win10 访问文件服务器,如何在Win10上使用SMBv1访问网络设备上的文件
  3. MCE | 磁珠 Protocol,如何快速捕获您心仪的蛋白~
  4. 华为 中兴 贝尔 OLT ONU状态查询工具(一)
  5. 10分钟拿下 HashMap
  6. python基础(09)——列表,元组,字典,集合
  7. word文档必须在安全模式下打开
  8. 《动手学ROS2》4.3ROS2话题通信(C++)
  9. ice storm暴风雪加盟_在暴风雪里玩命逃生!《Storm VR》上架Steam
  10. 最新抖音快手小红书西瓜全平台解析接口api开发文档