资源简介

推箱子游戏,自带音效,内置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


评论

共有 条评论