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

←‏האוביקט: עריכה, עיצוב, הרחבה, ניסוח
(←‏ארוע צעד: הגהה והבהרה)
(←‏האוביקט: עריכה, עיצוב, הרחבה, ניסוח)
תגית: עריכת קוד מקור 2017
== האוביקט ==
 
נוסיף עוד אוביקט., [[תמונה:Gmaker_add_object.png]] ונקרא לו score_panel (לוח ניקוד). <BR>ניכנס לחדר ונציב אותו במקום כלשהו. הוא יכתב כסימן שאלה, ככה:[[תמונה:Gameker_q.PNG]], כיוון שאין לו דמות.
 
<BR>נקרא לאוביקט score_panel:לוח ניקוד,
{{הארה|כיוון שהאובייקט הזה הוא בלתי נראה ואין לו השפעה על אובייקטים אחרים, אפשר למקם אותו בכל מקום בחדר, גם על אובייקטים אחרים. אבל בשביל שזה לא ימחק אותם, יש לוודא קודם שתיבת הסימון Delete underlying אינה מסומנת (כשהתיבה הזו מסומנת, אם נשים אובייקט אחד על אובייקט אחר, האובייקט האחר יימחק).
<BR>ניכנס לחדר ונוריד מתיבת הסימון Delete underlying .[[תמונה:Gameker_d.PNG]]
 
<BR>נציב אותו איפה שהוא,
הוא יכתב כסימן שאלה. ככה:[[תמונה:Gameker_qGameker_d.PNG]].}}
 
<BR>נוסיף לו ארוע של תחילת משחק[[תמונה:Gmaker_other.png]],
נוסיף לאובייקט score_panel אירוע של תחילת משחק [[תמונה:Gmaker_other.png]], ונשתמש שוב בפעולת קוד. הפעם נכתוב:
<br>בארוע הזה נשתמש בפעולת קוד. [[תמונה:Gmaker_code_button.png]]
<BR>בקוד יהיה כתוב:
<div dir=ltr>
score = 0;
show_score = 1;
</div>
<BR>lives הוא {{מונח|משתנה גלובלי.|משתנה בדומהשלא ל-livesשייך ,scoreלאובייקט ספציפי בתוכנה}}. הוא מסמן את כמות החיים, ואנחנו הצבנו בו 3.
זה הוא קוד מתקדם יותר אז אני מקווה שתבינו.
 
<BR> עברנו כבר על המשתנה score, אבל על lives לא כל-כך,
{{משמאל לימין|show_lives}} (הצג חיים) קובע שהחיים יוצגו, ובאופן דומה, {{משמאל לימין|show_score}} (הצג ניקוד) מציג את הניקוד.
<BR>lives הוא משתנה גלובלי. בדומה ל-lives ,score מסמן את כמות החיים, ואנחנו הצבנו בו 3.
 
<BR>{{משמאל לימין|show}} בעברית זה אומר הצג, וכמו שאנחנו יודעים {{משמאל לימין|lives}} זה חיים ו-{{משמאל לימין|score}} זה ניקוד.
<BR>נוסיף ארועאירוע סוף'אין עוד חיים' (no more lives) [[תמונה:Gmaker_other.png]], ובו נוסיף את הקוד: [[תמונה:Gmaker_code_button.png]]<BR>בקוד יהיה כתוב:
<BR>נוסיף פעולת קוד, [[תמונה:Gmaker_code_button.png]]
<BR>בקוד יהיה כתוב:
<div dir=ltr>
highscore_add_current();
highscore_show(1);
game_restart();
</div>{{גמייקר/בדיקה|הריצו ובדקו מה קורה בסוף המשחק.}}
</div>
כמו ששמתם לב, טבלת ניקוד הופיעה בסוף המשחק, אבל התבקשתם הפעם לכתוב את שמכם באופן קצת שונה מזה שהתרגלתם אליו. את התיבה שמבקשת שתזינו שם משתמש יצרה הפקודה שבשורה הראשונה, והפקודה השניה הציגה לכם את רשימת הניקודים.
אם בודקים את המשחק רואים שזאת צורה חדשה לכתיבת השם.
<BR>אבל זה משתלם, אני מניח שאתם כבר הבנתם את הקוד (אני לפחות מקווה).
 
הפקודה {{משמאל לימין|game_restart()}} מאתחלת את המשחק (מילולית, restart פירושו להתחיל מחדש).
== אירוע צעד - הוספת חיים ==
 
להוסיף ארוע צעד, [[תמונה:Gmaker_step.png]]
== אירוע צעד - הוספת חיים ==
<BR>להוסיף פעולת קוד, [[תמונה:Gmaker_code_button.png]]
כדי להפוך את המשחק למעט יותר מורכב, נוסיף לשחקן חיים אם יצליח להגיע לאלף נקודות.
<BR>בקוד יהיה כתוב:
נחזור לאירוע ההתנגשות של הכדור במחבט, נפתח את פעולת הקוד, [[תמונה:Gmaker_code_button.png]] ונוסיף {{מונח|בסופה|בסוף שלה}} עוד כמה שורות:
<div dir=ltr>
if ( score == 1000 )
}
</div>
{{משמאל לימין|if}} היא מילת תנאי - 'אם'. הביטוי == (שני סימני = בלי רווח) מסמן השוואה. אם ההשוואה נכונה, אז מה שכתוב בין סימני הצומדיים ({ }) יקרה.<BR>בתכנות, הסימנים { ו- } מבטאים תחילת בלוק וסוף בלוק. במקרה שלנו, הבלוק מוסיף לחיים 1, והוא ירוץ רק אם יתקיים התנאי שהניקוד שווה אלף בדיוק.
{{משמאל לימין|if}} היא מילת המפתח,
 
<BR> == שני סימני שווי בלי רווח מסמנות השוואה,
המשמעות של הקוד הזה הוא שבכל פעם שתתרחש פגיעה של הכדור במחבט, אחרי שהמשחק יסיים לבצע את הפעולות שכתובות לפני זה, הוא יבדוק אם הניקוד הוא אלף, ואם כן, יוסיף 1 לחיים של השחקן.
<BR> אם ההשווה נכונה אז מה שכתוב בסימני הצומדיים( { } ) יקרה.
 
<BR>{ ו- } הם תחילת בלוק וסוף בלוק.
{{הארה|1=כיוון שאירוע ההתנגשות של הכדור במחבט משנה את הניקוד של השחקן כל פעם, השחקן יוכל לקבל רק נקודת חיים אחת כל משחק. כדי לשנות את זה, אפשר לכתוב משפט תנאי אחר:
<div dir=ltr>
if ( score % 1000 == 0)
 
{
 
lives ++;
 
}
 
</div>
כאשר התנאי {{משמאל לימין|1=score % 1000 == 0}} פירושו שהשארית מחילוק הניקוד באלף היא אפס, כלומר שהמספר מתחלק באלף ללא שארית; במקרה שבחרנו בקוד הזה, כל פעם שהשחקן יגיע לאלף נקודות נוספות - הוא יקבל תוספת חיים.}}
 
==
'''[[../צעד 5: גימור המשחק|צעד 5: גימור המשחק]]'''
[[קטגוריה:Game Maker]]