Menu
CoddyTech

מהר יותר ויותר

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

challenge icon

אתגר

בינוני

כל תפיסה גורמת לכוכבים ליפול מהר יותר. הוסף [SerializeField] private float speedUp (הסצנה מגדירה אותו ל־0.5) והוסף אותו ל־fallSpeed בכל פעם שכוכב נתפס. כוכב שפוספס לא משנה את המהירות. השאר את כל מה שנוסף בשלבים הקודמים.

נסו בעצמכם

using UnityEngine;

public class Catcher : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private Transform star;
    [SerializeField] private float fallSpeed = 3f;
    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++;
            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