在 Javascript 中制作基于文本的 FPS

原始问题

当我用 C++ 制作游戏时,窗口和缓冲区大小为 120 x 40 并且屏幕(wchar_t 的数组)相同,因此每个字符将占用相等的空间,这样整个数组将构成屏幕并稍后重绘它在控制台上


我正在尝试使基本控制台与画布一起使用,但并非每个角色都有相同的空间,而且并非所有人都适合它


//Display map

    for (nx = 0; nx < MAP_WIDTH; nx++)

    {

        for (ny = 0; ny < MAP_HEIGHT; ny++)

        {

            Screen[(ny + 1) * SCREEN_WIDTH + nx] = MAP[ny * MAP_WIDTH + nx] //returns a character '#' or '.';

        }

    }

这是我如何填充数组的示例


`Screen = Array(SCREEN_WIDTH * SCREEEN_HEIGHT);`

这是数组的初始化,现在我将如何将该屏幕缓冲区绘制到 C++ 中的画布上,就像这样


        //finally printing the screen

        screen[ScreenWidth * ScreenHeight - 1] = '\0';

        WriteConsoleOutputCharacter(hConsole, screen, ScreenWidth * ScreenHeight, { 0, 0 }, &dwBytesWritten);


慕婉清6462132
浏览 160回答 1
1回答

蓝山帝景

我只是放弃了画布,只是将我的文字打印在带有这样的 para 标签内let line = "";&nbsp; &nbsp; for (let y = 0; y < SCREEN_HEIGHT; y++)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; for (let x = 0; x < SCREEN_WIDTH; x++)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line += screen[y * SCREEN_WIDTH + x];&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; line += "\n";&nbsp; &nbsp; }&nbsp; &nbsp; document.getElementById("consoletext").innerText = line;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript