תן לשחקנים שלך משהו לאסוף כשהם מתקדמים במשחק שלך.

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

צור משחק פשוט

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

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

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

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

כחול = arcade.color. כְּחוֹל
אדום = arcade.color. אָדוֹם
שחור = arcade.color. שָׁחוֹר
לבן = arcade.color. לבן
צהוב = arcade.color. צהוב
ירוק = arcade.color. ירוק
כתום = arcade.color. תפוז

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

self.player = ארקייד. SpriteCircle(20, כחול)
self.player.center_x = רוחב // 2
self.player.center_y = גובה // 2

instagram viewer

self.enmy = ארקייד. SpriteSolidColor(20, 20, אדום)
self.enemy.center_x = רוחב // 4
self.enemy.center_y = גובה // 4

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

defעדכון(עצמי, זמן_דלתא):
לַעֲבוֹר

defon_key_press(עצמי, מפתח, משנה):
אם key == arcade.key. שמאלה:
self.player.center_x -= 10
אליף key == arcade.key. ימין:
self.player.center_x += 10
אליף key == arcade.key. לְמַעלָה:
self.player.center_y += 10
אליף key == arcade.key. מטה:
self.player.center_y -= 10

defרָאשִׁי():
משחק = משחק(800, 600)
arcade.run()

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

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

יצירת מדינות משחק

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

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

self.score = 0
עצמי.בריאות = 100

defon_draw(עצמי):
arcade.draw_text(f"ציון: {self.score}", 10, 10, לבן)
arcade.draw_text(ו"בריאות: {self.health}", 10, 30, לבן)

defעדכון(עצמי, זמן_דלתא):
אם arcade.check_for_collision (self.player, self.enemy):
self.health -= 10

אם עצמי.בריאות <= 0:
self.game_over()

defסוף המשחק(עצמי):
# הוסף משחק על לוגיקה כאן
לַעֲבוֹר

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

הוספת פריטי אספנות

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

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

self.collectibles = ארקייד. SpriteList()

ל _ ב טווח(5):
אספנות = ארקייד. SpriteSolidColor(20, 40, צהוב)
collectible.center_x = random.randint(0, רוחב)
collectible.center_y = random.randint(0, גובה)
self.collectibles.append (איסוף)

defon_draw(עצמי):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
arcade.draw_text(f"ציון: {self.score}", 10, 10, לבן)
arcade.draw_text(ו"בריאות: {self.health}", 10, 30, לבן)

defעדכון(עצמי, זמן_דלתא):
ל פריט אספנות ב self.collectibles:
אם arcade.check_for_collision (self.player, פריט אספנות):
self.score += 10
collectible.remove_from_sprite_lists()

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

הוספת כוח-אפים

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

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

self.power_up = ארקייד. SpriteSolidColor(50, 20, ירוק)
self.power_up.center_x = random.randint(0, רוחב)
self.power_up.center_y = random.randint(0, גובה)

self.shield_active = שֶׁקֶר
self.shield_duration = 10
self.shield_timer = 0

defon_draw(עצמי):
arcade.start_render()
self.player.draw()
self.enemy.draw()
self.collectibles.draw()
self.power_up.draw()
arcade.draw_text(f"ציון: {self.score}", 10, 10, לבן)
arcade.draw_text(ו"בריאות: {self.health}", 10, 30, לבן)

defעדכון(עצמי, זמן_דלתא):
אם arcade.check_for_collision (self.player, self.enemy):
אםלֹא self.shield_active:
self.health -= 10
אם עצמי.בריאות <= 0:
self.game_over()
אַחֵר:
self.enemy.remove_from_sprite_lists()

אם self.shield_active:
self.shield_timer += delta_time

אם self.shield_timer >= self.shield_duration:
self.shield_active = שֶׁקֶר
self.shield_timer = 0

ל פריט אספנות ב self.collectibles:
אם arcade.check_for_collision (self.player, פריט אספנות):
self.score += 10
collectible.remove_from_sprite_lists()

אם arcade.check_for_collision (self.player, self.power_up):
self.shield_active = נָכוֹן
self.power_up.remove_from_sprite_lists()

להלן הפלט:

כולל תכונות נוספות

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

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

self.player = ארקייד. SpriteCircle(20, כחול)
# ...

self.timer_power_up = ארקייד. SpriteSolidColor(40, 20, תפוז)
self.timer_power_up.center_x = random.randint(0, רוחב)
self.timer_power_up.center_y = random.randint(0, גובה)

self.game_time = 60# זמן משחק ראשוני בשניות
self.timer_power_up_duration = 10

# ...

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

אם arcade.check_for_collision (self.player, self.timer_power_up):
self.game_time += self.timer_power_up_duration
self.timer_power_up.remove_from_sprite_lists()

# ...

defרָאשִׁי():
משחק = משחק(800, 600)
arcade.run()

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

שיטות עבודה מומלצות עבור Power-Ups ופריטי אספנות

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

בהירות ויזואלית ועקביות

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

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

איזון ואתגר

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

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

אינדיקטורים ומשוב ברורים

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

יחסי אתגר-תגמול

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

בדיקת משחק ואיזון

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

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

הפוך את המשחקים למהנים יותר עם כוח-אפים ופריטי אספנות

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

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