Menu
CoddyTech

שלושה חיים

חלק מהיחידה יסודות התכנות ב-Unity במסלול ה-Unity של Coddy. שיעור 41 מתוך 67.

challenge icon

אתגר

בינוני

שלוש החטאות מסיימות את המשחק. הוסף [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