למד ליצור תפריטי משחק ולעצב ממשקי משתמש ללא מאמץ באמצעות כלי GUI של Arcade.

תפריטי משחק וממשקי משתמש (UI) ממלאים תפקיד מכריע בשיפור חווית המשתמש והמעורבות במשחק. Arcade, ספריית Python פופולרית לפיתוח משחקים, מספקת כלים חזקים של GUI (ממשק משתמש גרפי) המקלים על עיצוב ויישום תפריטי משחקים ורכיבי ממשק משתמש.

צור משחק פשוט

לפני שמתחילים, ודא שיש לך pip מותקן במכשיר שלך. השתמש בפקודה זו כדי להתקין את ספריית הארקייד:

ארקייד להתקין pip

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

הקוד המשמש במאמר זה זמין כאן מאגר GitHub והוא בחינם עבורך לשימוש תחת רישיון MIT.

משחק זה יכלול אובייקט שחקן שיכול לנוע ימינה ושמאלה וחפץ אויב. הנה הקוד למשחק:

יְבוּא מִקמֶרֶת

WIDTH = 800
גובה = 600
PLAYER_SPEED = 25

מעמדמִשְׂחָק(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי):
super().__init__(WIDTH, HEIGHT, "משחק פשוט")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.game_over = שֶׁקֶר

defלהכין(עצמי):
arcade.set_background_color (arcade.color. לבן)

defon_draw(עצמי):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT //

instagram viewer
2, 20, arcade.color. כְּחוֹל)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. אָדוֹם)

defעדכון(עצמי, זמן_דלתא):
self.enemy_x += 0.5
אם self.enemy_x >= WIDTH:
self.game_over = נָכוֹן

defon_key_press(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה:
self.player_x -= PLAYER_SPEED
אליף key == arcade.key. ימין:
self.player_x += PLAYER_SPEED

משחק = משחק()
game.setup()
arcade.run()

הוספת Game Over Screen

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

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

צור קובץ חדש בשם game-over.py והוסיפו את הקוד עם העדכונים הבאים:

יְבוּא מִקמֶרֶת
מ arcade.gui יְבוּא UIManager, UIMessageBox

WIDTH = 800
גובה = 600
PLAYER_SPEED = 25

מעמדמִשְׂחָק(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי):
super().__init__(WIDTH, HEIGHT, "משחק פשוט")
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.ui_manager = UIManager()
self.game_over = שֶׁקֶר

defלהכין(עצמי):
arcade.set_background_color (arcade.color. לבן)
self.ui_manager.enable() # הפעל את מנהל ממשק המשתמש

defon_draw(עצמי):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. כְּחוֹל)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. אָדוֹם)
אם self.game_over:
self.ui_manager.draw()

defעדכון(עצמי, זמן_דלתא):
self.enemy_x += 0.5
אם self.enemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = נָכוֹן
אם self.game_over:
self.ui_manager.enable()
אַחֵר:
self.ui_manager.disable()

defon_key_press(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה:
self.player_x -= PLAYER_SPEED
אליף key == arcade.key. ימין:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(עצמי):
message_box = UIMessageBox(
רוחב=400,
גובה=200,
message_text="סוף המשחק!"
)
self.ui_manager.add (תיבת הודעות)

משחק = משחק()
game.setup()
arcade.run()

להלן הפלט:

הוספת כפתורים

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

צור קובץ חדש בשם buttons.py והוסיפו את הקוד עם העדכונים הבאים:

defshow_game_over_screen(עצמי):
message_box = UIMessageBox(
רוחב=400,
גובה=200,
message_text="סוף המשחק!",
כפתורים=("איתחול", "יְצִיאָה"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (תיבת הודעות)

defon_game_over_button_click(עצמי, button_text):
אם button_text == "איתחול":
self.restart_game()
אליף button_text == "יְצִיאָה":
arcade.close_window()

defrestart_game(עצמי):
self.game_over = שֶׁקֶר
self.enemy_x = WIDTH - 50
self.ui_manager.clear()

להלן הפלט:

בתוך ה show_game_over_screen שיטה, הוסף שני כפתורים, איתחול ו יְצִיאָה, אל ה UIMessageBox על ידי ציון אותם ב- כפתורים פָּרָמֶטֶר. ספק גם פונקציית התקשרות חזרה, on_game_over_button_click, כדי לטפל בלחיצות כפתורים. בתוך פונקציית ההתקשרות חזרה, בדקו על איזה כפתור לחצו ובצעו את הפעולה המתאימה.

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

UIDraggableMixin

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

UIMouseFilterMixin

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

UIWindowLikeMixin

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

משטח

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

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

שיטות עבודה מומלצות לשילוב GUI

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

תוכנית ואב טיפוס

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

שמור על עקביות

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

עיצוב רספונסיבי

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

טיפול יעיל באירועים

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

משוב משתמש

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

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

הגבר את מעורבות המשתמש עם ממשק משתמש מושך חזותית

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