ספריית המשחקים של Python מלאה בתכונות, כולל כמה כלים פשוטים שבהם אתה יכול להשתמש כדי ליצור גלילה חלקה ופרלקסית.
רקע גלילה יכול לשפר מאוד את המשיכה החזותית ואת העומק של משחק. הם יכולים ליצור אשליה של תנועה, לתת למשחק תחושה דינמית וסוחפת. אתה יכול ליישם רקע גלילה בכמה שלבים פשוטים באמצעות Pygame.
Pygame היא ספריית Python פופולרית שתוכל להשתמש בה כדי לפתח משחקים. הוספת רקע גלילה לפרויקטי Pygame שלך תביא אותם לחיים ותספק חוויה מרתקת יותר לשחקנים.
צור משחק פשוט
כדי להבין את הרעיון של גלילה רקע ב-Pygame, התחל ביצירת משחק פשוט שבו השחקן יכול לנוע ימינה ושמאלה. אתה יכול גם לכלול שתי פלטפורמות, המיוצגות על ידי מלבנים, שישמשו כסביבת המשחק. צור קובץ חדש בשם simple-game.py.
הקוד המשמש במאמר זה זמין כאן מאגר GitHub והוא בחינם עבורך לשימוש תחת רישיון MIT.
ראשית, ייבא את מודול ה-pygame ואתחל אותו. לאחר מכן הגדר את עמדת ההתחלה ומהירות התנועה של השחקן. צור פלטפורמות באמצעות pygame. רקט אובייקטים ולהגדיר את מיקומם וממדיהם.
בתוך לולאת המשחק, טפל באירועים כגון יציאה מהמשחק. אתה יכול גם להתמודד תנועת נגן המבוססת על כניסות מגע או מקלדת.
הנה הפלט של המשחק הפשוט:
צור שכבות שונות
כדי להשיג את אפקט הגלילה, אתה יכול ליצור שכבות מרובות של רקעים עם צבעים שונים. כל שכבה תנוע במהירות שונה, ותיצור אפקט פרלקסי. אפקט זה נותן אשליה של עומק ומשפר את תחושת התנועה במשחק.
הגדר שתי שכבות רקע, כל אחת מכסה את כל חלון המשחק, באמצעות pygame. ישר חפצים. הגדירו גם את הצבעים של כל שכבה ב- רקע_צבעי רשימה. ה רקע_מהירות רשימה קובעת את המהירות שבה כל שכבה תנוע.
# הוסף קוד זה מתחת לסעיף הקודם
רקע_שכבות = [
pygame. רק(0, 0, מסך_רוחב, מסך_גובה),
pygame. רק(0, 0, מסך_רוחב, מסך_גובה)
]
רקע_צבעי = [(30, 30, 30), (60, 60, 60)]
רקע_מהירויות = [0.1, 1.0]
כדי ליצור את אפקט הרקע הגלילה, עליך לעדכן את המיקומים של שכבות הרקע בלולאת המשחק. תזיז כל שכבה אופקית על סמך המהירות שהוקצתה לה.
צור קובץ חדש בשם scrolling-bg.py והוסיפו את הקוד עם העדכונים הבאים:
ל אני ב טווח (len (background_layers)):
background_layers[i].x -= background_speeds[i]אם background_layers[i].x <= -screen_width:
רקע_שכבות[i].x = 0
pygame.draw.rect (מסך, צבעי_רקע[i], שכבות_רקע[i])
חזור על כל שכבת רקע. הורידו את המהירות המתאימה מקואורדינטת ה-x של השכבה, מה שגורם לה לנוע שמאלה. אם שכבה מגיעה לקצה השמאלי של המסך, אפס את מיקומה ימינה, ויוצר אפקט גלילה מתמשך.
סוף כל סוף, צייר כל שכבת רקע מלבנית על המסך באמצעות pygame.draw.rect() ומעבירים את הצבע והמשחק המתאים. חפץ ישר.
הוספת אפקט פרלקסה תוך כדי תנועה
כדי לשפר את אפקט הפרלקסה, אתה יכול לשנות את תנועת הפלטפורמה כך שתתרחש כשהשחקן זז. זה ייצור תחושה חזקה של עומק ותנועה דינמית. צור קובץ חדש בשם parallax.py והוסיפו את הקוד עם העדכונים הבאים:
# הגדר את עמדות הפלטפורמה ואת המהירויות
rect1 = pygame. רק(50, גובה_מסך - 100, 200, 10)
rect2 = pygame. Rect (רוחב_מסך - 250, גובה_מסך - 200, 200, 10)פלטפורמות = [
{"נכון": rect1, "מְהִירוּת": 3},
{"נכון": rect2, "מְהִירוּת": 1}
]# הוסף את הקוד הזה בתוך לולאת המשחק
# תנועת שחקן
keys = pygame.key.get_pressed()אם keys[pygame. K_LEFT] ו player_x > 0:
player_x -= player_speedל פּלַטפוֹרמָה ב פלטפורמות:
פּלַטפוֹרמָה["נכון"].x -= פלטפורמה["מְהִירוּת"]אם keys[pygame. K_RIGHT] ו player_x < screen_width:
player_x += player_speedל פּלַטפוֹרמָה ב פלטפורמות:
פּלַטפוֹרמָה["נכון"].x += פלטפורמה["מְהִירוּת"]
ל פּלַטפוֹרמָה ב פלטפורמות:
pygame.draw.rect (מסך, (0, 255, 0), פלטפורמה["נכון"])
ייצגו את הפלטפורמות כמילונים המכילים גם את עצם המלבן (רect) וגם את המהירות שבה הפלטפורמה צריכה לנוע (מהירות). הפלטפורמות מתעדכנות בלולאת המשחק על סמך תנועת השחקן.
על ידי יישום שינוי זה, אפקט הגלילה יהיה פעיל רק כאשר השחקן זז באופן פעיל, מה שמגביר עוד יותר את האשליה של עומק ותנועה.
כולל תכונות נוספות
אתה יכול ליישם מספר תכונות נוספות כדי לשפר את רקע הגלילה במשחק שלך. הנה כמה דוגמאות.
עשה אקראי צבעי רקע
כדי להוסיף וריאציה לשכבות הרקע, אתה יכול לעשות אקראי את הצבעים שלהן. אתה יכול לעשות זאת על ידי שינוי ה- רקע_צבעי רשימה:
יְבוּא אַקרַאִי
# הוסף את הקוד הזה לפני לולאת המשחק
רקע_צבעי = [
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)),
(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
]
הוסף עוד שכבות רקע
אתה יכול להתנסות בהוספת שכבות רקע נוספות כדי ליצור אפקט פרלקס עשיר יותר. פשוט הגדר תוספת pygame. רקט עצמים, צבעים ומהירויות:
# הוסף את הקוד הזה לפני לולאת המשחק
רקע_שכבות = [
pygame. רק(0, 0, מסך_רוחב, מסך_גובה),
pygame. רק(0, 0, מסך_רוחב, מסך_גובה),
pygame. רק(0, 0, מסך_רוחב, מסך_גובה),
pygame. רק(0, 0, מסך_רוחב, מסך_גובה)
]רקע_צבעי = [
(30, 30, 30),
(60, 60, 60),
(90, 90, 90),
(120, 120, 120)
]
רקע_מהירויות = [1, 2, 3, 4]
השתמש בתמונות עבור רקעים
במקום צבעים אחידים, אתה יכול להשתמש בקבצי תמונה כרקע. Pygame מספק פונקציות לטעינה ולעיבוד תמונות.
טען את קבצי התמונה background_0.png, background_1.png, ו background_2.png באמצעות pygame.image.load(). השתמש בשיטת convert() כדי לשפר את הביצועים ולהתאים את התמונות כך שיתאימו למידות המסך pygame.transform.scale().
# הוסף את הקוד הזה לפני לולאת המשחק
רקע_תמונות = [
pygame.image.load("background_0.png").להמיר(),
pygame.image.load("background_1.png").להמיר(),
pygame.image.load("background_2.png").להמיר()
]רקע_מהירויות = [1, 2, 3]
ל אני ב טווח (len (background_images)):
גודל = (רוחב_מסך, גובה_מסך)
background_images[i] = pygame.transform.scale (background_images[i], גודל)
לבסוף, עדכן את הלולאה שבה אתה מצייר את שכבות הרקע כדי להשתמש בתמונות:
# עדכן את הקוד הזה בתוך לולאת המשחק
ל אני ב טווח (len (background_layers)):
background_layers[i].x -= background_speeds[i]אם background_layers[i].x <= -screen_width:
רקע_שכבות[i].x = 0
screen.blit (רקע_תמונות[i], שכבות_ברקע[i])
הנה כמה שיטות עבודה מומלצות שכדאי לקחת בחשבון בעת יישום רקע גלילה בפרויקטים של Pygame שלך.
מיטוב ביצועים
רקע גלילה כרוך בעיבוד ועדכון מתמשכים. כדי להבטיח משחק חלק, שקול לבצע אופטימיזציה של הקוד שלך ולמזער חישובים מיותרים.
ניסוי עם מהירויות שכבות
התאמת המהירויות של שכבות הרקע יכולה ליצור אפקטים שונים. שחקו עם ערכים שונים כדי למצוא את האיזון הנכון ולהשיג את ההשפעה החזותית הרצויה.
בדיקה על גדלי מסך שונים
ודא שרקע הגלילה שלך עובד היטב ברזולוציות מסך שונות. שקול ליישם קנה מידה דינמי או להשתמש בתמונות רקע שונות עבור יחסי גובה-רוחב שונים.
השתמש בפורמטים מתאימים של תמונה
אם תחליט להשתמש בתמונות לרקע שלך, בחר את פורמט התמונה המתאים (למשל PNG, JPEG) כדי לאזן בין גודל הקובץ לאיכות התמונה. אתה יכול גם להפחית את זמני הטעינה על ידי דחיסה ואופטימיזציה של התמונות שלך.
שקול שימוש בזיכרון
אם אתה מתכנן להשתמש בתמונות רבות ברזולוציה גבוהה עבור הרקע שלך, שים לב לדרישות הזיכרון. תמונות גדולות יכולות לצרוך כמות משמעותית של זיכרון, מה שעלול להשפיע על הביצועים וההיענות של המשחק שלך.
על ידי שילוב רקע גלילה, תוכל ליצור סביבות שונות, כגון נופים נעים, נופים עירוניים עתידניים או עולמות תת-מימיים. אפקט הפרלקסה מוסיף מגע דינמי, וגורם לעולם המשחק להרגיש חי ואינטראקטיבי.
זכור להתנסות, לחזור ולחקור אפשרויות יצירתיות עם רקע גלילה כדי להפוך את המשחקים שלך למהנים ושובים יותר עבור השחקנים.