• 大小: 11.35MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-05
  • 语言: Python
  • 标签: 小游戏  

资源简介

Python做一个推箱子小游戏

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
#Python学习群548377875
“““
Created on Thu Mar  1 11:32:44 2018

@author: ThoseBygones
“““

‘‘‘
符号说明:
“.“ 空白处,可通过
“#“ 墙不可通过
“@“ 人可移动
“$“ 箱子可推动
“*“ 终点
“&“ 到终点的箱子
‘‘‘

from collections import deque
import pygame sys os
from pygame.locals import *

# 按钮类
class Button(object):
    # 构造函数
    def __init__(self buttonUpImage buttonDownImage pos):
        # 按钮未按下的图片样式
        self.buttonUp = pygame.image.load(buttonUpImage).convert_alpha()
        # 按钮按下的图片样式
        self.buttonDown = pygame.image.load(buttonDownImage).convert_alpha()
        # 按钮在窗口中的位置
        self.pos = pos
    
    # 检查鼠标是否在按钮图片范围内
    def inButtonRange(self):
        # 获取鼠标的位置
        mouseX mouseY = pygame.mouse.get_pos()
        x y = self.pos
        w h = self.buttonUp.get_size()
        inX = x - w/2 < mouseX < x + w/2
        inY = y - h/2 < mouseY < y + h/2
        return inX and inY

    # 在窗口中显示按钮
    def show(self screen):
        w h = self.buttonUp.get_size()
        x y = self.pos
        # 根据鼠标位置变换样式
        if self.inButtonRange():
            screen.blit(self.buttonDown (x-w/2y-h/2))
        else:
            screen.blit(self.buttonUp (x-w/2 y-h/2))

# 推箱子游戏类
class Sokoban:
    # 构造函数
    def __init__(self):
        # 设置关卡地图(三个)
        self.level = [list(‘...#######‘+\
                           ‘####.....#‘+\
                           ‘#..***.$.#‘+\
                           ‘#..*..#.##‘+\
                           ‘#.#####.#.‘+\
                           ‘#.#...#.#.‘+\
                           ‘#...$.#.#.‘+\
                           ‘###$#.#.#.‘+\
                           ‘#...$...#.‘+\
                           ‘#.@.##..#.‘+\
                           ‘#########.‘) 
                      list(‘.#######....‘+\
                           ‘##.....##...‘+\
                           ‘#..#.$..#...‘+\
                           ‘#.$.$$#.#...‘+\
                           ‘##.#.$..###.‘+\
                           ‘.#...##.*.##‘+\
                           ‘.#####..*..#‘+\
                           ‘.....#.#*..#‘+\
                           ‘.....#..*..#‘+\
                           ‘.....#..*@.#‘+\
                           ‘.....#######‘)
                      list(‘....#####..........‘+\
                           ‘....#...#..........‘+\
                           ‘....#$..#..........‘+\
                           ‘..###..$##.........‘+\
                           ‘..#..$.$.#.........‘+\
                           ‘###.#.##.#...######‘+\
                           ‘#...#.##.#####..**#‘+\
                           ‘#.$..$..........**#‘+\
                           ‘#####.###.#@##..**#‘+\
                           ‘....#.....#########‘+\
                           ‘....#######........‘)]
        # 设置每个关卡地图大小(宽度、高度)
        self.w = [10 12 19]
        self.h = [11 11 11]
        # 设置每个关卡开始时,人在地图中的坐标位置
        self.man = [92 117 163]
        # 设置每个关卡中的箱子总数
        self.boxCnt = [4 5 6]
        # 设置每个关卡中

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-18 17:49  Python做一个推箱子小游戏\
     文件          66  2018-06-18 17:49  Python做一个推箱子小游戏\.gitattributes
     文件        2677  2018-06-18 17:49  Python做一个推箱子小游戏\README.md
     目录           0  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\
     文件        2976  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\borgar.png
     文件        4166  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\BoxIcon.png
     文件      140044  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter Pass Sound.wav
     文件        2278  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter1Down.png
     文件        1905  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter1Up.png
     文件        2273  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter2Down.png
     文件        2008  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter2Up.png
     文件        2312  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter3Down.png
     文件        2070  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Chapter3Up.png
     文件       59090  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\ChapterPass.png
     文件        4147  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\ChooseChapter.png
     文件        2879  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\GameStartDown.png
     文件        2585  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\GameStartUp.png
     文件       36158  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\GameTips.png
     文件        3087  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\GameTipsDown.png
     文件        2551  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\GameTipsUp.png
     文件     4249641  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Hebe - A Little Happiness.mp3
     文件     3005789  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Hu Xia - Those Bygones.mp3
     文件       58442  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Interface.png
     文件     4615072  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Mayday - Starry Starry Night.mp3
     文件        2007  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\NextChapterDown.png
     文件        1771  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\NextChapterUp.png
     文件        2847  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Return2ChooseDown.png
     文件        2511  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\Return2ChooseUp.png
     文件        3110  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\ReturnInterfaceDown.png
     文件        2515  2018-06-18 17:49  Python做一个推箱子小游戏\Sokoban V2.3\ReturnInterfaceUp.png
     文件       21502  2018-10-27 16:21  Python做一个推箱子小游戏\Sokoban V2.3\Sokoban.py
............此处省略0个文件信息

评论

共有 条评论