Skip to content

aCm1T/CSC3002project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

CSC3002 项目说明

本仓库包含两个相对独立的部分:Unreal Engine 5 的 2D 平台游戏「Crusty Pirate」源码与配置,以及一个基于 Qt 的登录启动器(SQLite 账号校验后尝试启动游戏可执行文件)。关卡、美术与蓝图资源未纳入本仓库,仅包含 C++ 与工程配置片段。

目录结构

路径 说明
source_code_of_main/ Unreal 工程:CrustyPirateOriginal.uprojectSource/CrustyPirate/ 游戏模块、Config/ 默认配置
source_code_of_gamelauncher/ Qt 项目(DB.pro)、登录界面与 SQLite 逻辑

一、Crusty Pirate(Unreal Engine)

环境与依赖

  • 引擎版本CrustyPirateOriginal.uprojectEngineAssociation5.4
  • 插件:启用 PaperZD(2D 动画)、编辑器侧 ModelingToolsEditorMode
  • 模块依赖CrustyPirate.Build.cs):CoreCoreUObjectEngineInputCoreEnhancedInputPaper2D

游戏逻辑概要(C++)

  • APlayerCharacterAPaperZDCharacter,弹簧臂相机、攻击碰撞盒、Enhanced Input(移动、跳跃、攻击、退出)。与 UCrustyPirateGameInstance 同步血量、钻石、二段跳解锁;死亡后延时调用 RestartGame()
  • AEnemy:检测球发现玩家后沿 X 轴追击,进入攻击距离后播放攻击动画;可对玩家造成伤害;头顶 UTextRenderComponent 显示 HP。
  • ACollectableItem:可拾取类型包括钻石生命药水(+25 HP)、二段跳升级
  • ALevelExit:玩家进入后播放门动画与音效,延时后通过 GameInstance::ChangeLevel 打开 Level_N 关卡(命名约定 Level_1Level_2…)。
  • UPlayerHUD:UMG 绑定控件,显示 HP、钻石数、关卡索引。
  • UCrustyPirateGameInstance:跨关卡持久化 PlayerHPCollectedDiamondCountIsDoubleJumpUnlockedCurrentLevelIndexRestartGame() 重置并回到 Level_1

运行与打开工程

  1. 安装 Unreal Engine 5.4,并确保已安装/启用 PaperZD 插件(与 .uproject 中一致)。
  2. 将本仓库中的 source_code_of_main 作为完整 UE 工程目录使用,或把其中内容合并到你本地的完整工程(本仓库不含 Content/ 下的关卡与蓝图,仅有配置中的引用,例如默认地图 Level_1、GameMode / GameInstance 蓝图类路径)。
  3. 双击 CrustyPirateOriginal.uproject 生成解决方案后在 Visual Studio 中编译,或用编辑器直接编译 C++。

默认配置摘录(Config/DefaultEngine.ini):启动地图为 /Game/Levels/Level_1,默认 GameMode 与 GameInstance 为蓝图类(路径见该文件)。

二、游戏启动器(Qt + SQLite)

功能

  • 启动时连接 SQLite 数据库文件:<可执行文件目录>/database.db(见 login.cppQCoreApplication::applicationDirPath())。
  • 首次无数据时自动建表 login,并插入默认用户 user1 / user123
  • 登录成功后:以分离进程方式启动同目录下的 CrustyPirate.exe(路径写死在 login.cpp,可按实际发布文件名修改),弹出 Dialog 对话框,并隐藏登录窗口。

构建

  • 使用 Qt Creator 打开 source_code_of_gamelauncher/DB.pro
  • 工程使用模块:coreguisqlwidgets,以及 networkDB.pro 中声明)。
  • 注意DB.proSOURCES 中列出了 register.cpp,但当前仓库中仅有空的 register.h,没有 register.cpp。若编译报错,需在工程中补全 register.cpp 或从 .pro 中移除对应条目。

依赖与平台说明

  • dialog.cpp 中一处按钮槽函数调用了 sshpass 与固定 SSH 命令,属于示例或开发环境遗留;在未安装 sshpass 或非 Linux 环境下可能无法按预期工作,使用前请按需求修改或删除。
  • 子目录内另有 source_code_of_gamelauncher/README.md,其中默认账号描述与当前 login.cpp 中的 user1 / user123 不一致,以源码为准

三、仓库内其他文件

  • source_code_of_gamelauncher/DB.pro.user*:Qt Creator 用户本地配置,通常不应提交或可在不同机器上忽略。
  • login.cpp 中含 #include <bits/stdc++.h>:主要为 GCC/MinGW 习惯用法;若使用 MSVC,可能需要改为标准头文件或调整工具链。

四、课程/协作建议

  • UE 完整工程(含 Content/.sln 生成结果等)与 启动器发布目录CrustyPirate.exedatabase.db 同目录)的约定写进组内文档,避免登录成功却找不到游戏主程序。
  • 生产环境应对 SQL 使用参数化查询,避免字符串拼接带来的安全风险。

About

The project repository for CSC3002.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors