קלט עכבר ומקלדת בגוסו

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

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

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

לכל מקש מקלדת יש א Gosu:: Kb * קבוע. ברוב המפתחות ניחשים בקלות שמותיהם של קבועים אלה. לדוגמה, מקשי החצים הם גוסו:: KbLeft, גוסו:: KbRight, Gosu:: KbUp ו גוסו:: KbDown. לקבלת רשימה מלאה, עיין בסעיף תיעוד למודול Gosu.

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

בתוך ה

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

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

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

לשאילתות ב- גוסו:: חלון כדי לבדוק אם מקש לחץ, התקשר אל כפתור למטה? שיטה עם מזהה הכפתור שברצונך לבדוק. אל תשכח את סימן השאלה בשיחה זו! אם אתה מתקשר button_down (Gosu:: KbLeft), אתה תהיה דיווח לחץ על לחצן אל גוסו:: חלון תת-סוג. גם אם אין לך הגדרת שיטות התקשרות חוזרות, מחלקת ההורים, גוסו:: חלון יהיה. לא תהיה שום שגיאה, זה פשוט לא יעבוד כפי שאתה מצפה. רק אל תשכח את סימן השאלה הזה!

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

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

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

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

instagram story viewer