{"id":15047440,"url":"https://github.com/turesnake/tprpix","last_synced_at":"2025-04-04T09:09:45.937Z","repository":{"id":110006858,"uuid":"158504470","full_name":"turesnake/tprPix","owner":"turesnake","description":"a Cross-Platform, 2D Survival Sandbox Game Project.  Based on C++17/cmake/OpenGL/SQLite3.","archived":false,"fork":false,"pushed_at":"2023-04-07T14:36:59.000Z","size":25790,"stargazers_count":720,"open_issues_count":2,"forks_count":132,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-04-04T09:09:25.607Z","etag":null,"topics":["c-plus-plus","c-plus-plus-17","clang","cmake","cpp","cpp11","cpp17","cross-platform","game","glad","glfw3","graphics","opengl","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/turesnake.png","metadata":{"files":{"readme":"README.ZH_CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-11-21T06:57:44.000Z","updated_at":"2025-03-17T05:11:00.000Z","dependencies_parsed_at":"2023-03-13T13:59:09.631Z","dependency_job_id":null,"html_url":"https://github.com/turesnake/tprPix","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turesnake%2FtprPix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turesnake%2FtprPix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turesnake%2FtprPix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/turesnake%2FtprPix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/turesnake","download_url":"https://codeload.github.com/turesnake/tprPix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149505,"owners_count":20891954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","c-plus-plus-17","clang","cmake","cpp","cpp11","cpp17","cross-platform","game","glad","glfw3","graphics","opengl","sqlite3"],"created_at":"2024-09-24T20:58:23.948Z","updated_at":"2025-04-04T09:09:45.909Z","avatar_url":"https://github.com/turesnake.png","language":"C++","readme":"# tprPix\n**tprPix** 是一个跨平台的，2D生存向沙盒游戏项目。\n\n项目基于： **C++17/OpenGL/SQLite3**.\n\n(注意，**tprPix** 是项目的名称, 而非游戏本身的名称 (我还没想好hhh...) )\n\n![screenShot.01](Docs/pngs/screenShots/ss.01.png)\n\n\n## 我该下载哪个分支\n直接下载 Branch:**master** 即可。\n\n## 此项目支持哪些平台\n- **Win10**\n- **MacOSX** (10.12 或更高版本) \n- **Ubuntu** (16.04 或更高版本) \n\n也许可以支持各平台的较早版本，但我尚未测试。\n\n\n## 支持哪款编译器\n**Clang** 是最推荐的编译器，即便是在 **Win10** 平台。\n请确保你所下载和安装的 **Clang** 版本，支持 **C++17**。\n\n\n\n## 如何安装\n\n### Mac OS X\n\n在 **Mac** 平台的安装非常简单。\n\n首先，确保你已经成功安装如下程序：\n- **CMake** (3.1 或更高版本; 若想使用PCH，Unity-builds 技术加速编译，推荐 3.16 或更高版本)\n- **Clang** (足以支持 **C++17** 的较新版本)\n- **OpenGL** 相关的库\n\n\n然后，打开 **终端**（terminal），**\"cd\"** 至 本项目的根目录： \n\n    $ cd .../appRootDir/\n\n(**注意**，此处的 \"appRootDir\" 应替换为实际的根目录名字)\n\n接着，运行一份 shell 脚本程序：\n\n    $ ./unix_release.sh\n\n脚本 `unix_release.sh` 将会自动化地帮我们完成程序的 **build** 和本地化部署工作。\n你也可以选择运行另一份脚本：`unix_debug.sh`， 正如名字所示，它将生成一份 **DEBUG** 版的程序。在 **DEBUG** 模式下，游戏的运行性能会显著下降。想要试玩的朋友，请尽可能调用 **release** 模式。\n\n现在，所有的安装工作都已经 **完成** 了!!!\n\n你可以在目录： **.../appRootDir/build/publish/** 中找到可执行文件：**tprpix**。\n双击它，开始我们的游戏!!!\n(**注意**，此处的 \"appRootDir\" 应替换为实际的根目录名字)\n\n\n### Ubuntu \n在 **Ubuntu** 上的安装与 **Mac OS X** 十分相似。\n\n首先，请确保你已经安装如下程序：\n\n**CMake** (3.1 或更高版本; 若想使用PCH，Unity-builds 技术加速编译，推荐 3.16 或更高版本)：\n\n    $ sudo apt-get install cmake\n\n**Clang** (足以支持 **C++17** 的较新版本)：\n\n    $ sudo apt-get install llvm\n    $ sudo apt-get install clang \n\n重设系统默认的 **C/C++编译器**：\n\n    $ sudo update-alternatives --config c++\n    $ sudo update-alternatives --config cc\n\n再安装几个与图形有关的第三方库：\n\n    $ sudo apt-get install libx11-dev\n    $ sudo apt-get install libglfw3-dev\n    $ sudo apt-get install libsdl2-dev\n\n现在，打开 **终端**（terminal），**\"cd\"** 至 本项目的根目录： \n\n    $ cd .../appRootDir/\n\n(**注意**，此处的 \"appRootDir\" 应替换为实际的根目录名字)\n\n接着，运行一份 shell 脚本程序：\n\n    $ ./unix_release.sh\n\n脚本 `unix_release.sh` 将会自动化地帮我们完成程序的 **build** 和本地化部署工作。\n你也可以选择运行另一份脚本：`unix_debug.sh`， 正如名字所示，它将生存一份 **DEBUG** 版的程序。在 **DEBUG** 模式下，游戏的运行性能会显著下降。想要试玩的朋友，请尽可能调用 **release** 模式。\n\n\n现在，所有的安装工作都已经 **完成** 了!!!\n\n你可以在目录： **.../appRootDir/build/publish/** 中找到可执行文件：**tprpix**。\n(**注意**，此处的 \"appRootDir\" 应替换为实际的根目录名字)\n\n在 **终端** 中启动它：\n\n    $ build/publish/tprpix\n\n开始我们的游戏!!!\n\n\n\n### Win10\n\n\n为了支持 **Win10** 中的 **Clang**，我们首先要安装 **Visual Studio 2019**。\n\n同时，确保你的 **Visual Studio** 中也安装了如下组件:\n\n![Check Clang and Cmake](Docs/pngs/win10/clang_and_cmke_check.png)\n\n然后，启动 **Visual Studio 2019**，点选初始界面中的 `Open a local folder` 按钮，在弹出的窗口中，选择本程序的根目录 -\u003e\n\n![open a local folder](Docs/pngs/win10/000.png)\n\n\n进入主界面后，VS 会主动识别出一份根目录下的配置文件：`CMakeSettings.json`，并且根据这份文件内的描述，自动创建一份名为 `x64-Clang-Release` 的 配置方案（configurations）。此时你会看到 VS: **Output 面板**中 正在做有关 cmake Cache 的解析和生成工作。 稍等数秒后，你会在 **Output 面板** 中看到：\n\n    CMake generation finished.\n\n这表明 cmake Cache 生成成功了！\n\n\n**注意:** 如果在这一过程中发生错误，请阅读 [这份文章](Docs/how_to_handle_visual_studio.md)，学习如何以 **手动配置** 的方式，来生成 cmake Cache。\n\n\n在 cmake Cache 生成成功后。在 **Visual Studio 2019** 左上方的 `Build` 菜单中，找到 `Build All` 按钮，点击它，开始正式的 **Build** 工作。（也可以使用快捷键:`F7`） -\u003e\n\n![Build All](Docs/pngs/win10/009.png)\n\n\n**Build** 工作 将会持续数分钟，直到我们在下方的 **Output** 面板中看到 `Build All succeeded.` 的信息。这表示，**Build** 成功。我们在 **Visual Studio 2019**\n中的工作就全部结束了。\n\n\n最后的最后，回到本项目所在的根目录。寻找并双击一份名为 `win.bat` 的脚本文件。\n它将帮助我们执行本地化部署工作。\n\n\n现在，安装正式**完成**!!!\n\n你可以在目录 **.../appRootDir/build/publish/** 中，找到可执行文件 **tprpix.exe**，\n它就是我们的程序本体。\n(**注意**，此处的 \"appRootDir\" 应替换为实际的根目录名字)\n\n双击此文件，开始我们的游戏!!!\n\n\n## 编译后的 最终生成包\n\n不管在任何平台编译，最终的生成包是统一的：**.../appRootDir/build/publish/**, 你可以将这个 **publich** 文件夹，\n复制到任何位置，都不会影响文件夹内 可执行文件 的运行。可执行文件需要的一切资源，都被集成在了 **publish** 目录内。\n\n\n\n## 怎么玩这款游戏\n\n本游戏同时支持 **键盘** 和 绝大部分 **游戏手柄** 输入。\n考虑到这是一款动作类游戏，作者更推荐大家使用手柄来游戏。（ Xbox360 或其他山寨版都支持 ）\n\n\n### 手柄按键布置(Xbox360-Style):\n- **左摇杆**: 控制角色移动。\n\n- **按键:A**: 确认键。\n在游戏世界中，玩家可以按压 **按键:A** 来提升 玩家所操作角色的 移动速度。\n（其实这是提供给开发者 Debug 用的功能）\n\n\n- **按键:B**: 降低 玩家所操作角色的 移动速度。\n\n- **按键:X/Y**: 在 **终端** 中打印一些数据，供开发者 Debug 用。\n\n\n### 键盘按键布置:\n- **按键:W/A/S/D**: 控制角色移动。\n- **按键::Enter**: 确认键。\n- **按键::H/J/K/L**: 功能对应游戏手柄中的 **'A/B/X/Y'** 键.\n\n\n**请注意，当系统输入法为中文模式时，游戏将无法识别键盘按键。请务必切换到英文输入法模式。**\n\n在目前版本中，一旦玩家进入游戏世界，可以控制一只小鸡四处游览世界。通过按下 **键盘键:H** 或者 **游戏手柄键:A**,可以让小鸡速度加快甚至飞行。这原本是提供给开发者来检视 世界生成效果用的。\n\n鉴于本游戏的剩余部分仍在开发中，所以还请体验者们耐心等待。\n\n\n\n## 如何修改程序窗口尺寸\n现阶段暂不支持 全屏模式。改写窗口尺寸的配置文件，放置在 **.../publish/jsons/windowConfig.json** 文件中。如图所示：\n\n![Window Config](Docs/pngs/oth/windowConfig_1.png)\n\n如果你想调整你的 **窗口尺寸**，请修改变量：`windowPixW, windowPixH`（单位为像素）。正如变量：`recommend:windowPixW, recommend:windowPixH` 所示，推荐的尺寸是 1920，1200。（事实上，你可以将变量 `windowPixW, windowPixH` 改写成任意整形数值（integer），只要记得别超出你的显示器限制。程序会自动照顾好窗口长宽比。）\n\n请勿修改变量 `recommend:windowPixW, recommend:windowPixH`，它们对程序不起任何作用，仅仅是一份提示。\n\n请保持变量 `isFullScreen` 值为 `false`。 针对它的修改将使程序启动失败。\n\n在修改完参数后，保存文件。再次运行 app，就能获得对应效果。无需再次编译。\n\n\n\n# 现存的问题\n如果您在运行程序时，遭遇以下问题，请勿惊慌:\n\n\n## 进入游戏，点击一个存档后，陷入死机\n这个 bug 有较小的几率被触发。\n当遇到这个问题时，推荐您先强制退出程序。然后直接删除 **.../appRootDir/build/publish/dataBase/** 文件夹。对，整个删除即可。这是程序的 存档文件夹。请放心粗暴地随意删除之。\n\n## 三个存档占满了怎么办\n目前的游戏尚未实现完整的 **UI系统**，就连 **存档系统** 也是残缺的。\n如果存档已满，还是请直接删除 **.../appRootDir/build/publish/dataBase/** 文件夹。\n\n## 运行中出现闪退怎么办\n您可以将闪退后的**命令行信息**提交到**issues**处，或者直接通过下方的联系方式传达给我。这将帮助我更好地完成程序。\n\n## 更多问题有待暴露\n...\n\n\n# 版权协议遵守 [BSD 3-Clause](LICENSE)\n\n# 欢迎反馈与建议\n本游戏的剩余部分仍在开发中，如果您有任何反馈或建议，都可以通过下方联系方式联系开发者本人。\n\n\n## 联系方式\n*   E-mail: [turesnake@icloud.com](mailto:turesnake@icloud.com)\n*   QQ: 651700603\n*   微信：turesnake\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturesnake%2Ftprpix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fturesnake%2Ftprpix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fturesnake%2Ftprpix/lists"}