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

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



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

Gmaker turtle.gif

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

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

Gmaker test save.png

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


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

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

Gmaker test save.png

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


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

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


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


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

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


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

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



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




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

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


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


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


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

Gmaker test save.png

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


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

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


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


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

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

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


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


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


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


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


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

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




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

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


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


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


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


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


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


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



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




עכשיו תורכם:

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



Gmaker test save.png כעת הכל צריך לעבוד כרגיל.




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


עכשיו תורכם:

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



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




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

Gmaker badboy.png

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

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


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


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



Gmaker test save.png כעט הוא זז ימינה אבל לא מסתובב.




עכשיו תורכם:

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

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


עכשיו תורכם:

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

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

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

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



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




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

Mario enemyfly.png


עכשיו תורכם:

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

image_xscale*4


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




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

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



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