1 of 18

2 of 18

משחק אחד - הרבה דמויות

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

בכל משחק שאנחנו משחקים יש בהחלט דמויות רבות.

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

3 of 18

אתגרים של תקשורת

האתגר בפיתוח משחק אינו רק בריבוי הדמויות, אלא (בעיקר) בתקשורת ביניהן.

למה הכוונה במילה "תקשורת"?

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

איך נגרום בקוד לכך שכל המכוניות ידעו שכאשר הדגל יורד הן יכולות לצאת לדרך?

נצטרך לשדר מסר כזה. מסר הוא הדרך שלנו בסקראצ' ליצור תקשורת בין דמויות שונות. מוזמנים לנסות!

4 of 18

משדרים מסרים

איך משדרים מסרים בסקראצ'?

המסר שמשדרים הוא אירוע - דבר - מה שיתרחש במשחק ויגרור אחריו התרחשויות בדמויות השונות.

לכן, נפתח את תפריט האירועים.

5 of 18

משדרים מסרים

בתפריט 3 לבנים העוסקות במסר:

שידור של מסר

קבלה של מסר

שתי לבנים עוסקות בשידור של מסר (לדוגמה: לאחר שמתמלא תנאי כלשהו)

לבנה אחת היא קבלה של מסר כ"אירוע", שאחריו ייכתב קוד מסוים

הידעתם?

גם הרקע יכול לקלוט את המסר ולהשתנות לפיו!

6 of 18

מזניקים!

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

הבלוקים שעליכם להכיר הם

הפעם כבר עשינו עבורכם את שידור המסר, לפיכך עליכם להאזין למסר הזה.

"שדר מסר"

"כאשר מתקבל מסר"

שימו לב:

פתרון מסרים

7 of 18

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

עכשיו תתנסו אתם בשליחת המסר!

היכנסו "תרגול מסרים 2", ושלחו מסר כאשר המכונית הראשונה מגיעה לקו הסיום, כך שנוכל לדעת מי המנצח הגדול של התחרות!

צריכים עזרה? עברו לשקף הבא ותקבלו רמז וגם טיפ!

8 of 18

רמז

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

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

פתרון "תרגול מסרים 2"

9 of 18

שמתם לב למשהו קצת מסורבל בפתרון הקודם שלנו?

מה אפשר לכתוב אחרת, כך שנשתמש בפחות רקעים ופחות בלוקים של קוד?

10 of 18

בפתרון "תרגול מסרים 2" השתמשנו ב-3 רקעים שונים שעליהם נכתוב את שם הרכב המנצח.

מה יקרה אם נחליף את אחת הדמויות? �או נרצה להוסיף עוד כלי רכב?

נצטרך לעבוד די קשה!

נסו לחשוב מה המשמעות מבחינת העבודה הנדרשת, אם תרצו להוסיף עוד כלי רכב למירוץ.

11 of 18

בתכנות נרצה כמה שפחות לחזור על עצמנו בקוד �זה נקרא לפעמים .DRY - don't repeat yourself

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

12 of 18

נסו לחשוב כיצד ניתן להשתמש נכון במשתנה �(זה שקראנו לו "מנצח" בפתרון שלנו) כדי להציג מסך שמתאר מי ניצח במירוץ, בלי ליצור מסכים רבים ובלי להשתמש ב-3 בלוקים של .�היכנסו לפתרון "תרגול מסרים 2" וערכו אותו.

צריכים רמז? תוכלו להציץ בשקף הבא.

"אם... אז..."

13 of 18

רמז

ככל הנראה, תרצו להשתמש בבלוק מהסוג הזה ולשלב אותו עם המשתנה "מנצח".

פתרון יחידה 9 שלב 3

14 of 18

נערוך השוואה

בדרך הראשונה לפתרון:

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

כתבנו קוד לרקע, שיתחלף לפי המשתנה "מנצח".

בדרך השנייה לפתרון:

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

15 of 18

ועכשיו ניצור ממש משחק

נשלב את מה שלמדנו בשיעורים האחרונים.

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

לאחר מכן מתחיל המירוץ, כפי שלמדנו בשיעור.

אם הניחוש נכון - מקבלים 10 נקודות.

בשלב הבא מופיעה שאלה: האם רוצים לנסות סיבוב נוסף?

אם כן - אפשר לנחש שוב מי ינצח במירוץ.

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

16 of 18

קצת רמזים

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

לאחר מכן שדרו מסר שהתחיל סיבוב חדש. כל סיבוב מכיל את השלבים הבאים:

  • שאלה המבקשת מכם לנחש מי המנצח (תוכלו למספר את המכוניות),
  • המירוץ עצמו, כפי שלמדנו בשיעור.
  • בסיום משדרים מסר: "ניצחון".

זה לא סוף הסיבוב! המשיכו לשקף הבא

17 of 18

קצת רמזים

לאחר שמתקבל המסר "ניצחון":

  • השוו בין המנצח לניחוש שלכם
  • עדכנו את הנקודות (תצטרכו ליצור משתנה שיאסוף את הנקודות)
  • שאלו אם רוצים משחק חדש

(הפעולות האלה לא צריכות להתרחש בכל הדמויות, �רק בדמות ששואלת ומדווחת על מה שקורה במשחק)

אם התשובה על השאלה הזאת היא "כן", �כל הסיבוב מתחיל מחדש - שדרו מסר שהתחיל סיבוב חדש.

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

פתרון מסרים 4

18 of 18

סיכום

הכרנו את המסרים והבנו את החשיבות שלהם �(תקשורת בין חלקים שונים במשחק - דמויות, רקעים וכו').

ראינו שהמסר הוא סוג של אירוע, שמורה להפעיל קוד מסוים.

אז מה למדנו בשיעור זה?

תרגלנו שימוש במסרים, האזנו להם וגם שלחנו אותם.

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

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