תכנות לילדים באמצעות Game Maker/מריו/עוד אויבים



יצירת צבים (קוּפוֹת)עריכה

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

  1. ליצור אובייקט חדש (אפשר לקרוא לו turtle)ולקחת את הדמות של הצב ההולך מרצועת הספרייטים של מריו ובתוכו ניצור את הדברים האלה:
  1. להוסיף אירוע יצירה.
  1. באירוע הזה להוסיף 2 למשתנה hspeed.
  1. נשים את אובייקט הצב בחדר

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


הצב ממשיך ללכת לכן נעשה כך:

  1. נוסיף באובייקט הצב אירוע היתנגשות בפלטרום.
  1. באירוע התנגשות נוסיף את הערך 180 למשתנה direction.(כדי שישנה כיוון).

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


כדי למנוע את הבעיה הזו נצטרך:

  1. להוסיף אירוע צעד כדי לבדוק בכל צעד לאיזה כיוון הצב הולך.


  1. לכתוב את הערך 2 למשתנה hspeed,כדי לבדוק אם הוא הולך ימינה.


  1. לכתוב את הערך "1-" למשתנה image_xscale.

והכי חשוב! להוריד את הסימון מתיבת precise collision checking.


  1. להעתיק את שתי הפעולות ולהדביק באותו אירוע צעד אך באלה שהדבקנו צריך לשנות.

את הערך של hspeed לשנות ל"2-" ואת הערך של image_xscale לשנות ל 1.



  עכשיו הצב מסתכל לכיוון שהוא הולך אליו.




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

  1. באובייקט של הצב נפתח אירוע התנגשות שלו במריו.


  1. כאן נוסיף את הפעולה לבדיקת ערך של משנה ושם נכתוב את הערך mario_jump(את שם הספרייט של מריו הקופץ) למשתנה sprite_index ןלמעלה נסמן את האפשרות האמצעית other.


  1. נוסיף את הפעולה להחלפת אובייקט כדי שישתנה לשריון ולא לשכוח לסמן yes!!!.


  1. נוסיף את הפעולה לקביעת המהירות האנכית ובה נכתוב -7 ולמעלה נסמן את האפשרות האמצאית other כדי שמריו יקפוץ קצת למעלה כשהוא פוגע בו.

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


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

  1. להוסיף אירוע יצירה באובייקט השריון.


  1. להוסיף את הערך 0 למשתנה image_speed.


  1. לכתוב למשתנה hspeed את הערך 0.

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

  1. נוסיף אירוע התנגשות של מריו בצב.


  1. כאן נוסיף את הפעולה לבדיקת ערך של משתנה ושם נכתוב את הערך mario_jump(את שם הספרייט של מריו הקופץ) למשתנה sprite_index ןלמעלה נסמן את האפשרות האמצעית other ולמטה נסמן בV את NOT.


  1. נכתוב -1 ונסמן (Relative).


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


  1. ונוסיף פעולה זו על מנת להשהות את המשחק כדי לתת לשחקן להתכונן להמשך.


  1. נקיף בבלוק את שלושת הפעולות שאחרי פעולת הבדיקה.

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




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

  1. נוסיף אירוע היתנגשות של השריון במריו.


  1. כאן נוסיף את הפעולה לבדיקת ערך של משנה ושם נכתוב את הערך 1 למשתנה image_xscale ולמעלה נסמן את האפשרות האמצאית other.


  1. נוסיף במשתנה image_speed את הערך 1 כדי שדמות תזוז.


  1. נרשום במשתנה hspeed את הערך 6 או מספר קרוב ל-6.


  1. נקיף בבלוק את שתי הפעולות שאחרי פעולת הבדיקה.


  1. להעתיק ולהדביק את כל הפעולות באירוע ההתנגשות ולשנות את הערך של image_xscale ל -1 ואת הערך של hspeed ל-6 או מינוס מספר אחר שקרוב ל6.


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



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




 

עכשיו תורכם:

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



  כעת הכל צריך לעבוד כרגיל.




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


 

עכשיו תורכם:

ליצור כח משיכה לשריון ולצב עצמו (אפשר להיעזר במשיכה של מריו).



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




האויב שזורק פטישיםעריכה

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

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


  1. באירוע הזה להוסיף 2 למשתנה hspeed.


  1. נשים את אובייקט זורק הפטישים בחדר



  כעט הוא זז ימינה אבל לא מסתובב.




 

עכשיו תורכם:

# לגרום לו לשנות כיוון (ניתן להשתמש באותו הטריק שעשינו במסוע).

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


 

עכשיו תורכם:

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

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

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

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



  עכשיו הכל פועל כרגיל רק נותר דבר אחד.




לגרום לאוייב שעל הקיר המעופף להיעלם.


 

עכשיו תורכם:

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

image_xscale*4


  עכשיו הכל פועל כרגיל אבל מריו לא עומד על הקיר המעופף הוא מרחף מעליו.




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

בשדה X נכתוב 2, בשדה Y נכתוב 19 , בשדה Left נרשום 22 בשדה Right נכתוב 85 בשדה Top נכתוב 19 ובשדה Botton נכתוב 52. למעלה חייבים לסמן רק את השלישי.



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