Browse Source

Merge pull request #612 from eesast/dev

fix: 🚑 fix the bug about climbing the windows
tags/v0.1.0
shangfengh GitHub 2 years ago
parent
commit
0b01c3dbad
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 13 deletions
  1. +18
    -9
      docs/Tool_tutorial.md
  2. +5
    -2
      docs/版本更新说明.md
  3. +3
    -1
      logic/GameClass/GameObj/Map/Window.cs
  4. +2
    -1
      logic/Gaming/ActionManager.cs

+ 18
- 9
docs/Tool_tutorial.md View File

@@ -53,9 +53,12 @@
#include <chrono>
int main()
{
auto sec = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
auto msec = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
std::cout << "从 1970 年元旦到现在的:秒数" << sec << ";毫秒数:" << msec << std::endl;
auto sec = std::chrono::duration_cast<std::chrono::seconds>(
std::chrono::system_clock::now().time_since_epoch()).count();
auto msec = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::system_clock::now().time_since_epoch()).count();
std::cout << "从 1970 年元旦到现在的:秒数" << sec << ";毫秒数:" <<
msec << std::endl;
return 0;
}
```
@@ -74,7 +77,8 @@ std::this_thread::sleep_for(std::chrono::milliseconds(20)); // 休眠 20 毫
std::this_thread::sleep_for(std::chrono::seconds(2)); // 休眠 2 秒

// 下面这个也能休眠 200 毫秒
std::this_thread::sleep_until(std::chrono::system_clock::now() += std::chrono::milliseconds(200));
std::this_thread::sleep_until(std::chrono::system_clock::now()
+= std::chrono::milliseconds(200));
```

休眠过程中,线程将被阻塞,而不继续进行,直到休眠时间结束方继续向下执行。
@@ -113,15 +117,20 @@ std::future<int> f_async()
int main()
{
auto start = std::chrono::system_clock::now();
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
std::chrono::system_clock::now() - start).count() << std::endl;
auto x = f_async();
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << x.get() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
std::chrono::system_clock::now() - start).count() << std::endl;
auto y = f_sync();
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << y << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(std::chrono::system_clock::now() - start).count() << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::duration<double, std::milli>>(
std::chrono::system_clock::now() - start).count() << std::endl;
}
```



+ 5
- 2
docs/版本更新说明.md View File

@@ -79,7 +79,10 @@
- fix:修复了可以学习完成作业的问题
- fix:修复了HaveTea越界的问题

# 5月25日更新
# 5月25日24:00更新
- fix:修复了终局得分的问题
- fix:修复了开校门的问题
- docs:摧毁一个TechOtaku的机器人,得50分。
- docs:摧毁一个TechOtaku的机器人,得50分。

# 5月26日更新
- fix:修复了卡窗的问题

+ 3
- 1
logic/GameClass/GameObj/Map/Window.cs View File

@@ -48,13 +48,15 @@ namespace GameClass.GameObj
public bool TryToClimb(ICharacter character)
{
lock (gameObjLock)
{
if (whoIsClimbing == null)
{
stage = new(0, 0);
whoIsClimbing = (Character)character;
return true;
}
else return false;
}
return false;
}
public void FinishClimbing()
{


+ 2
- 1
logic/Gaming/ActionManager.cs View File

@@ -469,8 +469,8 @@ namespace Gaming
lock (player.ActionLock)
{
if (!player.StartThread(stateNum, RunningStateType.RunningActively)) return;
player.ReSetPos(windowToPlayer + windowForClimb.Position);
windowForClimb.Enter2Stage(windowForClimb.Position - 2 * windowToPlayer);
player.ReSetPos(windowToPlayer + windowForClimb.Position);
}

player.MoveSpeed = player.SpeedOfClimbingThroughWindows;
@@ -484,6 +484,7 @@ namespace Gaming
{
if (stateNum == player.StateNum)
{
player.ReSetPos(windowForClimb.Stage);
player.SetPlayerStateNaturally();
windowForClimb.FinishClimbing();
}


Loading…
Cancel
Save