תכנות לילדים באמצעות Game Maker/פונג בקוד/צעד 4: סוף המשחק: הבדלים בין גרסאות בדף

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
תוכן שנמחק תוכן שנוסף
←‏האוביקט: עריכה, עיצוב, הרחבה, ניסוח
תגית: עריכת קוד מקור 2017
תגית: עריכת קוד מקור 2017
שורה 57: שורה 57:
כאשר התנאי {{משמאל לימין|1=score % 1000 == 0}} פירושו שהשארית מחילוק הניקוד באלף היא אפס, כלומר שהמספר מתחלק באלף ללא שארית; במקרה שבחרנו בקוד הזה, כל פעם שהשחקן יגיע לאלף נקודות נוספות - הוא יקבל תוספת חיים.}}
כאשר התנאי {{משמאל לימין|1=score % 1000 == 0}} פירושו שהשארית מחילוק הניקוד באלף היא אפס, כלומר שהמספר מתחלק באלף ללא שארית; במקרה שבחרנו בקוד הזה, כל פעם שהשחקן יגיע לאלף נקודות נוספות - הוא יקבל תוספת חיים.}}


==סיום==
==

'''[[../צעד 5: גימור המשחק|צעד 5: גימור המשחק]]'''
{{תבנית:גמייקר/פונג בקוד}}
{{משימה|כדאי לחשוב על רעיונות איך אפשר לשפר את המשחק ולנסות לממש אותם. למשל, להוסיף כיוונים אפשריים לתנועה של הכדור בתחילת המשחק.

אפשר גם לנסות את הרעיונות שמופיעים ב[[תכנות לילדים באמצעות Game Maker/פונג/צעד 10: תוספת למתקדמים|תוספת למתקדמים של המדריך הראשי ליצירת משחק פונג]]; נסו לראות מה מהרעיונות המופיעים שם תוכלו לממש באמצעות קוד.

מידע נוסף על קוד בGameMaker ניתן למצוא [[תכנות לילדים באמצעות Game Maker/טטריס/צעד 6: קוד|בהוראות ליצירת המשחק טטריס]] ו[[תכנות לילדים באמצעות Game Maker/GML|במדריך הזה]]. אם אתם מבינים אנגלית ומעט מושגי יסוד בתכנות, תוכלו להיעזר במדריך למשתמש של GameMaker (שייפתח אם תלחצו בתוך התוכנה על F1); יש שם מידע רב ומפורט מאוד על שפת GML.}}


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

אתם מוזמנים להמשיך הלאה, ולפתח [[תכנות לילדים באמצעות Game Maker/a first person shooter|'''משחק יריות מגוף ראשון''']].


[[קטגוריה:Game Maker]]
[[קטגוריה:Game Maker]]

גרסה מ־17:28, 16 באוגוסט 2020


האוביקט

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


כדאי לדעת:

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

נוסיף לאובייקט score_panel אירוע של תחילת משחק , ונשתמש שוב בפעולת קוד. הפעם נכתוב:

score = 0;
lives = 3;
show_lives = 1;
show_score = 1;

lives הוא משתנה גלובלי. הוא מסמן את כמות החיים, ואנחנו הצבנו בו 3.

show_lives (הצג חיים) קובע שהחיים יוצגו, ובאופן דומה, show_score (הצג ניקוד) מציג את הניקוד.

נוסיף אירוע 'אין עוד חיים' (no more lives) , ובו נוסיף את הקוד:
בקוד יהיה כתוב:

highscore_add_current();
highscore_show(1);
game_restart();

הריצו ובדקו מה קורה בסוף המשחק.



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

הפקודה game_restart() מאתחלת את המשחק (מילולית, restart פירושו להתחיל מחדש).

הוספת חיים

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

if ( score == 1000 )
{
  lives ++; 
}

if היא מילת תנאי - 'אם'. הביטוי == (שני סימני = בלי רווח) מסמן השוואה. אם ההשוואה נכונה, אז מה שכתוב בין סימני הצומדיים ({ }) יקרה.
בתכנות, הסימנים { ו- } מבטאים תחילת בלוק וסוף בלוק. במקרה שלנו, הבלוק מוסיף לחיים 1, והוא ירוץ רק אם יתקיים התנאי שהניקוד שווה אלף בדיוק.

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


כדאי לדעת:

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

if ( score % 1000 == 0)

{

lives ++;

}

כאשר התנאי score % 1000 == 0 פירושו שהשארית מחילוק הניקוד באלף היא אפס, כלומר שהמספר מתחלק באלף ללא שארית; במקרה שבחרנו בקוד הזה, כל פעם שהשחקן יגיע לאלף נקודות נוספות - הוא יקבל תוספת חיים.

סיום


עכשיו תורכם:

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

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

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


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

אתם מוזמנים להמשיך הלאה, ולפתח משחק יריות מגוף ראשון.