اللوحة
الدرس 1 من 14 في دورة لعبة Unity: الثعبان ثلاثي الأبعاد على Coddy.
في هذه الدورة، ستبني لعبة Snake ثلاثية الأبعاد: ثعبانًا من المكعبات على لوحة مقاسها 15 في 15 تُرى من الأعلى. يتحرك خليةً واحدةً في كل مرة، وينعطف باستخدام الأسهم أو WASD، ويأكل وينمو ويموت عند الجدران أو عند ذيله. يتولى Snake تحريك الرأس؛ ويظل GameManager فارغًا حتى يظهر الطعام. يشغّل زر «العب» اللعبة؛ ويقيّم زر «تحقق» الحل.
عرض الخلايا وحدة واحدة، وتقع إحداثياتها على أعداد صحيحة من -7 إلى 7. لا ينزلق الثعبان أبدًا: بل يقفز خلية كاملة عند كل نبضة، وهي إيقاع ثابت، ويظل ساكنًا فيما بين النبضات. النبضة مؤقّت: أضف Time.deltaTime في كل إطار، وعندما يصل إلى مدة النبضة، نفّذ الحركة واطرح مدة النبضة:
timer += Time.deltaTime;
if (timer >= 0.5f)
{
timer -= 0.5f;
Step();
}إن طرح مدة النبضة بدلًا من ضبط المؤقّت على 0 يحافظ على الجزء الزائد من الإطار، فلا تتأخر النبضات بمرور الوقت. استخدم الحقل tick، لا رقمًا.
التحدي
سهلاجعل الرأس يتحرك خلية واحدة في كل نبضة.
- في
Snake، أضفprivate float timer; - في
Update()، أضفTime.deltaTimeإلى timer؛ عندماtimer >= tick، اطرح منه tick واستدعِStep(). - في
Step()، أضفdirectionإلىtransform.position.
اضغط «العب»: يتحرك الرأس إلى اليمين، خليةً تلو الأخرى، خارج اللوحة مؤقتًا. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class Snake : MonoBehaviour
{
public float tick = 0.15f; // الثواني بين خطوتين
private Vector3 direction = Vector3.right;
void Update()
{
// كل tick ثانية، نفّذ Step() مرة واحدة
}
void Step()
{
// حرّك الرأس خلية واحدة باتجاه direction
}
}
جميع دروس لعبة Unity: الثعبان ثلاثي الأبعاد
تدرّب بنفسك: Playground لـ Unity