PracticU

פיתוח דמות האויב - חלק 6

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח משחקים יוניטי - Unity - שפת #C › פיתוח דמות האויב - חלק 6
מילון מושגים:
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.

פיתוח דמות האויב - חלק 6
השיעור מחבר את המעברים באנימטור לקוד של האויב. יש שני סוגים: אויב שמפטרל, ואויב שעומד במקום. כשהשחקן נכנס לשדה הראייה, האויב נכנס למצב יריה. אויב שמפטרל מפסיק לפטרל, ואויב שעומד נשאר במקומו ורק יורה.
מכונת המצבים בקוד
1. מצב יריה: נוצרת מתודה ציבורית שמעדכנת את המשתנה shootingState. כשהשחקן נכנס לשדה הראייה, השיטה מופעלת עם true. כשהוא יוצא, היא מופעלת עם false.
2. ירי: מתודה פרטית בשם Shoot מפעילה את הטריגר Shoot באנימטור. בזמן שהאויב במצב יריה, המתודה קוראת לעצמה באמצעות Invoke עם השהיה של שלוש שניות.
3. תנאי עצירה: מכיוון שהמתודה קוראת לעצמה, צריך תנאי שעוצר אותה. כשהמצב כבר לא יריה, הקוד נכנס לענף אחר שמחזיר את האויב למצב פטרול, אם הוגדר כמפטרל.
שימו לב
Invoke מריץ פונקציה אחרי השהיה שמוגדרת בשניות. בלי תנאי עצירה הקוד היה נשאר בלולאה אינסופית.
אחרי השיעור האויב יורה כל שלוש שניות כשהשחקן בשדה הראייה שלו, וחוזר לפטרל כשהשחקן יוצא, אם הוא אויב שמפטרל. הקליע עצמו יתווסף בשיעור הבא.
השיעור הבא בקורס: פיתוח דמות האויב - חלק 7

פרקי ההרצאה: פיתוח דמות האויב - חלק 6

  1. 00:00

    תכנון מעברי האנימציה של האויב

  2. 01:01

    התנהגות האויב כשהשחקן נכנס לשדה הראייה

  3. 01:42

    משתנה פטרול ומצב ירי באנימטור

  4. 02:32

    פונקציית SetShootingState בקונטרולר האויב

  5. 03:33

    עדכון מצב הירי מתוך חיישן השחקן

  6. 04:14

    לוגיקת העדכון בכל פריים ומעברים

  7. 05:04

    פונקציית shoot וירי כל שלוש שניות

תמלול ההרצאה: פיתוח דמות האויב - חלק 6

הטקסט המלא של הדקות הראשונות בהרצאה «פיתוח דמות האויב - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:34

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

  3. 00:51

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

  4. 01:21

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

  5. 01:49

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

  6. 02:16

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

  7. 02:55

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

  8. 03:31

    אוקיי וכרגע אני יכול פשוט להגיד shooting state שווה state והנה עדכנתי את זה. עכשיו בואו נעשה את זה גם בפלייר דיטקטור אז אני לוקח את כל החלק הזה חוץ מהפונקציה turn ופה איפה שזיהיתי כניסה זאת אומרת שהשחקן נכנס לשדה הראייה שלי אני עושה set שוטינג סטייט טרו טרו וכאשר זיהיתי יציאה אני משנה את זה לפולס או פולס ואני יכול גם לבטל את ההדפסה ראינו

  9. 04:14

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

  10. 04:48

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

  11. 05:11

    היא תהיה private void shoot ומה שהיא תעשה כרגע היא רק תפעיל את האנימציה ואנחנו עושים את זה באמצעות set trigger shoot אני מזכיר שוב שבאנימטור יש לי פה trigger shoot וזה מה שעשיתי פה הפעלתי אותו אוקיי זה דבר אחד דבר שני אני רוצה כאמור שהוא יפעל כל שלוש שניות אז אני יכול בעצם להשתמש במנגנון שמפעיל לי פונקציה ב-delay ואני אפעיל את עצמי.

לקורס המלא: קורס פיתוח משחקים ביוניטי

ההרצאה הקודמת: פיתוח דמות האויב - חלק 5

ההרצאה הבאה: פיתוח דמות האויב - חלק 7

הרצאות קשורות מקורסים אחרים

  • שלבי פיתוח של התוכנה
  • מחזור חיי פיתוח
  • מחזור חיים של פיתוח מוצר תוכנה
  • הרצת הטסטים האוטומטיים - פיתוח אנדרואיד

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב