إنشاء لعبة منصات ثنائية الأبعاد بسيطة في Unity
في هذا البرنامج التعليمي، سننشئ لعبة منصات ثنائية الأبعاد أساسية في Unity. سيتضمن ذلك إنشاء شخصية لاعب يمكنها التحرك والقفز والتفاعل مع المنصات. سنضيف أيضًا بعض عناصر اللعبة الأساسية مثل العقبات والعناصر القابلة للتجميع.
1. إعداد المشروع
لنبدأ بإعداد مشروع جديد ثنائي الأبعاد Unity:
- افتح Unity وقم بإنشاء مشروع ثنائي الأبعاد جديد.
- انتقل إلى ملف > مشهد جديد وحدد الوضع ثنائي الأبعاد.
- احفظ المشهد باسم MainScene.
2. إنشاء شخصية اللاعب
سنقوم أولاً بإنشاء شخصية لاعب بسيطة باستخدام صورة متحركة وإضافة وظيفة الحركة:
- انقر بزر الماوس الأيمن في نافذة Hierarchy وحدد Create Empty. قم بتسمية هذا الكائن Player.
- قم بإضافة مكون Sprite Renderer إلى كائن المشغل عن طريق النقر فوق Add Component في Inspector.
- حدد صورة متحركة لاستخدامها كشخصية، إما عن طريق إنشاء صورة متحركة خاصة بك أو استيراد أصل ثنائي الأبعاد من Unity Asset Store.
- أضف Rigidbody2D وBoxCollider2D إلى كائن المشغل للفيزياء واكتشاف الاصطدام.
3. كتابة نص حركة اللاعب
الآن، دعنا نكتب نصًا للسماح للاعب بالتحرك والقفز. اتبع الخطوات التالية:
- انقر بزر الماوس الأيمن في نافذة Project واختر Create > C# Script. ثم أطلق عليه اسم PlayerController.
- قم بإرفاق هذا البرنامج النصي إلى كائن المشغل عن طريق سحبه من نافذة المشروع إلى المشغل في التسلسل الهرمي.
استبدل محتويات البرنامج النصي بما يلي:
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float moveSpeed = 5f;
public float jumpForce = 7f;
private Rigidbody2D rb;
private bool isGrounded = true;
void Start()
{
rb = GetComponent();
}
void Update()
{
// Player movement
float moveInput = Input.GetAxis("Horizontal");
rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);
// Jumping
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
isGrounded = false;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
// Check if player is touching the ground
if (collision.collider.CompareTag("Ground"))
{
isGrounded = true;
}
}
}
4. إنشاء المنصات والبيئة
الآن سنقوم بإنشاء منصات للاعب للقفز عليها:
- في التسلسل الهرمي، انقر بزر الماوس الأيمن وحدد إنشاء فارغ، ثم قم بتسميته المنصة.
- أضف BoxCollider2D وSprite Renderer إلى المنصة.
- حدد صورة متحركة للمنصة (على سبيل المثال، مستطيل مسطح).
- قم بنسخ المنصة بالضغط على Ctrl+D (أو Cmd+D على جهاز Mac) ثم ضع النسخ لإنشاء مستوى.
- قم بوضع علامة على هذه الكائنات كـ Ground في المفتش لمنطق القفز الخاص باللاعب.
5. إضافة العوائق
ولجعل اللعبة أكثر تحديًا، دعونا نضيف بعض العقبات:
- قم بإنشاء GameObject فارغ آخر وأطلق عليه اسم Obstacle.
- أضف BoxCollider2D وSprite Renderer إلى هذا الكائن.
- اختر رسمًا للعائق (على سبيل المثال، مسمار أو خطر).
- في طريقة OnCollisionEnter2D الخاصة باللاعب، يمكنك اكتشاف الاصطدامات مع العوائق وإعادة تشغيل اللعبة أو خصم الصحة.
6. إضافة المقتنيات
يمكننا أيضًا إضافة عناصر قابلة للتجميع، مثل العملات المعدنية أو عناصر تعزيز القوة:
- قم بإنشاء GameObject فارغ آخر وأطلق عليه اسم Collectible.
- أضف CircleCollider2D (قم بتعيينه كمحفز) وSprite Renderer لتمثيل العناصر القابلة للتجميع.
- اكتب نصًا بسيطًا للكشف عن متى يجمع اللاعب عنصرًا:
using UnityEngine;
public class Collectible : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
// Add points or other effects here
Destroy(gameObject); // Remove the collectible from the scene
}
}
}
7. اختبار اللعبة وتعديلها
الآن بعد أن أصبحت الميكانيكا الأساسية جاهزة، يمكنك اختبار اللعبة بالضغط على زر التشغيل. حاول ضبط ما يلي:
- قم بتعديل قيمتي moveSpeed وjumpForce لتعديل سرعة تحرك اللاعب وقفزاته.
- نسخ المنصات والعقبات لإنشاء مستويات مختلفة.
- أضف عناصر خلفية أو زخارف لجعل اللعبة جذابة بصريًا.
8. تحسين منصة الألعاب
لرفع مستوى لعبتك إلى المستوى التالي، فكر في إضافة:
- رسوم متحركة للاعب، مثل رسوم متحركة للمشي والقفز.
- مؤثرات صوتية للقفز وجمع العناصر وضرب العوائق.
- كاميرا تتبع حركات اللاعب للحصول على رؤية أكثر ديناميكية للعبة.
خاتمة
بفضل إعداد لعبة المنصات ثنائية الأبعاد البسيطة هذه، أصبح لديك الآن بنية أساسية للعبة يمكن توسيعها بمزيد من الميزات والمستويات والتحسينات. جرِّب آليات مختلفة وأنشئ لعبة منصات فريدة خاصة بك.