推箱子小游戏

本次小游戏学习视频:https://www.bilibili.com/video/BV1gz411B71H
相关素材:点击这里

import turtle
import levelms = turtle.Screen()
ms.setup(900, 650, 200, 100)
# ms.bgcolor('#CC99CC')
ms.bgpic('bc1.gif')
ms.title('推箱子小游戏')ms.register_shape('wall.gif')  # 墙
ms.register_shape('o.gif')  # 贵鬼
ms.register_shape('p.gif')  # 人
ms.register_shape('box.gif')  # 箱子
ms.register_shape('win_box.gif')  # 胜利箱子
ms.register_shape('bc1.gif')
ms.register_shape('bc2.gif')
ms.register_shape('bc3.gif')
ms.register_shape('bc4.gif')
ms.register_shape('bc5.gif')ms.tracer(0)levels = level.level_list()class Pen(turtle.Turtle):def __init__(self, pic):super().__init__()self.shape(pic)self.penup()def move(self, x, y, px, py):gox, goy = x + px, y + pyif (gox, goy) in go_space:self.goto(gox, goy)if (gox + px, goy + py) in go_space and (gox, goy) in box_space:for i in box_list:if i.pos() == (gox, goy):go_space.append(i.pos())box_space.remove(i.pos())i.goto(gox + px, goy + py)self.goto(gox, goy)go_space.remove(i.pos())box_space.append(i.pos())if i.pos() in correct_box_space:i.shape('win_box.gif')else:i.shape('box.gif')if set(box_space) == set(correct_box_space):text.show_win()def go_up(self):self.move(self.xcor(), self.ycor(), 0, 50)def go_down(self):self.move(self.xcor(), self.ycor(), 0, -50)def go_left(self):self.move(self.xcor(), self.ycor(), -50, 0)def go_right(self):self.move(self.xcor(), self.ycor(), 50, 0)# wall = turtle.Turtle()  # 墙
# wall.shape('wall.gif')
# wall.penup()
# correct_box = turtle.Turtle()  # 鬼
# correct_box.shape('o.gif')
# correct_box.penup()
# player = turtle.Turtle()  # 人
# player.shape('p.gif')
# player.penup()
# box = turtle.Turtle()  # 箱子
# box.shape('box.gif')
# box.penup()class Game():def paint(self):i_date = len(levels[num - 1])j_date = len(levels[num - 1][0])for i in range(i_date):for j in range(j_date):x = -j_date * 25 + 25 + j * 50 + sister_xy = i_date * 25 - 25 - i * 50if levels[num - 1][i][j] == ' ':  # 人player.goto(x, y)go_space.append((x, y))if levels[num - 1][i][j] == 'X':  # 墙wall.goto(x, y)wall.stamp()if levels[num - 1][i][j] == 'O':  # 鬼correct_box.goto(x, y)correct_box.stamp()go_space.append((x, y))correct_box_space.append((x, y))if levels[num - 1][i][j] == 'P':  # 人player.goto(x, y)go_space.append((x, y))if levels[num - 1][i][j] == 'B':  # 箱子box = Pen('box.gif')box.goto(x, y)box_space.append((x, y))box_list.append(box)class ShowMessage(turtle.Turtle):def __init__(self):# super(ShowMessage, self).__init__()super().__init__()self.penup()self.pencolor('blue')self.ht()def message(self):self.goto(0+sister_x, 290)self.write(f'第{num}关', align='center', font=('正楷', 20, 'bold'))self.goto(0+sister_x, 270)self.write(f'重新开始请按回车键', align='center', font=('正楷', 15, 'bold'))self.goto(0+sister_x, 250)self.write(f'选择关请按Q', align='center', font=('正楷', 15, 'bold'))def show_win(self):global numif num == len(levels):num = 1self.goto(0, 0)self.write('你已经全部过关', align='center', font=('仿宋', 20, 'bold'))self.goto(0, -50)self.write('返回第一关按空格键', align='center', font=('仿宋', 15, 'bold'))else:num += 1self.goto(0, 0)self.write('恭喜过关', align='center', font=('仿宋', 20, 'bold'))self.goto(0, -25)self.write('进入下一关按空格键', align='center', font=('仿宋', 15, 'bold'))def init():text.clear()wall.clear()correct_box.clear()for i in box_list:i.ht()del(i)box_list.clear()box_space.clear()go_space.clear()correct_box_space.clear()play_game.paint()text.message()ms.bgpic(f'bc{num}.gif')def choose():global numa = ms.numinput('选择关卡', '请输入你的选择(输入1-5):')if a is None and a not in [1, 5]:return a == numnum = int(a)init()ms.listen()if __name__ == '__main__':num = 1sister_x = 225correct_box_space = []  # 正确箱子的地址box_list = []  # 箱子海龟的列表box_space = []  # 箱子所在位置坐标的列表go_space = []  # 人要去的位置坐标wall = Pen('wall.gif')correct_box = Pen('o.gif')player = Pen('p.gif')play_game = Game()play_game.paint()text = ShowMessage()text.message()ms.listen()  # 监听ms.onkey(player.go_up, "Up")  # 绑定键盘按钮ms.onkey(player.go_down, "Down")ms.onkey(player.go_left, "Left")ms.onkey(player.go_right, "Right")ms.onkey(init, "Return")ms.onkey(init, "space")ms.onkey(choose, "Q")while True:ms.update()ms.mainloop()

python推箱子小游戏相关推荐

  1. python推箱子小游戏_小伙利用Python自制一个推箱子小游戏!

    原标题:小伙利用Python自制一个推箱子小游戏! 导语 月初更波python制作小游戏系列吧用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧 小伙利用Python自制一个推箱子 ...

  2. python推箱子小游戏源代码_Python制作推箱子小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏简介 ...

  3. 手把手教你使用Python实现推箱子小游戏(附完整源码)

    文章目录 项目介绍 项目规则 项目接口文档 项目实现过程 前置方法编写 move核心方法编写 项目收尾 项目完善 项目整体源码 项目缺陷分析 项目收获与反思 项目介绍 我们这个项目是一个基于Pytho ...

  4. Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏

    导语:哈喽铁汁们~今日游戏之旅开始! 想领取完整源码跟python学习资料可私信我或点击这行字体 这期就是带大家使用当前主流且易用的Python语言做一个简单的推箱子小游戏 现在小编的快乐源泉就是玩自 ...

  5. python写推箱子_python写的推箱子小游戏

    原标题:python写的推箱子小游戏 导语 Python 功能强大,可以写爬虫.服务器.数据分析.AI--当然,也可以写游戏. 用python写了个推箱子小游戏,在这里分享给大家,让我们愉快地开始吧~ ...

  6. python写的推箱子小游戏

    作者:白露未晞me 来源:Charles的皮卡丘 导语 Python 功能强大,可以写爬虫.服务器.数据分析.AI--当然,也可以写游戏. 用python写了个推箱子小游戏,在这里分享给大家,让我们愉 ...

  7. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

  8. 简单的c语言推箱子程序,完整版本的推箱子小游戏,最简单的纯C语言打造

    /*推箱子小游戏 1.定义绘制样式 用二维数组的方式 2.绘制图像 3.找出当前位置 4.逻辑判断,制造动作 根据数学xy轴的规律,这里使用ij 上移,行轴上升,行数减少 下移,行数下降,函数增加 左 ...

  9. c#推箱子小游戏代码_推箱子小游戏V1.0制作

    小游戏实践 推箱子简易版 大家好,我是努力学习争取成为优秀的Game Producer的路人猿,今天来一起做一个推箱子的简易版本V1.0!下面跟我一起做吧~ 我们用到的软件如下: 编辑类 Visual ...

最新文章

  1. spring boot系列03--spring security (基于数据库)登录和权限控制(下)
  2. 大咖分享会 | 百度首次揭秘如何构建用户画像与移动统计
  3. Nginx面试中最常见的18道题及答案
  4. 玩转oracle 11g(7):导出导入数据库
  5. HTTP请求的GET与POST方式的区别
  6. html,htm,jhtml
  7. g的python实现_Python Gevent
  8. Delphi 的绘图功能[2] - 入门
  9. 设置无效,为什么下载分数经常变化?
  10. 汉化破解:购买WinRAR许可爆破
  11. 如何封装一个自己的win7系统并安装到电脑做成双系统
  12. AHCI、RAID、IDE三种硬盘模式优缺点对比
  13. 基于PCQQ协议的Python QQ机器人库
  14. 第三方网站接入秀米,实现秀米编辑的文章同步到自己的网站平台
  15. charles+安卓模拟器采集豆果美食app
  16. android让字体左右对齐,Android 模仿微信读书文字左右对齐效果
  17. moses 编译_Ubuntu 8.10下moses测试平台搭建全记录
  18. 华为电脑 鸿蒙,微软宣布Win10装机量突破10亿,唯独华为电脑不能安装,鸿蒙极速反击...
  19. 一姐们知道她老公外面有小三后,不但没哭没闹,反而对她老公特别好
  20. 不用U盘安装win10系统

热门文章

  1. 深天马A:正在筹划非公开发行股票事项
  2. 写电子邮件是一件严肃的事情
  3. 设置计算机关机时间快捷键,怎么让电脑定时关机设置大全
  4. Spring源码解析之 Bean与BeanDefinition详解
  5. Python零基础入门(五)
  6. LTspice基础教程-013.修改背景色与波形颜色
  7. 利用Python制作第一人称射击小游戏 含源代码
  8. hexo 博客小功能添加-评论、相册、字数统计...
  9. leetcode五月每日一题 leetcode974
  10. 对java后端的一些学习建议