Skip to content
This repository was archived by the owner on Mar 15, 2026. It is now read-only.

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperKLF

SuperKLF是出于学习目的实现steam游戏《超级键盘侠》基本框架的项目

目录

基本信息

编译运行

  • 编译Linux版本

根目录下执行

mkdir build && cd build
cmake ..
cmake --build . -j{n} #其中n为CPU线程数

或执行/build.sh

./build.sh #默认16线程构建Release版本

编译结果在bin文件夹中

  • 编译Windows版本

需要安装MinGW-w64交叉编译工具链 在Debian系的系统终端中执行

sudo apt update
sudo apt install mingw-64

根目录下执行

mkdir build-win && cd build-win
cmake -DCMAKE_TOOLCHAIN_FILE=../mingw-toolchain.cmake ..
cmake --build . -j{n} #其中n为CPU线程数

或执行/build-win.sh

./build-win.sh #默认16线程构建Release版本

编译结果在bin-win文件夹中

游戏运行流程

  1. 启动游戏:获取资源,初始化各种组件,设置日志等级,注册即时特效遗物特效,读取各配置文件创建游戏对象
  2. 进入游戏主循环:由流程控制类调用实时关卡的update()方法,更新游戏状态
  3. 退出游戏主循环:数据管理类存档,清理资源

组件概要

下面是游戏主要组件的概述,忽略了部分细节

控制管理组件

  • 流程控制类StageController

  • 关卡管理类LevelManager

    • 管理静态和动态关卡,并负责切换关卡的单例类
    • 在初始化时创建主菜单/胜利/失败/商店静态类,同时读取关卡配置文件,生成战役和事件关卡
  • 资源管理类ResourceManager

    • 管理纹理和字体资源的单例类
    • 内部管理一个<string,Texture2D>哈希表,并提供加载/卸载/缩放/获取纹理的方法
    • 管理游戏字体

    由于raylib对中文支持有限,游戏需在raylib库的基础上实现新的文字绘制函数

  • 数据管理类DataManager

    • 管理游戏数据的单例类
    • 维护玩家和敌人实体、游戏数值数据(如奖励
    • 承担存档和读档职能
  • 效果管理类EffectManager

    • 管理即时效果InstantEffect和遗物效果RelicEffect的单例类
    • 为两种效果分别维护一个效果池,通过抽象工厂模式,由效果配置文件动态创建游戏初始化时注册的效果
  • 事件(信号)系统类EventSystem

    • 用于实现遗物机制的单例类,采用观察者模式
    • 提供绑定信号和遗物、广播信号的接口

游戏对象

  • 关卡类Level

    • Level为抽象基类,其派生类实现具体的关卡逻辑
    • 每个关卡类都有对应的关卡界面类LevelUI,并根据从接口获得的信号执行对应逻辑
  • 关卡界面类LevelUI

    • BaseUI为抽象基类,其派生类实现具体界面绘制逻辑
    • 每个关卡界面类都向对应关卡类暴露查询组件状态的接口方法
  • 实体类Entity

    • 表示实体对象的基类,派生类有玩家类Player和敌人类Enemy,规定了基本数据成员行为
  • 奖励类Reward

  • 子弹类Bullet

    • 子弹基类,规定了子弹的基本数据成员和行为
    • 子弹功能通过触发一个或多个子弹特效实现
  • 子弹特效类BulletEffect

    • 子弹效果的基类,派生类分别实现不同种类的子弹特效
  • 即时效果类InstantEffect

    • 即时效果基类,应用时立即对玩家产生效果
  • 遗物类RelicEffect

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages