【发布时间】:2019-12-11 20:34:33
【问题描述】:
我正在用 java 制作游戏,我想使用一个用 c++ 编码的引擎 (olcConsoleGameEngine),但我想用 java 制作它。我可以理解 c++ 的大部分编码方式,但我被困在特定的行 (198):olcSprite(std::wstring sFile)。
class olcSprite
{
public:
olcSprite()
{
}
olcSprite(int w, int h)
{
Create(w, h);
}
olcSprite(std::wstring sFile) // line 198
{
if (!Load(sFile))
Create(8, 8);
}
//...
我查了一下,发现std::function是根据https://en.cppreference.com/w/cpp/utility/functional/function的“通用多态函数包装器”。但我不确定这意味着什么或如何在java中专门为我的案例实现等价物。如果有人可以帮助我更好地理解这一点或为我指明正确的方向,我将不胜感激。
【问题讨论】:
-
我可以理解 c++ 的大部分编码方式——我建议你真正了解 C++。试图逐行找出像 C++ 这样复杂的语言,很少(如果有的话)是正确的。
-
wstring 不只是 UTF8 Unicode 吗?两字节字符串而不是单字节字符。 Java 字符串默认是 Unicode,所以一切就绪。
-
我看不出第 198 行与
std::function有什么关系? -
@duffymo 很难说。
std::wstring通常用于 Windows 中的 UTF-16LE 编码字符串。如果需要一些互操作性,应该注意一些 - 但是如果翻译后的游戏引擎要独立运行,我猜java使用什么编码都没有关系,就像你说的那样。 -
std::wstring使用wchar_t,在 Windows 上为 2 字节 (UCS-2/UTF-16),但在其他平台上为 4 字节 (UCS-4/UTF-32)。
标签: java c++ polymorphism game-engine wrapper