Giter Site home page Giter Site logo

xiehuiwuwuwu / py-icehappy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from accright/python3-pygame-icehappy

0.0 0.0 0.0 4.98 MB

利用Python3和Pygame开发的一款桌面端消消乐游戏,本项目使用分文件的构建方式,自主设计和编写了消除、交换、判断是否为可消除图等算法,并自行担任UI设计,实现了开心消消乐的选择关卡、金币、步数、消除、随机分配消除块等基本功能。

Python 100.00%

py-icehappy's Introduction

项目名称

项目命名为:pyIceHappy ,一款利用Python3和Pygame开发的桌面端消消乐游戏,本项目使用分文件的构建方式,自主设计和编写了消除、交换、判断是否为可消除图等算法,并自行担任UI设计,实现了开心消消乐的选择关卡、金币、步数、消除、随机分配消除块等基本功能。

项目介绍

开心消消乐 是一款大家都十分熟知的游戏了。主要就是通过加载不同的小动物,然后玩家交换小动物的位置,和其他消除游戏机制类似,如果有三个或以上的小动物处于一个直线或T字形的位置,将会发生消除,并加载新的小动物。消除一定小动物的数量或达到一定的其他目标(例如冰块)则算作通关。

本项目利用Python3和Pygame开发的一款桌面端消消乐游戏,本项目使用分文件的构建方式,自主设计和编写了消除、交换、判断是否为可消除图等算法,并自行担任UI设计,通过搜集网络资源和自行设计,模拟并实现了开心消消乐的选择关卡、金币、步数、消除、随机分配消除块等基本功能,并做到高度还原手机端的效果。

文件分布

文件稍微有些杂乱,开发完之后一直没有整理。文件分布比较简单,main.py作为项目的入口,负责包的导入及鼠标键盘事件的监听,同时负责全局bgm的播放和关卡选择界面的绘制。manage.py作为所有逻辑的实现,其中类和函数的简单实现关系如下:

函数名/类名 简要介绍
SoundPlay 声音播放类,其中引用了Sound文件夹下的各种bgm
Tree 关卡选择的树类,其中规定了关卡的果子出现的位置
ManagerTree 管理树类 ,用于树的绘制、文本加载、鼠标监听等
Element 元素类,元素类是小动物,冰块,选择光标等的合集,用于创建各类对象同时声明了move方法
Board 剩余步数和下一关等的提示板,在关卡进行中或完成时弹出
Manager 该类是逻辑处理的主要类,包括坐标转换,元素重置,关卡绘制等多个函数,鼠标监听和交换后的判断逻辑也在此类中实现,具体实现方式可以阅读代码并参考注释

运行

安装Python3环境之后,安装Pyganme插件,直接运行main.py即可。

项目优点

  1. 大量的原版配乐和图片素材 ;
  2. 引入Pygame模块;
  3. 分文件构建,使用数组展示小动物,替换鼠标 ;
  4. 设计基础的交换消除和判断是否为有尽图算法;
  5. 完善和高度还原的声音播放和图片加载;
  6. 完善的关卡选择和积分及体力值系统 ;

可能的问题

  1. bug:有些有尽图可能无法做出判断 ;
  2. 小动物的排列是完全随机的,关卡难度无法衡量;
  3. 在部分高分辨率电脑上性能可能有点低 ;

注意

最近发现好多人拿这个项目去积分下载或做教程,本着开放的原则,不反对代码共享,但是请注明来源,遵循 MIT协议。

项目截图:

关卡选择

游戏中

py-icehappy's People

Contributors

accright avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.