Menu
CoddyTech

גולף גולות

חלק מהיחידה פיזיקה ומשחקיות במסלול ה-Unity של Coddy. שיעור 62 מתוך 63.

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

כתבו שני סקריפטים: Golf על הגולה ו-Hole על הגומה.

challenge icon

אתגר

קשה

ה־Inspector מספק ל־Golf את pointer (הכדור הצהוב הקטן), את aimSpeed (90), את chargeRate (4), את maxPower (6) ואת stopSpeed (0.3). המסה של הגולה היא 0.5.

  • הכוונת היא זווית סביב ציר y, שערכה 0 בתחילת הדרך (ישר קדימה, +z). החץ הימני מסובב אותה ימינה והחץ השמאלי שמאלה, במהירות של aimSpeed מעלות לשנייה. בכל פריים, מקמים את המצביע במרחק של יחידה אחת מהגולה בכיוון הכוונת.
  • הגולה נמצאת במנוחה כשהמהירות שלה נמוכה מ־stopSpeed. בכל צעד פיזיקה, גולה במנוחה נעצרת לחלוטין: המהירות והמהירות הזוויתית מתאפסות.
  • רק כשהגולה במנוחה: החזקת מקש הרווח צוברת עוצמה בקצב של chargeRate לשנייה, אך לא מעבר ל־maxPower, ושחרור מקש הרווח מעיף את הגולה בעוצמת Impulse בכיוון הכוונת. לאחר מכן העוצמה חוזרת ל־0, ומשתנה int strokes ציבורי גדל ב־1, והערך נרשם ביומן בתור Stroke 1.

ה־Inspector מספק ל־Hole את sinkSpeed (3).

  • כשהגולה (האובייקט שעליו מופיע הסקריפט Golf) נכנסת לגומה במהירות נמוכה מ־sinkSpeed, רשמו ביומן את מספר החבטות שלה בתור In the cup in 2 strokes!, והשביתו את הגולה. גולה מהירה יותר תתגלגל מעל הגומה.

לחצו על Play והכניסו את הגולה לגומה בכמה שפחות חבטות, ואז לחצו על Check.

נסו בעצמכם

using UnityEngine;

public class Golf : MonoBehaviour
{
    public int strokes = 0;
    [SerializeField] private Transform pointer;
    [SerializeField] private float aimSpeed = 90f;
    [SerializeField] private float chargeRate = 4f;
    [SerializeField] private float maxPower = 6f;
    [SerializeField] private float stopSpeed = 0.3f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // כוונו בעזרת החצים, טענו בעזרת Space, חבטו כשמשחררים, ועצרו כשהתנועה איטית
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה פיזיקה ומשחקיות