GUI в космосе: помощь в C#
Я использовал Cosmos в Microsoft Visual C# 2008 для создания примитивных, TUI, операционных систем. Интересно, как сделать GUI в Космосе. Я знаю, что это возможно, но я просто хочу знать, как это сделать. Конструктивная критика приветствуется, оскорблений нет! Пожалуйста, ответьте с кодом (и комментариями в коде), потому что я абсолютный новичок, обладающий лишь некоторыми знаниями базовых команд C#. Спасибо!
2 ответа
Я не знаю, какой этап вы используете, но я думаю, что это может сработать для вас. Вам нужна эта переменная уровня класса:
Cosmos.Hardware.VGAScreen screen;
И в вашем методе Init:
screen = new Cosmos.Hardware.VGAScreen();
screen.SetMode300x200x8();
screen.Clear(0);
//done init vga screen
После этого последнего комментария вы можете использовать его в своем коде для установки цвета пикселя:
screen.SetPixel300x200x8(uint x, uint y, uint color);
Параметр color - это цвет пикселя в формате 256 цветов (числа от 0 до 255). Это все, что вам нужно для создания графического интерфейса. Тем не менее, вам нужно много математических навыков для создания фигур.
Есть также GUI API с функциями для создания фигур. Выполните поиск в Google/YouTube или посетите страницу обсуждения на странице кодекса Cosmos:
Это на 2020 год, потому что это ОЧЕНЬ хороший способ сделать это в космосе. (ИСПОЛЬЗОВАНИЕ CGS)
using System;
using System.Drawing;
using Cosmos.System.Graphics;
using Sys = Cosmos.System;
namespace Graphics
{
public class Kernel : Sys.Kernel
{
Canvas canvas;
protected override void BeforeRun()
{
canvas = FullScreenCanvas.GetFullScreenCanvas();
canvas.Clear(Color.Black);
}
protected override void Run()
{
Pen pen = new Pen(Color.White);
// DRAW stuff see https://www.gocosmos.org/docs/cosmos-graphic-subsystem/
}
}
}