ثلاث حيوات
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 41 من 67.
التحدي
متوسطثلاث مرات إخفاق تُنهي اللعبة. أضف [SerializeField] private int lives (يضبطه المشهد على 3).
- كل نجمة تفوتك تُنقص حياة، وتُسجّل
Missed! Lives: 2مع عدد الأرواح المتبقية. - عندما يصل عدد الأرواح إلى 0، سجّل أيضًا
Game overوأوقف السكربت باستخدامenabled = false. يتوقف Unity عن استدعاءUpdate()في السكربت المعطّل، لذا تتوقف النجمة عن السقوط ولا يعود الماسك يتحرك.
ما زال التقاط النجوم يزيد النقاط ويُسرّعها. احتفظ بكل شيء من الخطوات السابقة.
جرّب بنفسك
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private Transform star;
[SerializeField] private float fallSpeed = 3f;
[SerializeField] private float speedUp = 0.5f;
private int score;
void Update()
{
float x = transform.position.x;
if (Input.GetKey(KeyCode.RightArrow))
{
x += speed * Time.deltaTime;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
x -= speed * Time.deltaTime;
}
x = Mathf.Clamp(x, -4f, 4f);
transform.position = new Vector3(x, transform.position.y, transform.position.z);
star.position += Vector3.down * fallSpeed * Time.deltaTime;
if (Vector3.Distance(transform.position, star.position) < 1f)
{
score++;
fallSpeed += speedUp;
Debug.Log("Caught! Score: " + score);
ResetStar();
}
else if (star.position.y < 0f)
{
ResetStar();
}
}
void ResetStar()
{
star.position = new Vector3(Random.Range(-4f, 4f), 6f, 0f);
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر