我用 Python 编写了一个在控制台上运行的 3D 游戏。为了阻止它闪烁,我必须将要显示的内容写入ConsoleScreenBuffer. 文档是这样的。我知道我必须使用:
import win32console
buffer = win32console.CreateConsoleScreenBuffer()
但是 的参数是什么CreateConsoleScreenBuffer()?在文档中它说:
HANDLE WINAPI CreateConsoleScreenBuffer(
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ const SECURITY_ATTRIBUTES *lpSecurityAttributes,
_In_ DWORD dwFlags,
_Reserved_ LPVOID lpScreenBufferData
);
那是在 C 中。help(win32console.CreateConsoleScreenBuffer)没有提供有用的信息。前两个参数是整数,第二个参数是“PySECURITY_ATTRIBUTES”对象,第三个参数也是整数。(我认为?)
CreateConsoleScreenBuffer(DesiredAccess, ShareMode, SecurityAttributes, Flags)
DesiredAccess=GENERIC_READ and GENERIC_WRITE : int
GENERIC_READ and/or GENERIC_WRITE
ShareMode=FILE_SHARE_READ and FILE_SHARE_WRITE : int
FILE_SHARE_READ and/or FILE_SHARE_WRITE
SecurityAttributes=None : PySECURITY_ATTRIBUTES
Specifies security descriptor and inheritance for handle
Flags=CONSOLE_TEXTMODE_BUFFER : int
CONSOLE_TEXTMODE_BUFFER is currently only valid flag
我没有在网上找到任何实施此方法的示例。
如果您知道任何其他使控制台绘制速度更快的方法,请告诉我们。
这是我的(不是喷气机)游戏。它会闪烁,因为它绘制得不够快。我遵循的教程是用 c++ 编写的,并使用 CreateConsoleScreenBuffer 来消除闪烁,因为使用它,所有内容都是一次性绘制的,而不是连续绘制的。
慕容森
相关分类