Menu
CoddyTech

לבנים קשיחות

שיעור 7 מתוך 16 בקורס משחק Unity: שובר לבנים של Coddy.

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

מערך צבעים שממולא ב־Inspector ממפה את הספירה לצבע. איבר 0 הוא הצבע כשנותרה מכה אחת, איבר 1 כשנותרו שתיים, לכן הצבע עבור ספירה של n הוא איבר n - 1. מגן עם מטענים פועל באותו אופן:

public Color[] chargeColors;   // רכיב 0: נותרה טעינה אחת

void ShowCharges(int charges)
{
    GetComponent<Renderer>().material.color = chargeColors[charges - 1];
}

קריאה של material נותנת ל־renderer הזה עותק משלו של החומר בפעם הראשונה, כך שמגן אחד, או לבנה אחת, משנים צבע בלי לצבוע מחדש כל עותק של ה־prefab. GameManager קובע כמה עמידה תהיה כל לבנה חדשה: int[] עם מספר אחד לכל שורה, החל מהשורה העליונה, מאפשר לשורה העליונה לספוג יותר מכות משאר השורות.

challenge icon

אתגר

בינוני
  1. ב־Brick, הוסף public int hits = 1 ואת public Color[] colors. הסצנה ממלאת את colors בכחול, כתום ואדום, עבור 1, 2 ו־3 פגיעות שנותרו.
  2. כתוב public void SetHits(int count): הפונקציה מגדירה את hits ומציגה את צבע הלבנה המתאים.
  3. שנה את Hit(): הפחת 1 מ־hits. כשהערך מגיע ל־0 הלבנה נשברת ומתווספות נקודות כמו קודם; אחרת, היא רק מציגה את הצבע החדש שלה.
  4. ב־GameManager, הוסף public int[] rowHits = { 2, 1, 1, 1, 1 }; והגדר לכל לבנה חדשה את מספר הפגיעות rowHits[row] באמצעות SetHits.

לחץ על Play, החלש לבנה כתומה בשורה העליונה, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class Brick : MonoBehaviour
{
    public int points = 10;

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Ball")) Hit();
    }

    public void Hit()
    {
        GameManager.Instance.BrickBroken(this);
        Destroy(gameObject);
    }
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה משחק Unity: שובר לבנים