משחקים רבים משתמשים ב-sprites כדי לייצג את דמות השחקן או אויבים. גלה כיצד ספריית Arcade של Python מקלה עליהם לעבוד איתם.

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

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

יצירת משחק פשוט

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

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

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

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

צור מחלקה של MyGame שיורשת ממנה מִקמֶרֶת. חַלוֹן. לאחר מכן, הגדר את שיטת ההגדרה לאתחול משתנים ואת ה on_draw שיטה לצייר את חפצי המשחק. ה on_key_press השיטה מאפשרת לשחקן להזיז את המלבן הכחול שמאלה או ימינה.

הנה הקוד למשחק הבסיסי שלך:

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

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

מעמדהמשחק שלי(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי, רוחב, גובה):
super().__init__(רוחב, גובה)
arcade.set_background_color (arcade.color. לבן)

defלהכין(עצמי):
self.player_x = 320

defon_draw(עצמי):
arcade.start_render()
arcade.draw_rectangle_filled (self.player_x, 50, 50, 50, arcade.color. כְּחוֹל)

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

defרָאשִׁי():
משחק = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
game.setup()
arcade.run()

אם __שם__ == "__רָאשִׁי__":
רָאשִׁי()

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

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

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

מעמדהמשחק שלי(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי, רוחב, גובה):
super().__init__(רוחב, גובה)
arcade.set_background_color (arcade.color. לבן)
self.player_sprite = אף אחד

defלהכין(עצמי):
self.player_sprite = ארקייד. שֵׁדוֹן("player.png")
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2

defon_draw(עצמי):
arcade.start_render()
self.player_sprite.draw()

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

defעדכון(עצמי, זמן_דלתא):
self.player_sprite.update()

תכונות ספרייט נוספות

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

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

מעמדהמשחק שלי(מִקמֶרֶת. חַלוֹן):
defלהכין(עצמי):
self.player_sprite = ארקייד. שֵׁדוֹן("player.png", קנה מידה=0.5)

שליטה בתנועת ספרייט

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

self.player_sprite.change_angle = ROTATION_SPEED

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

הוספת זיהוי התנגשות עם ספרייטים

זיהוי התנגשות הוא קריטי במשחקים רבים. עם Arcade, אתה יכול לזהות בקלות התנגשויות בין ספרייטים באמצעות arcade.check_for_collision פוּנקצִיָה. הבה נשנה את הקוד כך שיכלול זיהוי התנגשות בין ספרייט השחקן לבין ספרייט אחר שנקרא obstacle.png:

מעמדהמשחק שלי(מִקמֶרֶת. חַלוֹן):
def__init__(עצמי, רוחב, גובה):
super().__init__(רוחב, גובה)
arcade.set_background_color (arcade.color. לבן)
self.player_sprite = אף אחד

defלהכין(עצמי):
self.player_sprite = ארקייד. שֵׁדוֹן("player.png", קנה מידה=0.1)
self.obstacle_sprite = ארקייד. שֵׁדוֹן("obstacle.png", קנה מידה = 0.1)
self.obstacle_sprite.center_x = SCREEN_WIDTH
self.obstacle_sprite.center_y = SCREEN_HEIGHT // 2
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2

defon_draw(עצמי):
arcade.start_render()
self.player_sprite.draw()
self.obstacle_sprite.draw()

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

defעדכון(עצמי, זמן_דלתא):
self.player_sprite.update()
self.obstacle_sprite.update()

אם arcade.check_for_collision (self.player_sprite, self.obstacle_sprite):
הדפס("זוהתה התנגשות!")

הפוך את המשחקים שלך למעניינים יותר עם Sprites

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

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