برمجة الألعاب في C # باستخدام SDL.NET

click fraud protection

إحدى مشاكل المصادر المفتوحة هي أن المشاريع تبدو في بعض الأحيان وكأنها تسقط على جانب الطريق أو تأخذ منحنيات مربكة. خذ SDL.NET. عند تجاهل موقع الويب للبيع ، يكشف البحث على الويب cs-sdl.sourceforge.net مشروع يبدو أنه توقف في نوفمبر 2010. لا نعتقد أنها توقفت ولكن يبدو أنها توقفت.

إذا كنت لا تعرف C # ، فستحتاج أولاً إلى معرفة كيفية القيام بذلك برنامج في C #. بالنظر إلى مكان آخر ، صادفنا إطار عمل Tao المرتبط على موقع Mono الإلكتروني والذي يبدو أنه يغطي نفس المنطقة وإضافة دعم للصوت وما إلى ذلك. ولكن بالنظر إلى sourceforge (مرة أخرى!) ، فقد تم استبداله بـ OpenTK ولكن التركيز هناك OpenGL. ومع ذلك ، فإنه يتضمن أيضًا OpenAL لذا يبدو أن تثبيت الاثنين (cs-sdl و OpenTK) هو الطريق إلى الأمام.

فشل جزء من تثبيت OpenTk ؛ NS (تظليل) لأنه ليس لدينا VS 2008 مثبتة! ومع ذلك ، كان الباقي على ما يرام. أنشأنا مشروع C # Console وبدأنا اللعب مع SDL.NET. يمكن العثور على الوثائق عبر الإنترنت هنا.

إذا نظرنا إلى الوراء ، يمكننا أن نرى أن إطار عمل OpenTK لم يكن مطلوبًا على هذا النحو ، وأن SDL.NET قام بتثبيت كل شيء ولكن ذلك لم يكن واضحًا في ذلك الوقت. لا يزال يستخدم إطار Tao على الرغم من أن OpenTK قد حل محل تطوير ذلك. إنه أمر مربك بعض الشيء ونأمل أن يقوم فريق SDL.NET بإصدار إصدار متوافق مع OpenTk في المستقبل.

instagram viewer

إنها ليست ، كما كنا نعتقد ، مجرد غلاف رفيع مستدير SDL ، ولكنها تضيف وظائف إضافية كبيرة. هناك عدد من الفئات المقدمة لتوفير ما يلي:

حدد موقع dlls SDL.NET (SdlDotNet.dll و Tao). Sdl.dll) وكذلك ملفات OpenTK dlls وإضافتها إلى مراجع المشروع. بعد التثبيت ، توجد dlls في Program Files \ SdlDotNet \ bin (على Windows 32 بت و Program Files (x86) \ SdlDotNet \ bin على Windows 64 بت. انقر بزر الماوس الأيمن على قسم "المراجع" في Solution Explorer ، ثم انقر فوق "إضافة مرجع" وحدد علامة التبويب "استعراض". يؤدي ذلك إلى فتح مربع حوار Explorer وبعد تحديد موقع dlls ، حدد ثم انقر فوق موافق.

آخر شيء ، انقر فوق View \ Properties حتى يفتح صفحات الخصائص وعلى علامة التبويب الأولى (التطبيق) تغيير نوع الإخراج من تطبيق وحدة التحكم إلى تطبيق Windows. إذا لم تفعل ذلك عندما يعمل البرنامج لأول مرة ويفتح نافذة SDL الرئيسية ، فسيفتح نافذة وحدة تحكم أيضًا.

نحن الآن جاهزون للبدء وقمت بإنشاء تطبيق قصير أدناه. هذا يمزج بشكل عشوائي المستطيلات والدوائر الموجودة على سطح النافذة بسرعة 1700 يتم رسمها في الثانية بمعدل إطار 50 إطارًا في الثانية.

يأتي هذا 1700 من تعيين الرقم المرسوم لكل إطار إلى 17 وعرض الإطارات في الثانية في شرح النافذة باستخدام الفيديو. WindowCaption. كل إطار يرسم 17 دائرة ومستطيلات مملوءة ، 17 × 2 × 50 = 1700. يعتمد هذا الرقم على بطاقة الفيديو ووحدة المعالجة المركزية وما إلى ذلك. إنها سرعة رائعة.

// بقلم ديفيد بولتون ، http://cplus.about.com
باستخدام النظام ؛
باستخدام النظام. رسم؛
باستخدام SdlDotNet. الرسومات؛
باستخدام SdlDotNet. النواة؛
باستخدام SdlDotNet. الرسومات. البدائيون
الطبقة العامة ex1
{
ثابت خاص int wwidth = 1024 ؛
كونت الخاص intight = 768 ؛
شاشة سطح ثابتة خاصة ؛
خاص ثابت عشوائي R = جديد Random () ؛
الفراغ الثابت العام الرئيسي (string [] args)
{
شاشة = فيديو. SetVideoMode (wwidth ، wheight ، 32 ، false ، false ، false ، true) ؛
الأحداث. TargetFps = 50 ؛
الأحداث. Quit + = (QuitEventHandler) ؛
الأحداث. ضع علامة + = (TickEventHandler) ؛
الأحداث. يركض() ؛
}
الفراغ الثابت الخاص QuitEventHandler (مرسل الكائن ، QuitEventArgs args)
{
الأحداث. QuitApplication () ؛
}
TickEventHandler الفراغ الثابت الخاص (مرسل الكائن ، أقواس TickEventArgs)
{
for (var i = 0؛ ط <17 ؛ ط ++)
{
var rect = مستطيل جديد (نقطة جديدة (r. التالي (عرض - 100) ، ص. التالي (ويت -100)) ،
حجم جديد (10 + ص. التالي (عرض - 90) ، 10 + ص. التالي (صقيل - 90))) ؛
var Col = اللون. FromArgb (ص. التالي (255) ، ص. التالي (255) ، ص. التالي (255)) ؛
var CircCol = اللون. FromArgb (ص. التالي (255) ، ص. التالي (255) ، ص. التالي (255)) ؛
نصف القطر القصير = (قصير) (10 + ص. التالي (صقيل - 90)) ؛
var Circ = دائرة جديدة (نقطة جديدة (ص. التالي (عرض - 100) ، ص. التالي (wheight-100)) ، نصف القطر) ؛
شاشة. تعبئة (مستقيمة ، عمود) ؛
Circ. رسم (شاشة ، سيركول ، خطأ ، صحيح) ؛
شاشة. تحديث() ؛
فيديو. WindowCaption = الأحداث. Fps. إلى سلسلة() ؛
}
}
}

يوفر الفيديو طرقًا لضبط وضع الفيديو ، وإنشاء أسطح فيديو ، وإخفاء مؤشر الماوس وإظهاره ، والتفاعل مع OpenGL. لا يعني ذلك أننا سنبذل برنامج OpenGL لفترة من الوقت.

هنا يتم استخدام كائن الفيديو لتعيين حجم ودقة نافذة اللعبة (ملء الشاشة هو خيار). تتيح لك المعلمات الخاصة بـ SetVideoMode تغيير هذه العناصر وتوفر 13 حمولة زائدة الكثير من التنوع. هناك ملف بتنسيق .chm (تنسيق تعليمات Windows html) في مجلد المستندات يوثق جميع الفئات والأعضاء.

يحتوي كائن الأحداث على معالج أحداث إنهاء يتيح لك إضافة منطق إغلاق ويجب عليك استدعاء الأحداث. QuitApplication () لجعله يستجيب إلى إغلاق المستخدم للتطبيق. الأحداث. قد يكون القراد هو معالج الأحداث الأكثر أهمية. يطلق على معالج الحدث المحدد كل إطار. هذا هو نموذج لجميع تطوير SDL.NET.

يمكنك تعيين معدل الإطارات الذي تريده وتقليل الحلقة إلى 5 وتغيير Targetfps إلى 150 حيث يتم تشغيله بسرعة 164 إطارًا في الثانية. TargetFps هو شخصية ملعب. إنه يؤخر الحصول على قرب هذا الرقم ولكن الأحداث. Fps هو ما يتم تسليمه.

مثل الإصدار الأصلي غير Windowed من SDL ، يستخدم SDL.NET الأسطح للعرض على الشاشة. يمكن إنشاء سطح من ملف رسومات. هناك عدد كبير من الخصائص والأساليب التي تجعل من الممكن قراءة أو كتابة وحدات البكسل أيضًا ارسم بدائي الرسومات ، امسح الأسطح الأخرى ، حتى تفريغ سطح إلى ملف قرص لأخذها لقطات الشاشة.

instagram story viewer