Menu
CoddyTech

בונה המגדלים

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

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

כתבו את כל המשחק בסקריפט אחד, Crane, שעל העגורן.

challenge icon

אתגר

קשה

כתבו את הסקריפט Crane על ה־Crane. ב־Inspector מגדירים את blockPrefab (ה־prefab של ה־Block), את top (ה־Base, החלק העליון של הערימה עד כה), את craneSpeed (3), את craneEdge (4) ואת fallSpeed (7).

  • העגורן נע לאורך ציר x במהירות של craneSpeed יחידות לשנייה. אחרי שהוא עובר את craneEdge, הוא מסתובב וחוזר שמאלה, ואחרי שהוא עובר את -craneEdge, הוא מסתובב וחוזר ימינה.
  • לחיצה על Space או לחיצה שמאלית בעכבר מפילה Block בנקודת ה־x של העגורן, יחידה אחת מתחת לעגורן. כל עוד בלוק נופל, לחיצות נוספות לא עושות דבר.
  • הבלוק הנופל נע כלפי מטה במהירות של fallSpeed יחידות לשנייה.
  • כאשר ערך ה־y שלו יורד לערך ה־y של top ועוד 1, והמרחק בין ערך ה־x שלו לערך ה־x של top קטן מ־1, הוא נוחת: הגדירו את ערך ה־y שלו בדיוק לערך ה־y של top ועוד 1, הפכו אותו ל־top החדש, והדפיסו את גובה הערימה כך: Stack: 1, Stack: 2 וכן הלאה.
  • בלוק שאינו נוחת ממשיך ליפול. מתחת ל־y = -3, השמידו אותו והדפיסו Missed!.

לחצו על Play ובנו מגדל, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class Crane : MonoBehaviour
{
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private Transform top;
    [SerializeField] private float craneSpeed = 3f;
    [SerializeField] private float craneEdge = 4f;
    [SerializeField] private float fallSpeed = 7f;

    void Update()
    {
    }
}
quiz iconבחנו את עצמכם

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

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