האם אי פעם רצית ליצור משחק מרגש באמצעות ספריית PyGame של Python, אבל הרגשת המום מהקונספט של ניהול זמן? אם כן, אתה לא לבד.
זמן הוא אחד המרכיבים הקריטיים ביותר בפיתוח משחקים, והבנה כיצד הזמן עובד ב-PyGame חיונית ליצירת משחקים מרתקים ומוצלחים. PyGame מספק מספר פונקציות ומודולים שימושיים המאפשרים לך לשלוט בזמן במשחקים שלך.
יצירת משחק פשוט
התחל ביצירת משחק פשוט שבו מלבן זז ימינה. להתחיל, התקן pip במכשיר שלך והשתמש בפקודה למטה כדי להתקין את מודול PyGame:
pip להתקין pygame
אתה יכול למצוא את כל דוגמאות הקוד בזה ריפו של GitHub.
לאחר ההתקנה, ייבא את מודול PyGame. לאחר מכן צרו מסך בגודל 800x600 וצבע רקע לבן, והוסיפו אובייקט ישר. הקוד אמור להיראות בערך כך:
יְבוּא pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
רקע = pygame. משטח (screen.get_size())
background.fill((255, 255, 255))
rect = pygame. רק(0, 0, 20, 20)
לאחר מכן, השתמשו בלולאת while כדי להמשיך את המשחק ולהשאיר את האובייקט הישר זז ימינה עד שהוא מגיע לסוף המסך.
פועל = נָכוֹן
בזמן רץ:
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר
rect.x += 1
אם rect.x > 780:
rect.x = 0
screen.blit (רקע, (0, 0))
pygame.draw.rect (מסך, (0, 0, 0), לתקן)
pygame.display.update()
אתה יכול גם להוסיף קלט משתמש ו התנגשויות במשחק. להלן הפלט:
סקירה כללית של מודול הזמן של PyGame
כדי לשלוט בזמן במשחק הזה, אתה יכול להשתמש ב- pygame.time מודול. מודול זה מספק תכונות שימושיות שונות, כולל א שָׁעוֹן אובייקט עם שיטות כמו get_ticks(), לַחֲכוֹת(), ו לְעַכֵּב(). באמצעות פונקציות אלה, אתה יכול לשלוט בקלות בזמן במשחק שלך.
יצירת אובייקט שעון למעקב אחר זמן
ב-PyGame, אתה יכול להשתמש באובייקט שעון כדי לעקוב אחר הזמן. כדי ליצור שעון, פשוט השתמש בשורת הקוד הבאה:
שעון = pygame.time. שָׁעוֹן()
עם אובייקט שעון זה, כעת תוכל לעקוב אחר השעה במשחק שלך. ישנן גם מספר פונקציות שימושיות אחרות הקשורות לאובייקט השעון, כגון:
-
get_time(): בעזרת פונקציה זו, תוכלו לאחזר את הזמן שלוקח לכל פריים של המשחק. כדי להשתמש בפונקציה זו, פשוט הוסף את שורת הקוד הבאה לאחר לולאת while:
הוסף אובייקט טקסט כדי להציג את הזמן שלקח:time = clock.get_time()
font = pygame.font. SysFont('אריאל', 18)
text = font.render('הזמן שלקח: {} אלפיות השנייה'.format (זמן), נָכוֹן, (0, 0, 0))
screen.blit (טקסט, (0, 0)) -
תִקתוּק(): השתמש בפונקציה זו כדי להגדיר את קצב הפריימים של המשחק. כברירת מחדל, קצב הפריימים מוגדר ל-60 FPS. כדי להגדיר אותו ל-30 FPS, פשוט הוסף את שורת הקוד הבאה:
clock.tick(30)
-
get_fps(): אתה יכול לאחזר את קצב הפריימים הנוכחי של המשחק באמצעות get_fps. כדי להשתמש בפונקציה זו, פשוט הוסף את שורת הקוד הבאה:
אתה יכול להוסיף אובייקט טקסט כדי להציג את קצב הפריימים:fps = clock.get_fps()
font = pygame.font. SysFont('אריאל', 18)
text = font.render('FPS: {}'.format (fps), נָכוֹן, (0, 0, 0))
screen.blit (טקסט, (0, 20)) -
tick_busy_loop(): פונקציה זו מאפשרת לך לחשב כמה אלפיות שניות חלפו מאז הקריאה האחרונה ל- תִקתוּק() פוּנקצִיָה. כדי להשתמש בו, פשוט הוסף את שורת הקוד הבאה:
clock.tick_busy_loop(30)
קבלת הזמן באמצעות get_ticks
ה get_ticks() הפונקציה מחזירה את הזמן באלפיות שניות מאז אתחול PyGame. כדי להשתמש בפונקציה זו, הוסף את שורת הקוד הבאה:
time_elapsed = pygame.time.get_ticks()
הוסף אובייקט טקסט כדי להציג את הזמן שלקח:
font = pygame.font. SysFont('אריאל', 18)
text = font.render('זמן שחלף: {} אלפיות השנייה'.format (זמן_חלף), נָכוֹן, (0, 0, 0))
screen.blit (טקסט, (0, 40))
אתה יכול לנצל את הזמן שחלף כדי ליישם רכיבי משחק מבוססי זמן כגון הפעלת כוח שנמשך פרק זמן מסוים. לדוגמה, אתה יכול ליישם הפעלה שמגבירה את מהירות האובייקט הישר למשך 5 שניות:
אם זמן שחלף / 5000 > 0:
rect.x += 5
להלן הפלט:
השהיית המשחק שימוש בפונקציות ההמתנה וההשהיה
PyGame מספקת גם שתי פונקציות שבהן אתה יכול להשתמש כדי להשהות את המשחק לפרק זמן מסוים: ה לַחֲכוֹת פונקציה ואת לְעַכֵּב פוּנקצִיָה.
כדי להשתמש ב לַחֲכוֹת פונקציה, פשוט הוסף את שורת הקוד הבאה בלולאת while:
pygame.time.wait(1000)
פעולה זו תשהה את המשחק למשך 1000 מילישניות (שנייה אחת). כדי להשתמש ב לְעַכֵּב פונקציה, פשוט הוסף את שורת הקוד הבאה בלולאת while:
pygame.time.delay(1000)
זה יעכב את הפריים הבא של המשחק ב-1000 מילישניות (שנייה אחת).
הבדלים בין המתנה לעיכוב
ישנם כמה הבדלים בין לַחֲכוֹת ו לְעַכֵּב פונקציות. ה לַחֲכוֹת הפונקציה משינה את התהליך כדי לשתף את המעבד עם תוכניות אחרות. ה לְעַכֵּב הפונקציה תשתמש במעבד כדי להפוך את ההשהיה למדויקת יותר. זה אומר שה לְעַכֵּב הפונקציה דורשת יותר כוח מעבד מאשר לַחֲכוֹת מתפקד ומתאים למשחקים שצריכים תזמון מדויק.
יצירת אירוע באמצעות set_timer
אתה יכול להשתמש ב set_timer() פונקציה ליצירת אירוע המופעל לאחר פרק זמן מוגדר.
אירועים ב- PyGame הם אובייקטים המכילים מידע על קלט משתמש או הודעות שנוצרו על ידי תוכניות. כדי להשתמש בפונקציה זו, צור אירוע מותאם אישית והוסף את שורת הקוד הבאה:
pygame.time.set_timer (CUSTOM_EVENT, 1000)
פעולה זו תיצור אירוע המופעל לאחר 1,000 אלפיות השנייה - שנייה אחת. ישנם סוגים שונים של אירועים שאתה יכול להפעיל, כגון תנועת עכבר, קלט מקלדת ואירועי חלון. לאחר מכן, הקוד שלך יכול להגיב לאירועים האלה בכל דרך המתאימה ביותר.
לדוגמה, אם ברצונך לשנות את ציר ה-y של אובייקט rect לאחר שנייה אחת, או כאשר האירוע המותאם אישית מופעל, תוכל להוסיף את שורת הקוד הבאה:
אם event.type == CUSTOM_EVENT:
rect.y += 20
בדרך זו, אתה יכול ליצור בקלות אירועים מבוססי זמן במשחק שלך שבהם תוכל להשתמש כדי ליצור משחק מעניין ומאתגר.
שפר את בקרות המשחק עם הזמן
בעזרת בקרת זמן תוכלו לשפר את בקרות המשחק. אתה יכול לנצל את הזמן כדי ליישם האצה, האטה ואפילו תנאי משחק. משחקים רבים מציגים את הקונספט של זמן כדור שבו הפעולה מואטת לתקופה קצרה.
באמצעות פונקציות בקרת הזמן ב- PyGame, תוכל ליישם בקלות תכונות כאלה - ועוד - במשחקים שלך.