تفاصيل العمل

مرحبًا

مشروع Cub3D، الذي طورته كجزء من مناهج شبكة 42. هذا المشروع هو محرك لعبة ثلاثية الأبعاد يعتمد على تقنية raycasting ، ويهدف إلى محاكاة بيئة ثلاثية الأبعاد باستخدام بيانات خريطة ثنائية الأبعاد. سأشرح لكم كيف يعمل المحرك، والتقنيات التي استخدمتها، والتحديات التي واجهتها أثناء تطويره."

كان الهدف الرئيسي هو تطوير محرك قادر على رسم عالم ثلاثي الأبعاد باستخدام خريطة 2D، مع تقديم منظور ثلاثي الأبعاد من خلال تقنية raycasting، وكذلك السماح بحركة اللاعب داخل هذا العالم.

المفاهيم التقنية الرئيسية

تقنية Raycasting

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

كيف تعمل التقنية؟:

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

تمثيل الخريطة 2D

"العالم داخل اللعبة يتم تمثيله باستخدام شبكة 2D، حيث تمثل كل خلية في الشبكة إما جدارًا أو مساحة فارغة. يتم تحديث موضع اللاعب باستمرار أثناء تحركه عبر هذه الخريطة، ويتم رسم الشاشة بناءً على موضع اللاعب وزاويته.

عملية rendring (العرض)

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

ملفات مرفقة

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
عدد المشاهدات
9
تاريخ الإضافة
تاريخ الإنجاز
المهارات