הזז את הדמות הראשית שלך בתגובה לקלט השחקן עם אירועי המקלדת והעכבר של ספריית ארקייד.
ארקייד היא ספריית Python פופולרית שתוכל להשתמש בה כדי ליצור משחקי ארקייד דו מימדיים. זוהי ספרייה קלה לשימוש המספקת מסגרת פשוטה ליצירת משחקים עם Python.
אחד המרכיבים החיוניים של כל משחק הוא תנועת השחקנים.
יצירת משחק פשוט בארקייד
אתה יכול למצוא את השלם קוד בריפו זה של GitHub.
לפני שמתחילים, ודא שיש לך pip מותקן במכשיר שלך. השתמש בפקודה זו כדי להתקין את ספריית הארקייד:
ספריית התקנת pip
לאחר מכן, צור מחלקת Player כתת מחלקה של מִקמֶרֶת. שֵׁדוֹן כיתה, וא המשחק שלי מחלקה כתת מחלקה של מִקמֶרֶת. חַלוֹן. ה המשחק שלי לכיתה יהיו שיטות להגדיר את אובייקטי המשחק, לעבד אותם על המסך, לעדכן את מצב המשחק ולטפל בקלט של משתמשים. הקוד ליצירת מסך המשחק ואובייקט השחקן הוא כדלקמן:
יְבוּא מִקמֶרֶת
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600מעמדשחקן(מִקמֶרֶת. שֵׁדוֹן):
def__init__(עצמי):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2מעמדהמשחק שלי(מִקמֶרֶת. חַלוֹן):
"המשחק שלי")
def__init__(עצמי):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT,
self.player = אף אחד
arcade.set_background_color (arcade.color. שָׁחוֹר)defלהכין(עצמי):
self.player = Player()defon_draw(עצמי):
arcade.start_render()
self.player.draw()defעדכון(עצמי, זמן_דלתא):
לַעֲבוֹר
MyGame().run()
הוספת תנועת נגן עם קלט מקלדת
כעת לאחר שיצרת את מסך המשחק ואת אובייקט הנגן, תוכל להזיז את הנגן בתגובה לקלט המקלדת. תגדיר את on_key_press() ו on_key_release() שיטות, שאליהן תקרא כאשר הנגן ילחץ או ישחרר מקש.
defon_key_press(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה:
self.player.change_x = -5
אליף key == arcade.key. ימין:
self.player.change_x = 5
אליף key == arcade.key. לְמַעלָה:
self.player.change_y = 5
אליף key == arcade.key. מטה:
self.player.change_y = -5
defon_key_release(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה אוֹ key == arcade.key. ימין:
self.player.change_x = 0
אליף key == arcade.key. לְמַעלָה אוֹ key == arcade.key. מטה:
self.player.change_y = 0
בעת הוספת תנועת נגן עם כניסות מקלדת, אתה יכול להתאים אישית את מהירות התנועה על ידי שינוי הערך שהוקצה ל self.player.change_x ו self.player.change_y. אתה יכול גם להוסיף תנאים להגבלת תנועת השחקנים במסך המשחק.
הוספת תנועת נגן עם קלט עכבר
בנוסף לכניסות למקלדת, ניתן גם להוסיף תנועת נגן באמצעות קלט עכבר. תגדיר את on_mouse_motion() שיטה, שתפעל כאשר השחקן יזיז את העכבר. בתוך השיטה, הגדר את center_x ו center_y מאפייני האובייקט של השחקן למיקום העכבר הנוכחי.
defon_mouse_motion(עצמי, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y
בעת הוספת תנועת שחקן עם קלט עכבר, אתה יכול להתאים אישית את התנהגות אובייקט הנגן כאשר המשתמש לוחץ או מחזיק את העכבר לחוץ על ידי הגדרת שיטות כגון on_mouse_press() אוֹ on_mouse_drag(). אתה יכול להשתמש בשיטות אלה כדי להפעיל פעולות שחקן כגון ירי או קפיצה, בהתאם למכניקת המשחק.
הצגת תכונות נוספות
אתה יכול לשפר עוד יותר את תנועת השחקנים על ידי התחשבות בהאצה והאטה. שנה את on_key_press() שיטה להחסיר או להוסיף ל- שינוי_x ו change_y תכונות של אובייקט השחקן, בהתאם לכיוון התנועה. הגדר גם את שינוי_x ו change_y מאפיינים עד 0 ב on_key_release() השיטה, כמו קודם.
defon_key_press(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה:
self.player.change_x -= 5
אליף key == arcade.key. ימין:
self.player.change_x += 5
אליף key == arcade.key. לְמַעלָה:
self.player.change_y += 5
אליף key == arcade.key. מטה:
self.player.change_y -= 5
defon_key_release(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה אוֹ key == arcade.key. ימין:
self.player.change_x = 0
אליף key == arcade.key. לְמַעלָה אוֹ key == arcade.key. מטה:
self.player.change_y = 0
בדיוק כמו PyGame, אתה גם יכול הוסף זיהוי התנגשות בין אובייקט הנגן וחפצי משחק אחרים, כגון אויבים או מכשולים בארקייד. אתה יכול להשיג זאת על ידי הוספת הקוד הבא ל- עדכון() שיטת ה המשחק שלי מעמד:
defעדכון(עצמי, זמן_דלתא):
self.player.update()# בדוק אם יש התנגשויות בין שחקן לחפצי משחק אחרים
collisions = arcade.check_for_colision_with_list (self.player, self.enemy_list)
ל הִתנַגְשׁוּת ב התנגשויות:
collision.kill()
עשה משחקים מרתקים עם תנועת שחקנים אינטראקטיבית
תנועת שחקנים אינטראקטיבית היא היבט מכריע בכל משחק מרתק. השימוש בסוגים שונים של מכניקת תנועה כמו קפיצה, ריצה, טיסה והחלקה יכול להוסיף גיוון וריגוש למשחק.
מתן שליטה לשחקנים על התנועה שלהם מוסיף תחושה של סוכנות וטבילה, מה שיכול להוביל לחוויית משחק מספקת יותר.