我尝试使用DrawTextEx函数显示俄语文本。我在最后得到的根本不是我想要的。Display unicode。我使用wchar_t,但编译器给出以下警告:raylib_unicode.c:27:warning:assignment from incompatible pointer type.下面是代码:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include "raylib.h"
#define WINDOW_WIDTH 800
#define WINDOW_HEIGHT 600
#define TARGET_FPS 60
int main(int argc, char const *argv[])
{
// setlocale(LC_ALL, "Russian");
InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "unicode");
wchar_t msg[] = L"Текст, Text.";
Font font = LoadFontEx("resources/pt-mono_regular.ttf", 48, NULL, 0);
SetTargetFPS(TARGET_FPS);
while (!WindowShouldClose()) {
BeginDrawing();
ClearBackground(WHITE);
DrawTextEx(font, msg, (Vector2) {(float) WINDOW_WIDTH / 2,
(float) WINDOW_HEIGHT / 2}, 48, 2, BLACK);
EndDrawing();
}
UnloadFont(font);
CloseWindow();
return 0;
}
字符串
你能指出我的错误吗?控制台上一切正常。
我使用了wchar_t。我希望输出正确的文本。
1条答案
按热度按时间ibrsph3r1#
我将
wchar_t
更改为char
,并在程序的开头添加了以下代码:字符串
还将
LoadFontEx
中的NULL
更改为codepoints
。工作完美。