Menu
CoddyTech

אוכל

שיעור 5 מתוך 14 בקורס משחק Unity: נחש בתלת־ממד של Coddy.

האוכל נמצא בתא אקראי. התאים הם מספרים שלמים, לכן בוחרים את x ואת z באמצעות גרסת int של Random.Range. כשמשתמשים במספרים שלמים, הערך המרבי אינו נכלל: הקריאה Random.Range(1, 7) מטילה קובייה ומחזירה מספר בין 1 ל־6, לעולם לא 7. כדי לכלול מספר, מבקשים מספר גדול ממנו באחד.

עם ארגומנטים מסוג float, Random.Range מחזירה כל מספר ביניהם, למשל 3.62, שאינו במרכזו של תא, ולכן הנחש לעולם לא יפגוש את האוכל. תיבה על רשת בגודל 10 על 10, עם תאים מ־0 עד 9:

int row = Random.Range(0, 10);      // מ-0 עד 9
int column = Random.Range(0, 10);
chest.position = new Vector3(column, 0f, row);

הלוח מכיל אוכל אחד בכל פעם, לכן המשחק יוצר אותו פעם אחת, ב־Start(), ומזיז אותו בכל פעם שהוא זקוק למיקום חדש. GameManager מנהל את האוכל, וקורא את גודל הלוח מתוך edge של הנחש דרך שדה snake.

challenge icon

אתגר

בינוני

השלם את GameManager. הסצנה מגדירה את snake כ-Snake של הראש ואת foodPrefab ככדור אדום.

  1. הוסף public Snake snake;, public GameObject foodPrefab; ו-private Transform food;.
  2. ב-Start(), צור מופע של foodPrefab, שמור את ה-Transform שלו ב-food וקרא ל-MoveFood().
  3. כתוב void MoveFood(): הפונקציה מציבה את food בתא אקראי, כאשר x ו-z הם כל אחד בטווח שבין -snake.edge ל-snake.edge, ו-y הוא 0.

לחץ על Play ומצא את האוכל על הלוח, ואז לחץ על Check.

נסו בעצמכם

using UnityEngine;

public class GameManager : MonoBehaviour
{
    // מנהל את המשחק: האוכל, הניקוד וסיום המשחק. פרק 2 משלים את המימוש.
}
quiz iconבחנו את עצמכם

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

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