Menu
CoddyTech

לשרוד ולצבור נקודות

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 80 מתוך 85.

השלב הזה משלים את ״התחמקו מהבלוקים״: טיימר שמייצר בלוקים, רשימה שזזה ומתנקה, בדיקת פגיעה וניקוד שסופר את השניות. (int) לפני מספר עשרוני מסיר את החלק השברי שלו.

challenge icon

אתגר

בינוני

הוסיפו ניקוד, ובלוקים שנופלים מהר יותר ויותר.

  1. הוסיפו private float score; ואת [SerializeField] private float speedUp = 0.2f;.
  2. בתחילת Update(), הוסיפו את Time.deltaTime ל־score ואת speedUp * Time.deltaTime ל־fallSpeed.
  3. במקרה של פגיעה, הציגו ביומן את "Game over! Score: " + (int)score. הערך (int) מסיר את החלק השברי: 12.7 יוצג בתור 12.

לחצו על "שחק" והישארו בחיים: פגיעה תציג ביומן את הניקוד שלכם. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using System.Collections.Generic;
using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private float spawnEvery = 1f;
    [SerializeField] private float fallSpeed = 5f;

    private List<GameObject> blocks = new List<GameObject>();
    private float timer;

    void Update()
    {
        Vector3 p = transform.position;
        p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
        p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
        transform.position = p;

        timer += Time.deltaTime;
        if (timer >= spawnEvery)
        {
            timer -= spawnEvery;
            Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
            blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
        }

        for (int i = blocks.Count - 1; i >= 0; i--)
        {
            blocks[i].transform.position += Vector3.down * fallSpeed * Time.deltaTime;
            Vector3 b = blocks[i].transform.position;
            if (Mathf.Abs(b.x - transform.position.x) < 1f && Mathf.Abs(b.y - transform.position.y) < 1f)
            {
                Debug.Log("Game over");
                enabled = false;
                return;
            }
            if (b.y < -1f)
            {
                Destroy(blocks[i]);
                blocks.RemoveAt(i);
            }
        }
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות הסקריפטים ב-Unity

תרגלו בעצמכם: Unity אונליין