כיצד ליצור משחק פונג - hyperPong | hyperPad Documentation

Loading...

Logo
Documentationמדריכיםכיצד ליצור משחק פונג - hyperPong
מדריכים

כיצד ליצור משחק פונג - hyperPong

Last updated July 10, 2019

Video_2019-07-31__5_25_47_PM.s.gif

Note: קובץ פרויקט שלם להדרכה זו ניתן למצוא בסוף מאמר זה.

מבוא

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

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

למשחק הפונג שלנו, נכלול את האפשרות לשחק במצב של שחקן אחד (שחקן נגד AI), במצב של שחקן 2 (שחקן נגד שחקן), או במצב של 0 שחקנים "צפה" (AI נגד AI).

חלק 1: הגדרת הפרויקט ותפריט ראשי

בואו נתחיל ביצירת פרויקט חדש.

פתחו את תפריט הפרויקטים ב-hyperPad ולחצו על פרויקט חדש. תנו לפרויקט שלכם שם ולחצו על הבא. הכיוונים יכולים להישאר על מצב נוף ברירת מחדל. עבור ההדרכה הזו, תמיכת מכשירים מוגדרת ל-iPad 4:3. במסך הבא, בחרו "נוף עיני הציפור" והשאירו את השאר כברירת מחדל.

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

הקישו על כפתור תפריט הפרויקט/סצנה ולחצו על כפתור הגיר ליד "סצנה 1" שלנו.

Photo_2019-07-10__5_32_10_PM.s.jpg

Photo_2019-07-10__5_34_50_PM.s.jpg

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

Photo_2019-07-10__5_36_34_PM.s.jpg

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

הקישו על כפתור הגדרות הסצנה ובחרו רקע. הקישו על כפתור "שנה צבע" ושנו אותו לשחור (#000000FF).

Photo_2019-07-10__5_41_52_PM.s.jpg

Photo_2019-07-10__5_43_22_PM.s.jpg

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

Photo_2019-07-15__2_45_50_PM.sjpg

Photo_2019-07-15__2_46_33_PM.sjpg

הקישו על לשדה הטקסט והקלידו את שם המשחק שלכם ("hyperPong" הוקלד להדרכה זו), קבעו את גודל הפונט למשהו גדול אך לא גדול מדי. עבור כותרת "hyperPong", 72 נקודות זה גודל טוב. שנו את הצבע ללבן (#FFFFFFFF) והצבו אותו במרכז התפריט בקרבת החלק העליון.

Photo_2019-07-15__2_51_39_PM.sjpg

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

חלק 2: הגדרת סצנת המשחק והמחבט

הקישו על כפתור תפריט הפרויקט והקישו על "הוסף סצנה". תנו לה שם "משחק" והקישו על צור. כעת בסצנת המשחק, אתם צריכים לראות קנבס ריק. כמו שעשינו עם סצנת תפריט ראשי, עבורו הקישו שוב על כפתור הגדרות הסצנה ושנו את הרקע לשחור (#000000FF).

בואו נתחיל ליצור את המחבטים של השחקן שלנו. צרו אובייקט ריק על ידי מעבר לכפתור האובייקטים המיוחדים ובחרו ב"אובייקט ריק". שנו את צבעו ללבן (#FFFFFFFF) ודאגו שהמחוון של שקיפות יהיה מלא.

Photo_2019-07-15__3_07_37_PM.sjpg

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

Photo_2019-07-15__3_12_23_PM.sjpg

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

במאפייני האובייקט "שחקן-1", עבורו ללשונית ״שינוי״ והגדירו את הסקלה X ל-25% והעבירו אותו שמאלה של שדה המשחק.

Photo_2019-07-15__3_37_01_PM.sjpg

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

Photo_2019-07-15__5_40_57_PM.sjpg

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

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

מתחת לסקסיה מותאמת אישית, הניחו קופסת אירוח. זה ישמור את הכיוון שהמחבט יזוז. על ידי כך, גם שחקן ששולח ג'ויסטיק וגם AI שמעושים חישובים יכולים לזוז על ידי שינוי ערך זה. הערך המוחלט אמור להיות מוגדר ל-0. זה גם רעיון טוב לתת לו שם טוב כך שזה יהיה קל יותר לעבוד איתו, "כיוון תזוזה" זה נשמע מתאים.

Photo_2019-07-17__1_17_12_PM.sjpg

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

Photo_2019-07-17__1_42_32_PM.sjpg

Photo_2019-07-17__1_43_28_PM.sjpg

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

Photo_2019-07-17__1_44_16_PM.sjpg

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

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

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

Photo_2019-07-17__1_47_54_PM.sjpg

Photo_2019-07-17__1_48_31_PM.sjpg

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

Photo_2019-07-17__1_50_08_PM.sjpg

Photo_2019-07-17__1_52_22_PM.sjpg

עכשיו המשתנה של קופסת כיוון התנועה שלנו יעקוב אחרי תנועות למעלה ולמטה של הג'ויסטик ויאפס את עצמו ל-0 כאשר הג'ויסטיק משתחרר. זה נותן לנו דרך מצוינת להגיד למחבט איך לזוז, אז בואו נמשיך וניתן למחבט שלנו תנועה.

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

Photo_2019-07-17__2_27_54_PM.sjpg

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

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

Photo_2019-07-17__2_30_08_PM.sjpg

במאפייני ההתנהגות המינימלית, קבעו את הערך הראשון לערך הפלט של התנהגות הכיוון והערך השני להיות 1.

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

Photo_2019-07-17__2_31_06_PM.sjpg

במאפייני ההתנהגות המקסימלית, קבעו את הערך הראשון לתוצאה של מינימום, והערך השני ל-1-.

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

Photo_2019-07-17__2_32_46_PM.sjpg

מה שכל זה אומר, זה שהתוצאה של מקסימום היא למעשה הערך של כיוון התנועה מקובע בין -1 ל-+1. זה נותן לנו שליטה מלאה על כמה מהר המחבט יכול לנוע אולי!

טווח בין -1 ל-+1 זה קל לעבוד איתו, אבל יהיה איטי מדי אם נשתמש בזה ישירות כמהירות המחבט.

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