добавил русский язык

This commit is contained in:
Kaehvaman 2024-12-11 23:44:03 +04:00
parent f193f212a5
commit 21e81f471d
9 changed files with 129 additions and 94 deletions

View File

@ -139,7 +139,6 @@
<ClInclude Include="..\include\raymath.h" />
<ClInclude Include="..\include\resource_dir.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="resource1.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\main.c" />

View File

@ -30,9 +30,6 @@
<ClInclude Include="resource.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
<ClInclude Include="resource1.h">
<Filter>Файлы заголовков</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\main.c">

Binary file not shown.

Binary file not shown.

View File

@ -1,13 +1,13 @@
10 55
10 25
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 3 0 0 3 0 0 0 0 0
0 0 0 0 0 0 3 0 0 0 0 0 0 0 0
0 0 0 3 0 3 3 3 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 3 0 0 0
0 0 0 0 0 0 3 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 3 0 0 0 0 2 0
0 0 0 0 0 0 0 2 0 0 0 0 0 2 0
0 0 0 0 0 0 2 2 2 2 0 0 0 2 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 20 5
11 6 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 9 34
3 4 2

View File

@ -0,0 +1,22 @@
from itertools import chain
import sys
from fontTools.ttLib import TTFont
from fontTools.unicode import Unicode
with TTFont(
sys.argv[1], 0, allowVID=0, ignoreDecompileErrors=True, fontNumber=-1
) as ttf:
chars = chain.from_iterable(
[y + (Unicode[y[0]],) for y in x.cmap.items()] for x in ttf["cmap"].tables
)
if len(sys.argv) == 2: # print all code points
for c in chars:
print(c)
elif len(sys.argv) >= 3: # search code points / characters
code_points = {c[0] for c in chars}
for i in sys.argv[2:]:
code_point = int(i) # search code point
#code_point = ord(i) # search character
print(Unicode[code_point])
print(code_point in code_points)

View File

@ -1,4 +1,4 @@
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iso646.h>
#include "raylib.h"
@ -14,15 +14,16 @@
#define HEIGHT 50
#define WIDTH 50
#define VOFFSET 50
#define PUREBLUE (Color) { 0, 0, 255, 255 }
#define BLACKGRAY (Color) {30, 30, 30, 255}
#define VSGRAY (Color) {78, 201, 176, 255}
// Коды ячеек:
// 0 - свободна
// Коды ячеек:
// 0 - свободна
// 1 -
// 2 - препятствие
// 3 - золото
// 2 - препятствие
// 3 - золото
int map[M][N] = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
@ -146,11 +147,11 @@ void drawNet() {
}
void drawMap() {
// Коды ячеек:
// 0 - свободна
// Коды ячеек:
// 0 - свободна
// 1 -
// 2 - препятствие
// 3 - золото
// 2 - препятствие
// 3 - золото
Color colors[4] = { LIGHTGRAY, PUREBLUE, BLACK, YELLOW };
for (int i = 0; i < M; i++) {
@ -194,10 +195,11 @@ void drawBottomBar(Font font, float fontSize) {
void save() {
FILE* fout = fopen("savefile.txt", "w");
if (fout == NULL) {
GuiMessageBox((Rectangle) { N * WIDTH / 2 - 50 , M*HEIGHT - 50, N * WIDTH / 2 + 50 , M*HEIGHT + 50,},
"Ошибка сохранения",
"Невозможно создать файл",
"Ок;Выйти");
/*GuiMessageBox((Rectangle) { N * WIDTH / 2 - 50 , M*HEIGHT - 50, N * WIDTH / 2 + 50 , M*HEIGHT + 50,},
"Ошибка сохранения",
"Невозможно создать файл",
"Ок;Выйти");*/
printf("save error");
return;
}
@ -222,21 +224,21 @@ void save() {
void load() {
FILE* fin = fopen("savefile.txt", "r");
if (fin == NULL) {
printf("error");
GuiMessageBox((Rectangle) { N* WIDTH / 2 - 50, M* HEIGHT - 50, N* WIDTH / 2 + 50, M* HEIGHT + 50, },
"Ошибка загрузки",
"Файл не найден\nПопробуйте сначала сохранить игру",
"Ок;Выйти");
printf("1) load error\n");
/*GuiMessageBox((Rectangle) { N* WIDTH / 2 - 50, M* HEIGHT - 50, N* WIDTH / 2 + 50, M* HEIGHT + 50, },
"Ошибка загрузки",
"Файл не найден\nПопробуйте сначала сохранить игру",
"Ок;Выйти");*/
return;
}
int m, n;
fscanf_s(fin, "%d%d", &m, &n);
if (m != M || n != N) {
printf("error");
GuiMessageBox((Rectangle) { N* WIDTH / 2 - 50, M* HEIGHT - 50, N* WIDTH / 2 + 50, M* HEIGHT + 50, },
"Ошибка загрузки",
"Неправильный размер карты!\nПроверьте целостность сохранения",
"Ок;Выйти");
printf("2) load error\n");
/*GuiMessageBox((Rectangle) { N* WIDTH / 2 - 50, M* HEIGHT - 50, N* WIDTH / 2 + 50, M* HEIGHT + 50, },
"Ошибка загрузки",
"Неправильный размер карты!\nПроверьте целостность сохранения",
"Ок;Выйти");*/
return;
}
for (int i = 0; i < m; i++) {
@ -255,7 +257,9 @@ void load() {
}
void handleKeys() {
switch (GetKeyPressed())
int key;
while (key = GetKeyPressed()) {
switch (key)
{
case KEY_F5:
save();
@ -308,7 +312,10 @@ void handleKeys() {
break;
}
}
}
#define CDPSIZE 213
int main() {
//SetConfigFlags(FLAG_WINDOW_HIGHDPI);
@ -318,10 +325,16 @@ int main() {
SearchAndSetResourceDir("resources");
int codepoints[CDPSIZE] = { 0 };
for (int i = 0; i < 127 - 32; i++) codepoints[i] = 32 + i; // Basic ASCII characters
for (int i = 0; i < 118; i++) codepoints[95 + i] = 1024 + i; // Cyrillic characters
//Font InconsolataRegular = LoadFontEx("Inconsolata-Regular.ttf", 24, NULL, 0);
Font InconsolataSemiBold = LoadFontEx("Inconsolata-SemiBold.ttf", 48, NULL, 0);
SetTextureFilter(InconsolataSemiBold.texture, TEXTURE_FILTER_BILINEAR);
//Font InconsolataBold = LoadFontEx("Inconsolata-Bold.ttf", 24, NULL, 0);
//Font InconsolataSemiBold = LoadFontEx("Inconsolata-SemiBold.ttf", 48, codepoints, 512);
Font InconsolataBold = LoadFontEx("Inconsolata-LGC-Bold.ttf", 48, codepoints, CDPSIZE);
SetTextureFilter(InconsolataBold.texture, TEXTURE_FILTER_BILINEAR);
//GuiSetFont(InconsolataBold);
// game loop
while (!WindowShouldClose()) // run the loop untill the user presses ESCAPE or presses the Close button on the window
@ -336,18 +349,22 @@ int main() {
drawMap();
drawPlayer();
drawBottomBar(InconsolataSemiBold, 24);
drawBottomBar(InconsolataBold, 24);
if (netToggle) {
drawNet();
}
// show FPS and frametime
//DrawText(TextFormat("%2d FPS", GetFPS()), 0, 0, 34, ORANGE);
//DrawText(TextFormat("%4f ms", GetFrameTime()), 0, 34, 34, BEIGE);
// end the frame and get ready for the next one (display frame, poll input, etc...)
EndDrawing();
}
//UnloadFont(InconsolataRegular);
UnloadFont(InconsolataSemiBold);
UnloadFont(InconsolataBold);
//UnloadFont(InconsolataBold);
// destroy the window and cleanup the OpenGL context

Binary file not shown.