From 93ba207b74c9944ebb5007413f4fc9f22df59944 Mon Sep 17 00:00:00 2001 From: FanstyNight Date: Wed, 3 Jun 2026 18:54:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=96=87=E6=A1=A3=E5=92=8C?= =?UTF-8?q?=E5=90=84=E7=B1=BB=E8=BF=90=E8=A1=8C=E8=AF=B4=E6=98=8E=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 5 +++ README.md | 63 +++++++++++++++++++++++++++++++++ setup_vs2022.bat | 51 ++++++++++++++++++++++++++ submission/evaluation/孙伟俊.md | 9 +++++ submission/evaluation/宋禹辰.md | 1 + submission/evaluation/渠立飒.md | 3 ++ submission/evaluation/王胤凯.md | 5 +++ submission/report/report.md | 2 +- 8 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 setup_vs2022.bat create mode 100644 submission/evaluation/孙伟俊.md create mode 100644 submission/evaluation/宋禹辰.md create mode 100644 submission/evaluation/渠立飒.md create mode 100644 submission/evaluation/王胤凯.md diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d398df..8b53026 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,11 @@ add_executable(mana_pet_world ) target_link_libraries(mana_pet_world PRIVATE mana_core PkgConfig::RAYLIB) target_compile_options(mana_pet_world PRIVATE -Wall -Wextra -Wpedantic) +set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT mana_pet_world) +set_target_properties(mana_pet_world PROPERTIES + VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + VS_DEBUGGER_COMMAND_ARGUMENTS "${CMAKE_CURRENT_SOURCE_DIR}" +) enable_testing() diff --git a/README.md b/README.md index 8859991..5dc9065 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,69 @@ sudo apt install cmake pkg-config g++ libraylib-dev libpugixml-dev 仓库中也包含 `vcpkg.json`,声明了 `raylib` 和 `pugixml` 依赖;如果你使用 vcpkg,请确保 CMake 能通过 pkg-config 找到对应库。 +### Windows 构建和运行 + +下面给出两种 Windows 运行方式:**PowerShell + VS Code** 和 **Visual Studio 2022**。两种方式都使用 vcpkg 安装依赖。当前 CMake 配置通过 `pkg-config` 查找 `raylib` 和 `pugixml`,所以除了游戏依赖本身,还需要安装 `pkgconf`。 + +先准备通用依赖。下面假设 vcpkg 安装在 `C:\src\vcpkg`: + +```powershell +git clone https://github.com/microsoft/vcpkg C:\src\vcpkg +C:\src\vcpkg\bootstrap-vcpkg.bat +C:\src\vcpkg\vcpkg.exe install raylib pugixml pkgconf --triplet x64-windows +``` + +#### 方式一:PowerShell + VS Code + +1. 安装 Visual Studio Code。 +2. 安装 VS Code 扩展:**C/C++** 和 **CMake Tools**。 +3. 安装 Visual Studio 2022 或 Build Tools for Visual Studio 2022,并勾选 **Desktop development with C++** 工作负载。 +4. 用 VS Code 打开项目根目录,在 VS Code 终端中选择 PowerShell,然后运行: + +```powershell +$env:VCPKG_ROOT = "C:\src\vcpkg" +$env:PKG_CONFIG_PATH = "$env:VCPKG_ROOT\installed\x64-windows\lib\pkgconfig;$env:VCPKG_ROOT\installed\x64-windows\share\pkgconfig" + +cmake -S . -B build -G "Visual Studio 17 2022" -A x64 ` + -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" ` + -DPKG_CONFIG_EXECUTABLE="$env:VCPKG_ROOT\installed\x64-windows\tools\pkgconf\pkgconf.exe" + +cmake --build build --config Release --target mana_pet_world +``` + +5. 从项目根目录启动游戏,并把 `.` 作为资源根目录传给程序: + +```powershell +.\build\Release\mana_pet_world.exe . +``` + +#### 方式二:Visual Studio 2022 + +1. 安装 Visual Studio 2022,并勾选 **Desktop development with C++** 和 CMake 支持。 +2. 双击项目根目录下的 `setup_vs2022.bat`。脚本会安装 vcpkg 依赖、生成 `build\vs2022\ManaPetWorld.sln`、编译 `mana_pet_world`,然后打开 Visual Studio。 +3. 在 Visual Studio 中点击运行按钮即可启动游戏。CMake 已经把 `mana_pet_world` 设为启动项目,并把调试工作目录和启动参数设置为项目根目录。 + +如果你想手动执行,也可以打开 **Developer PowerShell for VS 2022**,进入项目根目录,运行: + +```powershell +$env:VCPKG_ROOT = "C:\src\vcpkg" +$env:PKG_CONFIG_PATH = "$env:VCPKG_ROOT\installed\x64-windows\lib\pkgconfig;$env:VCPKG_ROOT\installed\x64-windows\share\pkgconfig" + +cmake -S . -B build\vs2022 -G "Visual Studio 17 2022" -A x64 ` + -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake" ` + -DPKG_CONFIG_EXECUTABLE="$env:VCPKG_ROOT\installed\x64-windows\tools\pkgconf\pkgconf.exe" + +cmake --build build\vs2022 --config Release --target mana_pet_world +``` + +然后打开 `build\vs2022\ManaPetWorld.sln`,点击运行按钮;或者直接从命令行运行: + +```powershell +.\build\vs2022\Release\mana_pet_world.exe . +``` + +如果 CMake 报告找不到 `raylib`、`pugixml` 或 `pkg-config`,请先确认上面的 `VCPKG_ROOT`、`PKG_CONFIG_PATH` 和 `PKG_CONFIG_EXECUTABLE` 路径与本机 vcpkg 安装位置一致。 + ## 快速启动 在项目根目录运行: diff --git a/setup_vs2022.bat b/setup_vs2022.bat new file mode 100644 index 0000000..0248a4e --- /dev/null +++ b/setup_vs2022.bat @@ -0,0 +1,51 @@ +@echo off +setlocal + +set "ROOT=%~dp0" +if "%ROOT:~-1%"=="\" set "ROOT=%ROOT:~0,-1%" + +if "%VCPKG_ROOT%"=="" set "VCPKG_ROOT=C:\src\vcpkg" +set "VCPKG_EXE=%VCPKG_ROOT%\vcpkg.exe" +set "PKGCONF_EXE=%VCPKG_ROOT%\installed\x64-windows\tools\pkgconf\pkgconf.exe" +set "PKG_CONFIG_PATH=%VCPKG_ROOT%\installed\x64-windows\lib\pkgconfig;%VCPKG_ROOT%\installed\x64-windows\share\pkgconfig" + +if not exist "%VCPKG_EXE%" ( + echo vcpkg.exe was not found at "%VCPKG_EXE%". + echo Set VCPKG_ROOT to your vcpkg directory, or install vcpkg at C:\src\vcpkg. + pause + exit /b 1 +) + +echo Installing dependencies with vcpkg... +"%VCPKG_EXE%" install raylib pugixml pkgconf --triplet x64-windows +if errorlevel 1 ( + echo vcpkg dependency installation failed. + pause + exit /b 1 +) + +echo Configuring Visual Studio solution... +cmake -S "%ROOT%" -B "%ROOT%\build\vs2022" -G "Visual Studio 17 2022" -A x64 ^ + -DCMAKE_TOOLCHAIN_FILE="%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake" ^ + -DPKG_CONFIG_EXECUTABLE="%PKGCONF_EXE%" +if errorlevel 1 ( + echo CMake configuration failed. + pause + exit /b 1 +) + +echo Building mana_pet_world... +cmake --build "%ROOT%\build\vs2022" --config Release --target mana_pet_world +if errorlevel 1 ( + echo Build failed. + pause + exit /b 1 +) + +echo Opening Visual Studio solution... +start "" "%ROOT%\build\vs2022\ManaPetWorld.sln" +echo. +echo In Visual Studio, click Run to start mana_pet_world. +echo If Visual Studio does not select it automatically, set mana_pet_world as the startup project once. +echo The debugger working directory and command argument are already set to the project root. +pause diff --git a/submission/evaluation/孙伟俊.md b/submission/evaluation/孙伟俊.md new file mode 100644 index 0000000..28c98be --- /dev/null +++ b/submission/evaluation/孙伟俊.md @@ -0,0 +1,9 @@ +我从几个方面说一下。 + +可用性:整体还可以。开始界面和按键说明比较直接,进入游戏后靠近 NPC 按 E 就能交互,任务日志也会提示当前目标。刚开始不会特别迷路,不过背包和宠物页面的信息比较多,第一次打开时需要稍微适应一下。 + +功能:这部分我觉得是最完整的。游戏里有 NPC 对话、主线任务、地图探索、宠物选择、野外遇敌、回合制战斗、捕捉符、背包、商店和宠物图鉴。很多功能不是孤立的,比如任务会引导玩家去战斗,战斗又和宠物队伍、恢复道具、捕捉道具连在一起,所以玩起来比较像一个完整的小型 RPG。 + +性能:我试玩时没有遇到明显掉帧或者闪退,切菜单、进战斗、走地图都比较稳定。如果以后地图更大、怪物更多,可能还要再测一下。 + +还原度:和洛克王国最像的是宠物收集、宠物对战和图鉴这几个方向,但整体美术和剧情氛围并不是完全照着洛克王国来。这个方面我觉得不是主要问题,课程项目里能把宠物冒险的核心体验做出来就已经不错。 diff --git a/submission/evaluation/宋禹辰.md b/submission/evaluation/宋禹辰.md new file mode 100644 index 0000000..08e0acd --- /dev/null +++ b/submission/evaluation/宋禹辰.md @@ -0,0 +1 @@ +能玩,内容也不少。操作提示比较清楚,任务、背包、战斗、捕捉宠物这些功能都有。运行的时候挺稳,没怎么卡。洛克王国还原度我觉得一般,主要像在宠物对战和收集,其他部分更像沙漠 RPG。 diff --git a/submission/evaluation/渠立飒.md b/submission/evaluation/渠立飒.md new file mode 100644 index 0000000..25402cd --- /dev/null +++ b/submission/evaluation/渠立飒.md @@ -0,0 +1,3 @@ +我玩下来第一感觉是内容比想象中多,不是那种只能走两步的 demo。操作还算顺手,WASD 移动、E 对话这些不用学很久,任务提示也能把人往正确方向带。 + +功能上宠物选择、野外战斗、捕捉、背包这些都能接起来,所以流程比较完整。性能方面我没遇到明显卡顿。和洛克王国的还原度主要体现在宠物收集和对战思路上,但画面和地图探索还是更像自己的 2D 冒险游戏。 diff --git a/submission/evaluation/王胤凯.md b/submission/evaluation/王胤凯.md new file mode 100644 index 0000000..a6486fe --- /dev/null +++ b/submission/evaluation/王胤凯.md @@ -0,0 +1,5 @@ +我觉得这个游戏比普通课程作业要丰富一些。刚进去的时候能看到开始界面和操作说明,所以可用性还不错,不需要别人一直在旁边解释。进游戏以后跟 NPC 对话、看任务、找宠物战斗,流程是能接上的。 + +我比较喜欢捕捉宠物这个设计,因为它让战斗不是单纯打完就结束。背包、图鉴、商店、存档这些也都有,说明功能考虑得比较全。性能上没什么大毛病,我试玩的时候没有明显延迟,菜单响应也正常。 + +至于洛克王国还原度,我觉得有一点影子,比如宠物收集和回合制对战,但不是很像原版。这个我觉得问题不大,因为它更像是用洛克王国的思路做了一个自己的冒险游戏。 diff --git a/submission/report/report.md b/submission/report/report.md index d7e0f9a..fc9a6ae 100644 --- a/submission/report/report.md +++ b/submission/report/report.md @@ -6,7 +6,7 @@ ## 2. 如何让多轮修改的进度可重用 -第一,要求 Agent 在每轮开始前先读取项目说明和现有代码模式。 +第一,要求 Agent 在每轮开始前先读取项目说明和现有代码模式,借助了 `codegraph` 这个 mcp 辅助 Agent 完成。 第二,把需求拆成可验收的小任务。使用 `plan` 模式帮助设计。