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

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
תוכן שנמחק תוכן שנוסף
תגית: עריכת קוד מקור 2017
←‏סיום: הזזת תוכן
תגית: עריכת קוד מקור 2017
 
שורה 31: שורה 31:
הפקודה {{משמאל לימין|game_restart()}} מאתחלת את המשחק (מילולית, restart פירושו להתחיל מחדש).
הפקודה {{משמאל לימין|game_restart()}} מאתחלת את המשחק (מילולית, restart פירושו להתחיל מחדש).


כמעט סיימתם! עכשיו אתם מוזמנים לעבור ל'''[[תכנות לילדים באמצעות Game Maker/פונג בקוד/צעד 5: גימור המשחק|צעד 5: גימור המשחק]]'''
== הוספת חיים ==
כדי להפוך את המשחק למעט יותר מורכב, נוסיף לשחקן חיים אם יצליח להגיע לאלף נקודות.
נחזור לאירוע ההתנגשות של הכדור במחבט, נפתח את פעולת הקוד, [[תמונה:Gmaker_code_button.png]] ונוסיף {{מונח|בסופה|בסוף שלה}} עוד כמה שורות:
<div dir=ltr>
if ( score == 1000 )
{
lives ++;
}
</div>
{{משמאל לימין|if}} היא מילת תנאי - 'אם'. הביטוי == (שני סימני = בלי רווח) מסמן השוואה. אם ההשוואה נכונה, אז מה שכתוב בין סימני הצומדיים ({ }) יקרה.<BR>בתכנות, הסימנים { ו- } מבטאים תחילת בלוק וסוף בלוק. במקרה שלנו, הבלוק מוסיף לחיים 1, והוא ירוץ רק אם יתקיים התנאי שהניקוד שווה אלף בדיוק.

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

{{הארה|1=כיוון שאירוע ההתנגשות של הכדור במחבט משנה את הניקוד של השחקן כל פעם, השחקן יוכל לקבל רק נקודת חיים אחת כל משחק. כדי לשנות את זה, אפשר לכתוב משפט תנאי אחר:
<div dir=ltr>
if ( score % 1000 == 0)

{

lives ++;

}

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

==סיום==

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

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

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


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

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



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

גרסה אחרונה מ־17:33, 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 פירושו להתחיל מחדש).

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