תוכן עניינים:

צור את משחק המירוץ הראשון שלך: 10 שלבים
צור את משחק המירוץ הראשון שלך: 10 שלבים

וִידֵאוֹ: צור את משחק המירוץ הראשון שלך: 10 שלבים

וִידֵאוֹ: צור את משחק המירוץ הראשון שלך: 10 שלבים
וִידֵאוֹ: 10 חרקים שכדאי לכם להתרחק מהם בכל מחיר┃טופטן 2024, נוֹבֶמבֶּר
Anonim
Image
Image
תמונה
תמונה

אם ביצעת קצת קידוד Python ורצית לכתוב משחק שאולי יש לך ברחבי Pygame Zero.

במדריך זה נכתוב משחק מירוצים פשוט.

שלב 1: הסקירה הרחבה

מודול Pygame מוסיף פונקציות רבות שעוזרות לך לכתוב משחקים ב- Python.

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

Pygame Zero היא בחירה מצוינת לכל מי שרוצה להתחיל לכתוב משחקי מחשב ב- Raspberry Pi או בכל מכונת לינוקס.

אתה תצטרך:

  • מכונה שמריצה מערכת הפעלה Linux
  • עורך בכתיבת תוכנית פייתון
  • מקלדת
  • קצת דמיון

קבצים:

github.com/AhmNouira/-Racing-Game

שלב 2: דרישות מוקדמות

ראשית אשתמש במחשב הנייד שלי עם מערכת ההפעלה אובונטו 18.04. לאחר מכן נריץ את המשחק ב- Raspberry Pi בשלב 8.

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

התקנת פיפ עבור Python 3

התחל בעדכון רשימת החבילות באמצעות הפקודה הבאה:

עדכון sudo apt

השתמש בפקודה הבאה להתקנת pip עבור Python 3:

sudo apt להתקין python3-pip

לאמת את ההתקנה על ידי בדיקת גירסת ה- pip:

pip3 -גרסה

התקנת Pygame Zero

pip3 להתקין pgzero --user

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

אז השלב הראשון במסע שלך יהיה לפתוח את Python 3 IDLE או את עורך הפייתון האהוב עליך.

שלב 3: "שלום עולם" ב- Pygame Zero

כברירת מחדל, חלון Pygame Zero נפתח בגודל של 800 פיקסלים ברוחב בגובה של 600 פיקסלים. אתה יכול להתאים אישית

בגודל החלון שלך, יש שני משתנים קבועים שתוכל להגדיר, אם אתה כולל WIDTH = 700 HIGH = 800.

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

פונקציית התיקו ()

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

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

#!/usr/bin/python3 # הגדר את המתורגמן

ייבוא pgzrun # ייבוא מודול pgzero רוחב = 700 # רוחב החלון HEIGHT = 800 # גובה חלון ההפעלה (): # מסך הפונקציה לצייר אפס ציור משחק. מילוי ((128, 128, 128)) # מלא את המסך ב- RGB color screen.draw.text ("שלום עולם!", (270, 320), # צייר "שלום עולם!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

קודם כל עליך לשמור את קובץ התוכנית ולתת לו שם.

לאחר מכן פתח חלון מסוף, עבור למיקום הקובץ שלך והקלד:

./.py

שלב 4: ציור השחקן שלך

ציור השחקן שלך
ציור השחקן שלך

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

אנו יכולים לטעון שחקן על ידי הקלדת החלק העליון של התוכנית:

מכונית = שחקן ("מכונית מירוץ")

ב- Pygame Zero התמונות שלנו צריכות להיות מאוחסנות בספרייה בשם תמונות, ליד קובץ התוכנית שלנו. אז השחקן שלנו יחפש קובץ תמונה בתיקיית התמונות בשם racecar.png. זה יכול להיות קובץ GIF או קובץ JPG, אך מומלץ שהתמונות שלך יהיו קבצי-p.webp

אתה יכול להגדיר את המיקום שלה על המסך על ידי הקלדת:

car.pos = 350, 560

לאחר מכן בפונקציית Draw () שלנו אנו יכולים להקליד

car.draw () # צייר את מכונית המירוץ שלנו במיקום המוגדר שלה

התוכנית המלאה תהיה כדלקמן:

#!/usr/bin/python3

יבוא pgzrun WIDTH = 700 # רוחב החלון HEIGHT = 800 # גובה מכונית החלון = שחקן ("מכונית מרוץ") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # מלא את המסך ב- car.draw () pgzrun.go ()

בדוק את התוכנית שלך כדי לוודא שזה עובד.

שלב 5: שליטה בשחקן

לשלוט על השחקן
לשלוט על השחקן

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

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

פונקציית העדכון ()

פונקציה זו נבדקת כל הזמן בזמן שהמשחק פועל.

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

אז נוסיף פונקציה זו לתוכנית שלנו

עדכון def ():

אם מקלדת.שמאל: car.x -= 2 אם keyboard.right: car.x += 2 אם keyboard.up: car.y -= 2 אם מקלדת.מטה: car.y += 2

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

שלב 6: בניית המסלול

בניית המסלול
בניית המסלול

כעת, כשיש לנו מכונית שאנו יכולים לנהוג בה, אנו זקוקים למסלול שנוסע עליה.

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

נצטרך גם להגדיר עוד כמה משתנים למסלול.

אז בואו נכין פונקציה חדשה שנקראת makeTrack (), הפונקציה תוסיף רצועה אחת Actor משמאל ואחת מימין, שניהם משתמשים בתמונה bare-p.webp

trackLeft = # רשימה לאחסון בריסים שמאליים

trackRight = # רשימה לאחסון חסימות ימניות trackCount = 0 # ספירת מספר החבילות trackPosition = 350 trackWidth = 150 # רוחב בין משמאל לימין barries def makeTrack (): # פונקציה ליצירת בארי אחד במספר הגלובאלי השמאלי והימני של trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount += 1

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

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

trackDriction = False

SPEED = 4 # מגדיר את מהירות המשחק מרנדיינט יבוא אקראי # ייבא את מחלקת רנדינט ממודול אקראי def updateTrack (): trackic global, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: אם trackDirection == שקר: trackPosition += 16 אם trackDirection == True: trackPosition - = 16 אם randint (0, 4) == 1: trackDirection = לא trackDirection אם trackPosition> 700 - trackWidth: trackDirection = נכון אם trackPosition < trackWidth: trackDirection = False makeTrack () # צור רצועה חדשה בחלק העליון של המסך

עיין בקובץ ה- zip למטה בשם "RaceGameDemo".

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

שלב 7: התרסקות מכוניות

תאונת דרכים
תאונת דרכים
תאונת דרכים
תאונת דרכים
תאונת דרכים
תאונת דרכים

עלינו לוודא שהמכונית שלנו לא תיגע במסלול שחקנים.

אנו יכולים לבדוק אם יש התנגשויות באמצעות השיטה colliderect () בפונקציית updateTrack () שלנו.

במשחק זה יהיו לנו שלוש מצבים שונים למשחק המאוחסנים במשחק המשתנה שלנו:

  • gameStatus == 0 # המשחק פועל
  • gameStatus == 1 # תאונת דרכים
  • gameStatus == 2 # משחק הסתיים

נצטרך לשנות את הפונקציה draw () ואת פונקציית העדכון () שלנו כדי להגיב למשתנה gameStatus.

נגיעות גמר

כל שעלינו לעשות כעת הוא להציג משהו אם gameStatus מוגדר ל -1 או 2, לדוגמה עלינו להציג אדום

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

screen.blit ("redflag", (230, 230))

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

screen.blit ("finishflag", (230, 230))

כמו כן, נציג מעט טקסט במסך כמו הציון הנוכחי של המשחק.

עיין ברשימת הקוד המלאה כדי לראות כיצד כל זה משתלב.

שלב 8: הפעל את המשחק ב- Raspberry Pi

הפעל את המשחק ב- Raspberry Pi
הפעל את המשחק ב- Raspberry Pi
הפעל את המשחק ב- Raspberry Pi
הפעל את המשחק ב- Raspberry Pi

ב- Raspberry Pi pgzero הותקן כברירת מחדל מאז יציאת Raspbian Jessie בספטמבר 2015.

פשוט עדכן את ה- Raspberry Pi שלך באמצעות הפקודה:

עדכון sudo apt-get

עבור למיקום הקובץ שלך והקלד את הטרמינל.

pgzrun.py

שלב 9: האם ניצחת?

האם ניצחת?
האם ניצחת?

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

שלב 10: סיכום

Pygame Zero היא בחירה מצוינת לכל מי שרוצה להתחיל לכתוב משחקי מחשב.

אם יש לך שאלה כמובן אתה יכול להשאיר תגובה. כדי לראות עוד על העבודות שלי אנא בקר בערוץ שלי:

myYouTube

myTwitter

myLinkedin

תודה שקראת את ההנחיה ^^ והמשך יום נעים. נתראה. אחמד נוירה.

מוּמלָץ: