| @@ -13,6 +13,9 @@ | |||||
| #### 人物 | #### 人物 | ||||
| - `std::future<bool> EndAllAction()`:可以使不处在不可行动状态中的玩家终止当前行动 | - `std::future<bool> EndAllAction()`:可以使不处在不可行动状态中的玩家终止当前行动 | ||||
| - 在指令仍在进行时,重复发出同一类型的交互指令和移动指令是无效的,你需要先发出Stop指令终止进行的指令 | |||||
| - 实际上唤醒或勉励不同的人是有效的 | |||||
| - EndAllAction()及Move指令调用数总和一帧内不超过10次 | |||||
| #### 攻击 | #### 攻击 | ||||
| - `std::future<bool> Attack(double angleInRadian)`:`angleInRadian`为攻击方向 | - `std::future<bool> Attack(double angleInRadian)`:`angleInRadian`为攻击方向 | ||||
| @@ -18,6 +18,9 @@ | |||||
| #### 人物 | #### 人物 | ||||
| - `def EndAllAction(self) -> Future[bool]`:可以使不处在不可行动状态中的玩家终止当前行动 | - `def EndAllAction(self) -> Future[bool]`:可以使不处在不可行动状态中的玩家终止当前行动 | ||||
| - 在指令仍在进行时,重复发出同一类型的交互指令和移动指令是无效的,你需要先发出Stop指令终止进行的指令 | |||||
| - 实际上唤醒或勉励不同的人是有效的 | |||||
| - EndAllAction()及Move指令调用数总和一帧内不超过10次 | |||||
| #### 攻击 | #### 攻击 | ||||
| @@ -147,7 +147,7 @@ $$ | |||||
| ### 可视范围 | ### 可视范围 | ||||
| - 小于视野半径 | - 小于视野半径 | ||||
| - 对于在从草地中的物体,物体中心与玩家中心连线上均为草地方可见 | |||||
| - 对于中心在草地中的物体,物体中心与玩家中心连线上均为草地方可见 | |||||
| - 不在草地的物体,物体中心与玩家中心连线上无墙即可见 | - 不在草地的物体,物体中心与玩家中心连线上无墙即可见 | ||||
| ### 道具 | ### 道具 | ||||
| @@ -308,7 +308,6 @@ $$ | |||||
| - 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。 | - 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。 | ||||
| ### 人物 | ### 人物 | ||||
| - EndAllAction()及Move指令调用数总和一帧内不超过10次 | |||||
| - 眩晕状态中的玩家不能再次被眩晕 | - 眩晕状态中的玩家不能再次被眩晕 | ||||
| ### 初始状态 | ### 初始状态 | ||||
| @@ -318,8 +317,6 @@ $$ | |||||
| - 使用钥匙相当于销毁 | - 使用钥匙相当于销毁 | ||||
| ### 交互 | ### 交互 | ||||
| - 在指令仍在进行时,重复发出同一类型的交互指令是无效的,你需要先发出Stop指令终止进行的指令 | |||||
| - 实际上唤醒或勉励不同的人是有效的 | |||||
| - 被唤醒或被勉励不属于交互状态,翻窗属于交互状态 | - 被唤醒或被勉励不属于交互状态,翻窗属于交互状态 | ||||
| ### 学习与毕业 | ### 学习与毕业 | ||||
| @@ -24,12 +24,6 @@ Q: 怎么开始游戏? | |||||
| A: | A: | ||||
| 需要确保学生阵营和捣蛋鬼阵营的人数都达到Server.cmd中设定的值。人数不足也可以打开WPF,参考使用文档,修改RunGUIClient.cmd的参数,然后运行RunGUIClient.cmd,这样可以通过WPF运行部分客户端,来达到人数限制。 | 需要确保学生阵营和捣蛋鬼阵营的人数都达到Server.cmd中设定的值。人数不足也可以打开WPF,参考使用文档,修改RunGUIClient.cmd的参数,然后运行RunGUIClient.cmd,这样可以通过WPF运行部分客户端,来达到人数限制。 | ||||
| Q: Mac怎么用? | |||||
| A: | |||||
| 安装Windows虚拟机 | |||||
| try | |||||
| ## C++ | ## C++ | ||||
| Q:显示API项目已卸载 | Q:显示API项目已卸载 | ||||
| @@ -37,7 +31,7 @@ Q:显示API项目已卸载 | |||||
| A:可能是没有安装C++ | A:可能是没有安装C++ | ||||
| Q:CAPI.sln编译不通过 | |||||
| Q:CAPI.sln编译不通过(第一种) | |||||
| 情况1: | 情况1: | ||||
|  |  | ||||
| 情况2: | 情况2: | ||||
| @@ -52,7 +46,7 @@ A: | |||||
|  |  | ||||
| 确保上图项目属性中平台工具集在 v143,C++17 标准 | 确保上图项目属性中平台工具集在 v143,C++17 标准 | ||||
| Q:CAPI编译不通过 | |||||
| Q:CAPI编译不通过(第二种) | |||||
|  |  | ||||
| A:查看`.\win\CAPI\cpp\`文件夹下是否有`lib`文件夹,没有则https://cloud.tsinghua.edu.cn/d/6972138f641d4e81a446/ 下载并复制粘贴 | A:查看`.\win\CAPI\cpp\`文件夹下是否有`lib`文件夹,没有则https://cloud.tsinghua.edu.cn/d/6972138f641d4e81a446/ 下载并复制粘贴 | ||||
| @@ -65,9 +65,10 @@ int main() | |||||
| ### 线程睡眠 | ### 线程睡眠 | ||||
| 由于移动过程中会阻塞人物角色,因此玩家可能要在移动后让线程休眠一段时间,直到移动结束。C++ 标准库中使线程休眠需要包含头文件:`#include <thread>`。示例用法: | 由于移动过程中会阻塞人物角色,因此玩家可能要在移动后让线程休眠一段时间,直到移动结束。C++ 标准库中使线程休眠需要包含头文件:`#include <thread>`。示例用法: | ||||
| 我们推荐小步移动,不太建议玩家使用线程睡眠超过一帧 | |||||
| ```cpp | ```cpp | ||||
| std::this_thread::sleep_for(std::chrono::milliseconds(20)); // 休眠 20 毫秒 | std::this_thread::sleep_for(std::chrono::milliseconds(20)); // 休眠 20 毫秒 | ||||
| std::this_thread::sleep_for(std::chrono::seconds(2)); // 休眠 2 秒 | std::this_thread::sleep_for(std::chrono::seconds(2)); // 休眠 2 秒 | ||||