תכנות לילדים באמצעות Game Maker/אפשרויות נוספות בתלת מימד/קפיצה
תבנית:Game Maker/Game Maker 3D
קפיצה
[עריכה]הצעד הזה הוא צעד מאוד מאוד פשוט, ואמור לקחת מעט מאוד זמן,אז בוא נתחיל: דבר ראשון, בוא נחשוב, מה אנחנו צריכים בשביל קפיצה. אנחנו צריכים כמה משתנים שייצגו
- אם אפשר לקפוץ או לא- שלא נקפוץ באמצע קפיצה.
- מהירות הקפיצה.
- מהירות התזוזה בזמן קפיצה.
שמות המשתנים יהיו כדקלמן:
- jumping
- zjump
- zspeed
את המשתנה ZSPEED כבר יש לנו, אז בוא נוסיף באירוע הCREATE שלנו את הקוד הבא:
zjump = 0
jumping = 0
</source> עכשיו, נלך לאירוע הSTEP ונוסיף שם את הקוד הבא:
if jumping = 1
{
zjump = zjump + zspeed;
zspeed = zspeed - 0.5;
if zspeed = 0 then jumping = 0
}
אז מה בעצם כתוב כאן??
כתוב כאן שאם המשתנה jumping שווה ל 1, אז, zjump, יהיה שווה ל zjump + zspeed וש zspeed יהיה שווה ל zspeed - חצי, כך שהוא יקטן, ואז כתוב, שכאשר zspeed שווה ל0, אז גם המשתנה JUMPING שווה לאפס, וכך נפסיק לקפוץ. עכשיו נחזור למשהו אחר שכתוב באירוע STEP, שנראה כך:
z=terrain_get_z(x,y);
zlevel=terrain_get_z(x,y);
שזה בעצם המיקום שלך על ההר, אז נשנה אותו לזה:
z=terrain_get_z(x,y)-5+zjump;
zlevel=terrain_get_z(x,y)-5+-15+zjump;
כך שזה יהיה שווה את המיקום שלנו ועוד הZJUMP, וככה נתרחק מהקרקע.
עכשיו אבל צריך להוסיף את פקודת המקשים, שתגרום לנו לעשות זאת; ניצור אירוע לחיצה ממושכת על המקש SPACE ונכתוב שם את הקוד הבא (כמובן שלא חובה למקש SPACE דווקא):
if jumping = 0
{
jumping = 1
zspeed = 8
}
אז מה בעצם כתוב כאן? כתוב שאם jumping בעצם הזמן שאנו קופצים, שווה ל 0, זאת אומרת שאפשר לקפוץ, אז JUMPING יהיה שווה ל 1, ו ZSPEED יהיה שווה לשמונה כדי שנוכל לזוז. זה נראה מעולה, בוא ננסה את זה!
אנחנו באמת מצליחים לקפוץ, אבל אנחנו לא נופלים וממשיכים לרחף.
אז נוסיף באירוע הSTEP את הקוד הבא:
if jumping = 0
{
if zjump > 0 then {zspeed = zspeed + 0.5}
if zspeed > 8 then {zspeed = 8}
zjump = zjump - zspeed;
if zjump <= 0 then {zjump = 0; zspeed = 0}
}
יופי, אז מה כתבנו כאן? כתבנו שאם המשתנה jumping שווה ל0, משמע, אנחנו לא קופצים כבר, אז נבדוק אם ZJUMP גדול מאפס ואם כן, אז נוסיף ל ZSPEED +0.5 ואז נבדוק אם ZSPEED גדול מ8, ואם כן, אז נשנה אותו לשמונה,ואז נחסיר מ ZJUMP את ZSPEED, ונבדוק אם הוא קטן מ0, ואם כן, אז ZSPEED ו ZJUMP שווים ל0. כשהקפיצה גדולה מאפס, אז גם ההמהירות קפיצה גדלה, ואז נחסיר את המהירות קפיצה מהקפיצה, ואז אם ZJUMP קטן מאפס, אז שניהם אפס, בוא נבדוק!
כל הכבוד! סיימתם את הצעד החמישי!
[עריכה]עברו לצעד הבא: גוף שלישי שזז עם העכבר!