资源简介
推箱子游戏,自带音效,内置16关卡。
游戏功能:
人物移动:可使用键盘的方向盘或“wsad”
移动撤回:按“b”键可以使人物的回到上一步位置
代码片段和文件信息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2020/7/15 20:53
# @Author : ChenMingYong
# @Blog : https://blog.csdn.net/weixin_44604586
# @File : Main.py
# @Software: PyCharm
import tkinter as tk
from tkinter import messagebox
import numpy as np
import copy
from Maps import Maps
import pygame as py
class Window(object):
def __init__(self master):
self.master = master
self.maps = Maps()
self.px = 0
self.py = 0
self.list2 = [blank wall box flag person person_flag]
self.f = None
self.can = None
self.gq = 1
self.old_list = []
self.get_person_position()
self.createWidget()
def roll_back(self):
if len(self.old_list) == 0:
return
self.maps.maps_list[self.gq - 1] = self.old_list.pop()
self.get_person_position()
self.createWidget()
def get_person_position(self):
for i in self.maps.maps_list[self.gq - 1]:
for j in i:
if j == 4:
self.px = self.maps.maps_list[self.gq - 1].index(i)
self.py = i.index(j)
return
def createWidget(self):
if self.can:
self.can.destroy()
self.can = tk.Canvas(self.master bg=‘LightYellow‘ width=1000 height=600)
self.lbl = tk.Label(self.can text=‘关卡:‘ + str(self.gq) + ‘ 返回上一步:b‘ bg=‘LightYellow‘ fg=‘red‘
font=(‘‘ 17))
self.lbl.place(x=5 y=5)
x = np.array(self.maps.maps_list[self.gq - 1])
rs = x.shape[0]
cs = x.shape[1]
for r in range(0 rs):
for c in range(0 cs):
if self.maps.maps_list[self.gq - 1][r][c] == 9:
continue
elif self.maps.maps_list[self.gq - 1][r][c] == 34:
self.can.create_image((c + 1) * 50 (r + 1) * 50 anchor=‘nw‘ image=self.list2[5])
elif self.maps.maps_list[self.gq - 1][r][c] == 23:
self.can.create_image((c + 1) * 50 (r + 1) * 50 anchor=‘nw‘ image=self.list2[2])
else:
img = self.list2[self.maps.maps_list[self.gq - 1][r][c]]
self.can.create_image((c + 1) * 50 (r + 1) * 50 anchor=‘nw‘ image=img)
self.can.focus_set()
self.can.bind(““ self.move)
self.can.pack()
def is_win(self):
flag = True
for i in self.maps.maps_list[self.gq - 1]:
for j in i:
if 34 in i or 3 in i:
flag = False
break
if not flag:
break
return flag
def move(self event):
keysym = event.keysym
print(‘你按了‘ keysym ‘键‘)
y = copy.deepcopy(self.maps.maps_list[self.gq - 1])
self.old_list.append(y)
if keysym == ‘Right‘ or keysym
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4435 2020-07-15 23:21 推箱子\image\人物.png
文件 4579 2020-07-16 00:55 推箱子\image\人物与旗帜.png
文件 2162 2020-07-15 23:21 推箱子\image\可放位置.png
文件 1770 2020-07-15 23:21 推箱子\image\墙.png
文件 4579 2020-07-16 00:55 推箱子\image\推箱子素材.png
文件 1509 2020-07-15 23:21 推箱子\image\空.png
文件 3596 2020-07-15 23:21 推箱子\image\箱子.png
文件 12218 2020-07-20 10:08 推箱子\Main.py
文件 599 2020-07-16 10:33 推箱子\Maps.py
文件 2624 2020-07-18 21:21 推箱子\maps.txt
文件 8355451 2020-07-16 19:28 推箱子\music\1.mp3
文件 25388 2020-07-16 19:13 推箱子\music\推箱子.wav
文件 619 2020-07-16 10:34 推箱子\__pycache__\Maps.cpython-38.pyc
目录 0 2020-07-16 00:56 推箱子\image
目录 0 2020-07-16 19:28 推箱子\music
目录 0 2020-07-16 10:34 推箱子\__pycache__
目录 0 2020-07-20 10:15 推箱子
----------- --------- ---------- ----- ----
8419529 17
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论