الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجوا المساعده لصنع للعبه

مغلق
بدأه dina ramadan في 11 يونيو 2007 · 16 رد · 1,921 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لسلام عليكم ورحمه الله وبركاته

انا مبرمجه سى شارب ودركت من المنتدى ان يلزمنى لكى ابرمج للعبه ان استخدم الDirect X ولكنى لا افهم كيف استخدم هذا الشىء لكى ابرمج للعبه

فلقد بحثت كثيرا على النت لكى استطيع فهمه ولكنى فشلت ... ولم اجد سوى اكواد لا افهم كيفيه استخدامها فى برمجه اللعبه

لذلك ارجوا ان يساعدنى احد بمثال للعبه بسيطه تشرح لى لماذا استخدم هذا الشىء ؟ وكيف؟ وفيم استخدمه؟؟؟؟

هذا اول طلب لى فى المنتدى ارجوا ان يفيدنى احد

والسلام عليكم ورحمه الله وبركاته

#2

راجع المواضيع المثبته.

#3

شكرا على اهتمام حضرتك

لكن انا فعلا قرأت المواضيع المثبته .. بس المشكله ان انا اريد ان افهم كيف استخدم الDirect X لابرمج لعبه لاسى شارب يعنى اهميتها ايه ؟

انا للاسف مش لاقيه ولا للعبه بالسى شارب وانا لا املك الا هذه اللغه ولذلك اريد برمجه للعبه باستخدامها

ممكن حد يدلنى على كتاب كويس لتعليم الDirect X للغه السى شارب؟

وما اهميتها لصنع اللعبه ؟

#4

Microsoft DirectX is a (Large Library): a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms,

More

تم تعديل هذه المشاركة بواسطة hazzoom في 12 يونيو 2007 في 04:32

#5

نفس الدوامة يدخلها كل من يخطر بباله فكرة "أريد أن أصنع لعبة".... وبالتالي هذا الغموض والتشوش الذي تحسين به طبيعي.

لأختصر لك الموضوع، ولتكون الأمور أسهل لاحقا خذيها من الآخر: تحتاجين إلى تعلم سي بلس بلس كلغة برمجة، بعد ذلك تتعلمين الدايركت اكس.

Direct3D هو برنامج يعمل على تحويل برنامجك (اللعبة) إلى مادة قابلة للعرض على الشاشة (طبعا هذا الكلام غير دقيق، ولكنك كبداية اقبلي بهذا الوصف).

Direct3D هو جزء من DirectX الذي تسألين عنه، وهو الجزء الأهم بالنسبة لك الآن، لذا لا تهتمي بباقي DirectX حاليا، اسألي فقط عن Direct3D

للتتعاملي مع Direct3D يجب أن تتعلمي قليلا من برمجة ويندوز، وهي تسمى: Windows API Programming

من أجل C++ يمكنك تعلمها:

http://lib.daemon.am/Books

ستجدين عنوان سي بلس بلس للمبتدئين.

من أجل برمجة ويندوز:

http://winprog.org/tutorial

لا عليك، لست مضطرة لقراءة كل المنهاج، المهم هو فقط أن تتمكني من حجز نافذة ضمن ويندوز، وهي التي ستكون نافذة لعبتك.

من أجل تعلم Direct3D أنصحك بكتاب:

"Microsoft Direct3D Programming" من دار نشر SAMS المشهورة، ورقم الكتاب: ISBN 0672324989

أخيرا عليك مطالعة بعض المواد (كي تعرفي عم يتحدث الكتاب):

Hardware Accelerated Graphics

3D terms

ولكن للقيام بالبرمجة الفعلية عليك الحصول على:

Microsoft Visual Studio

DirectX SDK

#6

شكرا لكل من اهتم بالموضوع وافادنى

بس هو انا كان عندى استفسار ... لا يجوز ان ابرمج لعبه بلغه السى شارب بدلا من السى بلاس بلاس

#7

ممكن حضرتك تنزل الكتاب ده على المنتدى

#8

ممكن طبعا صناعة العاب باى لغة برمجة لكن افضلهم السى وبعدها السى شارب انا مش فاكر رايت كتاب يشرح بالسى شارب لكن مش متذكر فين لو اتكعبلت فيه هحطه فى الموضوع

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#9

الكتاب موجود عندي ليس ملف، بل ورق، أيضا بالنسبة لبرمجة ويندوز ستجدين في الموقع المذكور دروس بالعربي على ملف pdf ولكن انتبهي لمشكلة أن الكود التي تتعدى صفحة ستسقط سطرا كاملا من الكود دون أن تلحظي شيئا إلى وقت التنفيذ، فأبقي على الكود من المصدر الأجنبي.

أعرف أنك سألت عن سي شارب، ولكن عملية صنع لعبة ليست لعبة!! بل هي عملية بها الكثير من المعوقات، والكارثة التي ستحصل هو أنك بالإضافة لتلك المعوقات الموجودة حتما وأصلا، فإنك تضيفين معوقات جديدة سببها ضعف هذه اللغة أو تلك.

أنا أحاول تجنيبك (وكل من يقرأ) ما وقعت فيه، نظريا ممكن صنع لعبة بأي لغة، ولكن العراقيل ستبدأ بالظهور لاحقا.. وإذا أردت بعض هذه المشاكل:

- سؤالك نفسه يدل على عدم توفر مراجع كافية للسي شارب والألعاب، لأن المعيار هو سي بلس بلس و سي

- عدم ملاءمة اللغة للهدف المطلوب، العديد من اللغات موجودة إما لخل مسائل بسيطة دون اللجوء لتعقيدات اللغات الصعبة والقوية أصلا (Basic مثال عن هذا)، أو تكون اللغة نفسها متخصصة بموضوع معين (Php مثال عن هذا النوع)

نظريا يمكنك عمل لعبة بلغة بيسك، ولكن هل الأداء والسرعة في هذه اللغة كاف؟

أنا أجيد الجافا وال OpenGL وهو شبيه بال Direct3D ولكن عندما وصلت إلى مواضيع الأداء، أخذت تتكشف لي مواقع ضعف هذه اللغة بالنسبة للألعاب 3D، وهذا جعلني أنتقل، رغم أن الجافا أسهل بكثير!!!

#10

انا مع حضرتك ان لغه السى والسى بلاس بلاس احسن لصنع لعبه .. لكن انا اكيد سابدا بصنع لعبه بسيطه كالثعبان مثلا وهذا باسى شارب الى ان اتقن وادرس لغه السى بلاس بلاس او السى .

#11

لغة السي شارب مناسبة أيضاً للألعاب ويمكن أفضل من لغة سي ++ من ناحية التطوير, والأداء الذي تقدمه سي شارب يصل إلى 90% من الأداء الذي تقدمه السي ++ ولكن في مقابل ذلك فإن السي شارب تتميز بسرعة وسهولة التطوير نسبة للـ سي ++, ولكن المشكلة إنه إلى حد هذه اللحظة لم تستخدم أي شركة ألعاب لغة السي شارب لصنع أي لعبة!

dina ramadan: حالياً هنالك ثلاثة أنواع من الواجهات المرتبطة بالـ DirectX والتي يمكن إستخدامها لبرمجة الألعاب عبر الـ #C, هنالك الـ Managed DirectX 1.1 والتي هي النسخة الرائجة, لقد وجد إنها تحتوي على بعض المشاكل, ولكنها عموماً جيدة.

وكذلك Managed DirectX 2.0 والمفروض أن يكون أفضل من 1.1 ولكن للأسف فلقد أصدرته مايكروسوفت كنسخة تجريبية (بيتا) إذ أنه يحتوي على ما يسمى الآن بالقنبلة الزمنية Time Bomb أي إنه مصمم ليتوقف عمله عند تاريخ معين.

تبقى المشكلة إن شركة مايكروسوفت لم تعلن عن أي خطط لتطوير الـ Managed DirectX, مما يعني إن هنالك فقط 1.1 وقد لا تصدر أي نسخة جديدة في المستقبل.

الحل الثالث والأحدث حالياً هو الـ XNA وهو يمتلك قدرات مشابهه للـ Managed DirectX 2.0 ولكنه يقدم واجهة أبسط وأكثر ملائمة لصنع الألعاب, ميزة الـ XNA الرئيسية إن ألعابه تعمل على الوندوز وعلى جهاز الـ XBOX360. وكذلك إن مايكروسوفت تخطط لتطويره وإصدار نسخ جديدة حسب علمي.

يبقى الإختيار لك, انا شخصياً إخترت XNA لأن مستقبله يبدو أفضل من MDX ولكن XNA لم تصدر عنه كتب بعد (حسب علمي) لأنه جديد نسبياً بينما هنالك كتب عديدة عن MDX.

أتمنى أن أكون قد ساعدت :)

#12

في هذه الحالة لست بحاجة إلى DirectX !! هذا خبر جيد، لأن الدايركت اكس مهمته الأساسية هي التعامل مع الرسوميات بشكل فعال وبالذات الرسوميات ثلاثية الأبعاد، أما في حالة الألعب البسيطة فلست بحاجة لمعالجة الرسوميات عن طريق دايركت اكس.

معظم مسائل اللعبة تستطيعين حلها بواسطة أي لغة، ويبقى مسألتين هامتين: 1-كيف تعرضين رسوم اللعبة على الشاشة. 2- كيف تستقبلين مدخلات المستخدم أو اللاعب.

والمسألة الأولى ليست لها علاقة بمحتوى اللعبة نفسه، وبالتالي يمكنك البحث عن دروس (رسوميات في سي شارب) بدلا من (لعبة بواسطة سي شارب)، إن قهمت ما أقصد، ستعرفين بأننا استطعنا التعرف على أصل المشكلة التي تواجهين، وهو كيفية إخراج محتويات اللعبة على الشاشة، لذلك إبدئي بالبحث عن (C# Graphics tutrial) أيضا أظن أن لديك مكتبة اسمها Drawing في اللغة، وكبداية:http://www.developer.com/net/csharp/article.php/1435391

المسألة الثانية تتعلق بما يسمى معالجة الأفعال Event Handling وحتما يوجد آلية في لغتك لهذا الموضوع.

هكذا نكون فد تمكنا من حصر المشكلة في إطارها الصحيح، أرجو أن يكون هذا قد أفادك وأن تطلعينا عن عما يجري. أما إن كان هذا غير مناسب للمشكلة لديك فأرجو التوضيح. والله ولي التوفيق.

ملاحظة:

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

#13

السلام عليكم

يمكنك برمجة الالعاب الثنائية بالسي شارب مباشرة عبر المكتبة + GDI و بصراحة فضاء الاسماء System.Drawing.Drawing2D مذهل

و يحتوي على كل ما تحتاجينه لعمل لعبة ثنائية البعد

و من المميزات الجميلة فيه استخدام الماتريكس لاجراء التحويلات مثل الانسحاب و الدوران

و دوال الرسم بكافه انواعها

و طالما انك تملكين خبرة في السي شارب فقط ما تحتاجينه هو نظره على دوال الرسم في فضاء الاسماء Drawing2D و البدء بتصميم اللعبة

اخيرا

طبعا اتفق مع الاخوان ان السي ++ هي الافضل و ان كنت اعتبر OpenGL انسب اكثر من DirectX رغم مميزات الاخير الكثيرة و شموليته

و هي وجهة نظري الشخصية مع اني كنت من انصار DirectX في بداية مشواري

تحياتي

#14

طيب ممكن حضرتك تدلنى على اسم كتاب او موقع تعليمى عن الDrawing2D

#15

السلام عليكم

في الحقيقة لا اعرف كتاب يشرح فضاء الاسماء Drawing2D بشكل موسع

لكن هذا الموقع يحتوي العديد من الكتب التي تشرح سي شارب

قسم كتب السي شارب

و في هذا القسم كتب خاصة بالدوت نت

قسم كتب الدوت نت

اذا كنتي تجهلين طريقة استخدام فضاء الاسماء Drawing و Drawing2D فالموضوع سهل تحتاجين لانشاء كائن Graphics

و يمكن انشاءه بعدة طرق مثل استخدام النافذة او وضع اداة صورة على النافذة ثم كتابة الكود التالي

 Graphics gx = this.pictureBox1.CreateGraphics();

بعد انشاء كائن الجرافيكس تتاح لك وظائف الرسم مع ملاحظة ان معظم الدوال تحتاج لقلم او فرشاة

و يمكن انشاء القلم كالتالي

	 Pen blackPen = new Pen(Color.Black, 3);

مثال رسم خط

نقوم بانشاء كائن جرافيكس و كائن قلم و نعطي كائن القلم خصائص مثل سمك الخط و لونه

ثم نستدعي دالة انشاء خط و هي عدة دواله احدها يطلب قلم و احداثي نقطتين ويرسم الخط

Graphics gx = this.pictureBox1.CreateGraphics();
Pen blackPen = new Pen(Color.Black, 3);
gx.DrawLine(blackPen, 0, 0, 100, 100);

نريد انشاء مربع بتعبئة متدرجه

نقوم بانشاء فرشاة متدرجة و تطلب لانشاءها نقطة بداية التدرج و نقطة نهاية التدرج اللون الاول اللون الثاني

ثم نقوم باستدعاء دالة انشاء رسم تعبئة مربع و تحتاج الفرشاة و اربعة نقاط للمربع

 Graphics gx = this.pictureBox1.CreateGraphics();
 LinearGradientBrush  MyBrush = new  LinearGradientBrush (new Point(0,0),new Point(100,100),Color.Red,Color.Black);
gx.FillRectangle(MyBrush, 0, 0, 100, 100);

هنااااااااااااك الكثير من المميزات رسم ايقونات و صور و نصوص و اجراء التحويلات

يمكن اكتشافها بنفسك

تحياتي

هذا الموضوع مغلق.

مواضيع مشابهة