تطوير واجهة المستخدم الرسومية في C # على Cosmos OS [مغلق

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

سؤال

كيف يمكنني تطوير واجهة المستخدم الرسومية في C # Cosmos؟

Cosmos Os.

لا يوجد حل صحيح

نصائح أخرى

هنا هو كيف (مع المعلم 5، ولكنه مماثلة للإصدارات الأخرى). كوزموس يقوم بأشياء VGA لك. كما يفعل الماوس ولوحة المفاتيح. لم أتمكن من صنع لوحة مفاتيح حتى الآن، لكن لدي فأرة عمل (على الرغم من أنني تمكنت من معرفة كيفية معرفة ما إذا كانت الأزرار منخفضة). تظهر لك سوء وظائف VGA لتبدأ. أولا، تحتاج إلى مساحة الاسم هذه:

using Cosmos.Hardware;

ثم، متغير للشاشة للعيش فيه. أضف متغير مستوى الفئة هذا:

 VGAScreen screen:

ثم، لتهيئة ذلك، أضف هذا الرمز إلى طريقة BOFORERUN () الخاصة بك:

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

أخيرا، يمكنك ضبط لون البكسل مع:

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

قمت بتعيين x أي y واللون، ج. الألوان في 256 تنسيق اللون. الرياضيات تشارك لصنع الأشكال.

عليك أن تكتب سائق VGA أولا. وسائق الماوس. وربما تحصل جامع القمامة الذهاب. الكثير للقيام به.

نعم! يمكنك، لدي بعض ما واجهة المستخدم الرسومية الجيدة، وسائق الماوس العام. لذلك نعم، من الممكن، ولكنها تأخذ وقتا وتحتاج إلى معرفة ما يجب الكتابة والقراءة عندما تقوم بعمل سائق الماوس، وإلا فمن الممكن.

أنا رجل كوزموس كبير، وإذا كان أي شخص يأتي في وقت لاحق، أريد أن أترك طريقة للقيام بذلك اعتبارا من 10/12/2015.

قبل أن نبدأ إدراك يوصي باستخدام Devkit وليس Userkit. في حين أن Devkit مخصص لتعديل كوزموس نفسه، يمكنك الاحتفاظ به بالكامل من ذلك وإغلاق نافذة VS عند انتهاء التثبيت. Devkit لديه الكل الميزات لدى Userkit، ولكن Userkit فقط تحديثات مرة واحدة كل شهر أو نحو ذلك، ربما يتم تحديث Devkit كل بضعة أيام مع أحدث Bugfixes والميزات. يجب عليك بالتأكيد تنزيل Devkit بدلا من ذلك، لأنه يحتوي على الدعم الأكثر أيضا.

حسنا حتى تحصل على VGA، افتح نافذة جديدة Visual Studio. إنشاء جديد Class Library واسمها مهما كانت هيك تريده.

انتقل إلى المراجع وإضافة مرجع إلى Cosmos.hal، Cosmos.Commmon، نظام Cosmos.System. يمكنك العثور عليها في٪ Appdata٪ Roaming Cosmos

الذهاب إلى casselessinfo.cs وإضافة using Cosmos.Common;, ، وفي القاع أضف السطر التالي: [الجمعية: Ring (Ring.System)

حسنا، الآن تحتاج الآن إلى الذهاب وإنشاء فئة جديدة تسمى أي شيء.

في الجزء العلوي، أضف باستخدام Cosmos.hal واستخدام النظام.

إضافة سطرين:

public static VGAScreen screen = new VGAScreen(); و public static Mouse mi = new Mouse(); اسم الشاشة و mi ما تريد.

إنشاء طريقة INIT والقراد المسمى ما.

فيما يلي طريقة مثال:

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);
}

الآن في طريقة القراد، فقط أضف ما. أي شيء تريد أن يحدث كل مثل miliececond أو نحو ذلك. يمكن أن يكون، مثل، رسم الماوس أو شيء من هذا. يمكنك أن تجد أنه في أي مكان آخر على الإنترنت، هذا قليلا من القصة الطويلة.

هناك تذهب، والآن لديك عمل VGA!

يمكنك تعيين بكسل مع الشاشة. SetPixel320x200x8 (X، Y، اللون)؛

تتراوح الألوان المطبقة من 0-3F. يتبع ألوان وحدة التحكم العامة 0-F ولكن فقط يضيف خيارات طن أكثر.

الآن، فقط قم ببناء DLL هذا و REFT في نظام التشغيل الرئيسي الخاص بك. أضف الآن الأساليب yourvgaclass.init إلى طريقة BOFRERUN في kernel، و yourvgaclass.tick إلى طريقة التشغيل في kernel.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top