разработка графического интерфейса на C # для Cosmos OS [закрыто]

StackOverflow https://stackoverflow.com/questions/2429726

Вопрос

Как мне разработать графический интерфейс в C # Cosmos?

космическая ОС

Нет правильного решения

Другие советы

Вот как (с milestone 5, но аналогично для других версий).Cosmos делает все для VGA за вас.Это также касается мыши и клавиатуры.Я еще не смог создать клавиатуру, но у меня есть работающая мышь (хотя я не смог выяснить, как увидеть, нажаты ли кнопки).Я покажу вам функции VGA, чтобы вы могли начать.Во-первых, вам нужно это пространство имен:

using Cosmos.Hardware;

Затем - переменная, в которой будет жить экран.Добавьте эту переменную уровня класса:

 VGAScreen screen:

Затем, чтобы инициализировать его, добавьте этот код в ваш метод BeforeRun():

screen = new VGAScreen();
screen.SetMode320x200x8();
screen.Clear(0);

Наконец, вы можете установить цвет пикселей с помощью:

screen.SetPixel320x200x8(uint x, uint y, uint c);

Вы устанавливаете x на любой y и цвет, c.Цвета представлены в формате 256 цветов.Математика используется для создания фигур.

Сначала вам нужно будет написать драйвер VGA.И драйвер мыши.И, вероятно, запустить сборщик мусора.Так много нужно сделать.

ДА!вы можете, у меня есть кое-какой хороший графический интерфейс и работающий драйвер мыши.так что да, это возможно, но требует времени, и вам нужно знать, что писать и читать, когда вы используете драйвер мыши, в противном случае это возможно.

Я большой любитель космоса, и если кто-нибудь столкнется с этим позже, я хочу оставить способ сделать это по состоянию на 12.10.2015.

Прежде чем мы начнем, я ВЫСОКО рекомендую использовать devkit, а не userkit.Хотя devkit предназначен для модификации самого Cosmos, вы можете полностью отказаться от этого и закрыть окно VS, когда оно завершит установку.У devkit есть ВСЕ функции, которые есть у userkit, но userkit обновляется только раз в месяц или около того, может быть, чаще, а devkit обновляется каждые несколько дней с последними исправлениями ошибок и функциями.Вам определенно следует вместо этого загрузить devkit, потому что он также обладает наибольшей поддержкой.

Итак, чтобы получить VGA, откройте новое окно Visual Studio.Создайте новый Class Library и называй это как хочешь, черт возьми.

Перейдите к ссылкам и добавьте ссылку на Cosmos.HAL, Cosmos.Общие и Cosmos.Система.Вы можете найти их в %appdata% oaming\Cosmos User Kit

Зайдите в AssemblyInfo.cs и добавьте using Cosmos.Common;, а внизу добавьте следующую строку:[сборка:Кольцо (Ring.Система)]

Хорошо, отлично, теперь вам нужно зайти и создать новый класс с именем whatever .

Вверху добавьте using Cosmos.HAL и using System.

Добавьте две строки:

public static VGAScreen screen = new VGAScreen(); и public static Mouse mi = new Mouse(); Назовите screen и mi все, что вы хотите.

Создайте метод инициализации и отметьте галочкой с любым именем.

Вот пример метода инициализации:

public static void InitVGA() {
    //Make SURE you have this exact line or else it won't work!  Any size other than 320x200 is broken, and 8-bit is the highest VGA compatible color depth.
    screen.SetGraphicsMode(VGAScreen.ScreenSize.Size320x200, VGAScreen.ColorDepth.BitDepth8);
    //There's a bug currently where only 6-bit color is supported with 8-bit.  0x3f is pure white.
    screen.Clear(0x3f);

    //mi.Initialize(320, 200);
}

Теперь в методе Tick просто добавьте все, что угодно.Все, что ты захочешь, должно происходить примерно каждые миллисекунды.Это может быть, например, рисование мыши или что-то в этом роде.Вы можете найти это в другом месте в Интернете, но это немного долгая история.

Вот так, теперь у вас есть работающий VGA!

Вы можете установить пиксели с помощью экрана.Установите пиксель320x200x8 (x, y, цветной);

Применимые цвета варьируются от 0 до 3f.Он соответствует общим цветам консоли 0-f, но просто добавляет тонну дополнительных опций.

Теперь просто соберите эту dll-библиотеку и установите ее в свою основную операционную систему.Теперь добавьте методы yourvgaclass.Инициализируйте метод BeforeRun в ядре и yourvgaclass.Отметьте галочкой метод Run в ядре.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top