תכנות לילדים באמצעות Game Maker/משחק מרובה משתתפים/פרק שני

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


 mplay_init_modem (initstr, phonenr) מאתחל חיבור מודם. initstr הוא מחרוזת אתחול עבור המודם (יכול להיות ריק). phonenr הוא מחרוזת המכילה את מספר הטלפון יצלצל (למשל '0201234567 '). רק כאשר מצטרף הפעלה (ראה להלן) אתה צריך לתת את מספר הטלפון.
 mplay_init_serial (portno, baudrate, stopbits, זוגיות, זרימה) מאתחל חיבור טורי. portno הוא מספר היציאה (1-4). baudrate הוא baudrate לשמש (100-256K). stopbits מציינת את מספר stopbits (0 = 1 ביט, 1 = 1.5 מעט, 2 = 2 ביטים). זוגיות מצביע על זוגיות (0 = לא, 1 = מוזר, 2 = אפילו, 3 = הסימן). זרימה מציין את סוג בקרת זרימה (0 = לא, 1 = xon / xoff, 2 = RTS, DTR = 3, 4 = RTS ו DTR). החזרת מוצלח אם. שיחה טיפוסית היא mplay_init_serial (1,57600,0,0,4). תן 0 כארגומנט הראשון לפתוח שיח למשתמש לשנות את ההגדרות.
המשחק שלך צריך להתקשר לאחת הפונקציות האלה בדיוק פעם אחת. כל הפונקציות הדוח אם הם היו מצליחים. הם לא מצליחים אם פרוטוקול מסוים אינו מותקן או נתמך על ידי המחשב. שים לב כי היום בעצם כולם משתמשת פרוטוקול TCP / IP. אז האחרים קצת יותר הגיוני.
אז את החדר הראשון במשחק שלנו צריך להראות את ארבעת האפשרויות ולתת לשחקן לבחור אחד. (או לאפשר רק למי פרוטוקולים הרצוי. שני האחרון עלול להיות איטי מדי עבור המשחק שלך.) אנו קוראים את פונקציית אתחול במקרה עכבר, אם מצליחים, לעבור לחדר הבא. אחרת אנחנו נותנים הודעת שגיאה. כך במקרה של העכבר כפתור IPX אנחנו במקום פיסת הקוד הבאה: (אם (mplay_init_ipx ()) room_goto_next () אחר show_message ("כישלון באתחול חיבור IPX."))
כאשר המשחק מסתיים, או כאשר המשחק כבר לא רוצה להשתמש במתקן רב משתתפים, עליך להשתמש בשגרה הבאה עד הסוף זה:
 mplay_end () מסתיים הקשר הנוכחי. החזרת מוצלח אם.
כדאי גם לקרוא את זה שגרתי לפני שאתה רוצה לעשות חיבור חדש, שונה.
משחק הפגישות
כאשר אתה מתחבר לרשת, שם ניתן משחקים מרובים קורה באותה רשת. אנו קוראים המפגשים האלה. אלה הפעלות שונות יכול להתאים משחקים שונים או משחק אותה. המשחק חייב לזהות את עצמו ברשת. למרבה המזל, Game Maker עושה את זה בשבילך. הדבר היחיד שאתה צריך לדעת זה כאשר אתה משנה את המשחק מזהה את הגדרות המשחק הגלובלי הזה שינויים זיהוי. בדרך זו ניתן למנוע כי אנשים עם גירסאות ישנות של המשחק שלך יהיה לשחק נגד אנשים עם גרסאות חדשות.
4 אם אתה רוצה להתחיל משחק מרובה משתתפים חדש אתה צריך ליצור הפעלה חדשה. לשם כך ניתן להשתמש שגרתית הבאה:  mplay_session_create (sesname, playnumb, playername) יוצר הפעלה חדשה על הקשר הנוכחי. sesname הוא מחרוזת המציינת את שם הפגישה. playnumb היא מספר המציין את מספר מקסימלי של שחקנים מותר במשחק הזה (שימוש 0 עבור מספר שרירותי). playername הוא שם אותך בתור שחקן. החזרת מוצלח אם. במקרים רבים את שם השחקן אינו משמש והוא יכול להיות מחרוזת ריקה. כמו כן, על שם מושב חשוב רק אם אתה רוצה לתת לאנשים את האפשרות לבחור את הפגישה הם רוצים להצטרף. אז מקרה אחד של המשחק חייב ליצור את הפגישה. במקרה אחר (ים) של המשחק אמור להצטרף הפגישה. זה קצת יותר מסובך. אתה הראשון צריך להסתכל מה הפעלות זמינים ולאחר מכן לבחור את אחד להצטרף. ישנם שלושה השגרה חשובה זו:
 mplay_session_find () מחפש את כל הפגישות, כי עדיין לקבל את השחקנים ואת מחזירה את מספר פגישות מצאתי.
 mplay_session_name (קהה) מחזירה את שמו של המספר הפגישה קהה (0 היא הפגישה הראשונה). בשגרה זה יכול להיות רק בשם אחר קורא את השגרה הקודמת.  mplay_session_join (קהה, playername) גורם לך להצטרף למספר הפגישה קהה (0 היא הפגישה הראשונה). playername הוא שם אותך בתור שחקן. החזרת מוצלח אם. אז מה שאתה רגיל לעשות הוא להתקשר mplay_session_find () כדי למצוא את כל המפגשים הקיימים. ואז אתה גם להשתמש שוב ושוב mplay_session_name () כדי להראות להם את השחקן ולתת לו לבחור, או שאתה מיד להצטרף הפגישה הראשונה. (שים לב כי מציאת הפגישה לוקח קצת זמן. אז לא קוראים לזה שגרה בשלב זה.) השחקן יכול לעצור הפעלה באמצעות שגרת הבאים:  mplay_session_end () מסיים את הפגישה עבור שחקן זה. כדאי הראשון להודיע לשחקן אחר (ים) של זה, אבל זה לא הכרחי. אז במשחק שלנו, בחדר השני נותן למשתמש שתי ברירות: או ליצור הפעלה חדשה, או להצטרף הפעלה הקיימות. הבחירה הראשונה שאנו מבצעים את הקוד הבא במקרה העכבר: (אם (mplay_session_create (, 2 ,)) (global.master = true; room_goto_next ();) אחר show_message ("נכשל ביצירת הפגישה. '))