כך תוכל להוסיף רמות למשחק שלך כדי להפוך אותו למושך ומהנה יותר.

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

רמות תכנון ועיצוב

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

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

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

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

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

pip להתקין pygame

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

instagram viewer
יְבוּא pygame

pygame.init()

# הגדר קבועים
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 100
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# צור את המסך
מסך = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# צור את הפלטפורמה
פלטפורמה = pygame. רק(350, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# צור את הנגן
שחקן = pygame. רק(375, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# לולאת משחק
פועל = נָכוֹן
בזמן רץ:
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר
אליף event.type == pygame. מקש:
אם event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
אליף event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# מלא את המסך בצבע שחור
screen.fill((0, 0, 0))

# צייר את הפלטפורמה
pygame.draw.rect (מסך, PLATFORM_COLOR, פלטפורמה)

# צייר את השחקן
pygame.draw.rect (מסך, PLAYER_COLOR, שחקן)

# עדכן את המסך
pygame.display.flip()

pygame.quit()

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

יְבוּא pygame

pygame.init()

# הגדר קבועים
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLATFORM_WIDTH = 150
PLATFORM_HEIGHT = 20
PLAYER_WIDTH = 50
PLAYER_HEIGHT = 50
PLATFORM_COLOR = (255, 255, 255)
PLAYER_COLOR = (255, 0, 0)

# צור את המסך
מסך = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))

# צור את הפלטפורמה
פלטפורמה = pygame. רק(200, 500, PLATFORM_WIDTH, PLATFORM_HEIGHT)

# צור את הנגן
שחקן = pygame. רק(225, 450, PLAYER_WIDTH, PLAYER_HEIGHT)

# לולאת משחק
פועל = נָכוֹן
בזמן רץ:
ל מִקרֶה ב pygame.event.get():
אם event.type == pygame. לְהַפְסִיק:
פועל = שֶׁקֶר
אליף event.type == pygame. מקש:
אם event.key == pygame. K_LEFT:
player.move_ip(-10, 0)
אליף event.key == pygame. K_RIGHT:
player.move_ip(10, 0)

# מלא את המסך בצבע שחור
screen.fill((0, 0, 0))

# צייר את הפלטפורמה
pygame.draw.rect (מסך, PLATFORM_COLOR, פלטפורמה)

# צייר את השחקן
pygame.draw.rect (מסך, PLAYER_COLOR, שחקן)

# עדכן את המסך
pygame.display.flip()

pygame.quit()

קוד זה דומה לרמה הראשונה, אך הפלטפורמה ועמדות השחקן משתנות.

חיבור רמות שונות

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

הנה לולאת המשחק ששונתה:

רמה הנוכחית = 1

# צייר את הפלטפורמה והשחקן על סמך הרמה הנוכחית
אם רמה הנוכחית == 1:
pygame.draw.rect (מסך, PLATFORM_COLOR, platform1)
pygame.draw.rect (מסך, PLAYER_COLOR, שחקן)
# בדוק אם השחקן הגיע לסוף הרמה
אם player.colliderect (פלטפורמה1) == שֶׁקֶר:
רמה הנוכחית = 2
אליף רמה הנוכחית == 2:
pygame.draw.rect (מסך, PLATFORM_COLOR, פלטפורמה2)
pygame.draw.rect (מסך, PLAYER_COLOR, שחקן)
# בדוק אם השחקן הגיע לסוף הרמה
אם player.colliderect (פלטפורמה2) == נָכוֹן:
פועל = שֶׁקֶר

שיתוף נתוני המשחק בין רמות

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

להלן השלבים:

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

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

בתוך ה game_data.py מודול, הוסף את הקוד הבא:

player_pos = (0, 0)

שלב ראשון:

יְבוּא pygame
יְבוּא נתוני משחק

# צור את הנגן
שחקן = pygame. Rect (game_data.player_pos[0], game_data.player_pos[1], PLAYER_WIDTH, PLAYER_HEIGHT)

# לולאת משחק
פועל = נָכוֹן
בזמן רץ:
# צייר את השחקן
pygame.draw.rect (מסך, PLAYER_COLOR, שחקן)

# עדכן את מיקומו של השחקן במודול game_data
game_data.player_pos = (player.x, player.y)

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

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