有什么作用asyncio.create_task()
?我看过文档,似乎无法理解。一些让我困惑的代码是这样的:
import asyncio
async def counter_loop(x, n):
for i in range(1, n + 1):
print(f"Counter {x}: {i}")
await asyncio.sleep(0.5)
return f"Finished {x} in {n}"
async def main():
slow_task = asyncio.create_task(counter_loop("Slow", 4))
fast_coro = counter_loop("Fast", 2)
print("Awaiting Fast")
fast_val = await fast_coro
print("Finished Fast")
print("Awaiting Slow")
slow_val = await slow_task
print("Finished Slow")
print(f"{fast_val}, {slow_val}")
asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)
这给出了以下输出:
001 | Awaiting Fast
002 | Counter Fast: 1
003 | Counter Slow: 1
004 | Counter Fast: 2
005 | Counter Slow: …
Run Code Online (Sandbox Code Playgroud) 我有个问题。我想让对象的枢轴点位于对象的末端而不是中心。这是我正在创建的人工智能,我需要一个不可见的矩形来查看玩家,我这样做是为了检测是否有障碍物 - 我已经在使用光线投射,但有时在某些角度线感觉不到障碍物,因此我也需要不可见的矩形。虽然,问题是有时矩形会从它后面拾取障碍物,因为它是围绕自身中心而不是末端旋转。它看起来像这样:
顺便说一下,我正在使用 C#。
我用来使矩形查看播放器的代码是:
transform.LookAt(player.transform.position);
Run Code Online (Sandbox Code Playgroud)
那么,如何使用我拥有的代码使矩形的枢轴点位于其末尾,以便矩形不会在其后面发生碰撞。
print("感谢所有帮助!");
:D
编辑:
我做了 Zackary 所说的,它工作正常,只是它向后 - 我该如何解决?
我是 C++、OpenGL 和 QT 的新手。事实上,我什至从未接触过 QT。原因如下;我过去曾用其他几种语言制作游戏(主要是使用 Unity 的 C#)。现在我想用 C++ 玩游戏。但是,我想在游戏中使用纯 C++,甚至不使用 Unreal(也许有一天)。为此,我知道对于图形,我几乎肯定应该使用 OpenGL(我目前正在学习)。我还需要制作 GUI。当我查找要使用的内容时,看起来最好的选择可能是 QT。这意味着我需要 QT 来使用 OpenGL。于是我又查了一下。我在这篇文章中找到了 QT OpenGL:如何使用 OpenGL 和 QT?. 当我查找 Qt OpenGL ( https://doc.qt.io/qt-5/qtopengl-index.html ) 时,它说:
警告:此模块不应再用于新代码。请在 Qt GUI 中使用相应的 OpenGL 类。
那么什么是 QT GUI?而且,在 OpenGL 中使用 QT 有多容易?