الطعام
الدرس 5 من 14 في دورة لعبة الثعبان ثلاثية الأبعاد في Unity على Coddy.
يقع الطعام على خلية عشوائية. إحداثيات الخلايا أعداد صحيحة، لذا اختر x وz باستخدام نسخة int من Random.Range. مع الأعداد الصحيحة، لا يشمل الحد الأقصى: فـRandom.Range(1, 7) يرمي نردًا ويعطي عددًا من 1 إلى 6، ولا يعطي 7 أبدًا. لتضمين عدد، اطلب العدد الذي يليه.
مع الوسيطات العشرية، تعيد Random.Range أي عدد بينهما، مثل 3.62، وهذا ليس في منتصف خلية، لذا لن تلتقي الأفعى بالطعام أبدًا. صندوق على شبكة 10 × 10 بخلايا من 0 إلى 9:
int row = Random.Range(0, 10); // من 0 إلى 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);تحتوي اللوحة على طعام واحد في كل مرة، لذا تنشئه اللعبة مرة واحدة في Start()، وتنقله كلما احتاجت إلى مكان جديد. يتولى GameManager إدارة الطعام، ويقرأ حجم اللوحة من edge الخاص بالأفعى عبر حقل snake.
التحدي
متوسطأكمل GameManager. يعيّن المشهد snake إلى ثعبان الرأس وfoodPrefab إلى كرة حمراء.
- أضف
public Snake snake;وpublic GameObject foodPrefab;وprivate Transform food;. - في
Start()، أنشئ نسخة منfoodPrefab، واحتفظ بـ Transform الخاص بها فيfood، واستدعِMoveFood(). - اكتب
void MoveFood(): تضعfoodعلى خلية عشوائية، بحيث تكون قيمتا x وz من-snake.edgeإلىsnake.edge، وتكون y تساوي 0.
اضغط على Play وابحث عن الطعام على اللوحة، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class GameManager : MonoBehaviour
{
// يدير اللعبة: الطعام والنقاط وانتهاء اللعبة. سيُستكمل في الفصل 2.
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.