תוכן עניינים:
- שלב 1: הסקירה הרחבה
- שלב 2: דרישות מוקדמות
- שלב 3: "שלום עולם" ב- Pygame Zero
- שלב 4: ציור השחקן שלך
- שלב 5: שליטה בשחקן
- שלב 6: בניית המסלול
- שלב 7: התרסקות מכוניות
- שלב 8: הפעל את המשחק ב- Raspberry Pi
- שלב 9: האם ניצחת?
- שלב 10: סיכום
וִידֵאוֹ: צור את משחק המירוץ הראשון שלך: 10 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
אם ביצעת קצת קידוד 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
עיין בקובץ ה- 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 pgzero הותקן כברירת מחדל מאז יציאת Raspbian Jessie בספטמבר 2015.
פשוט עדכן את ה- Raspberry Pi שלך באמצעות הפקודה:
עדכון sudo apt-get
עבור למיקום הקובץ שלך והקלד את הטרמינל.
pgzrun.py
שלב 9: האם ניצחת?
אתה יכול להפוך את המשחק לקל או קשה יותר על ידי שינוי המשתנה trackWidth כדי להפוך את המסלול לרוחב אחר. תוכל לשנות את הערך של SPEED כדי לגרום למסלול לנוע מהר או איטי יותר.
שלב 10: סיכום
Pygame Zero היא בחירה מצוינת לכל מי שרוצה להתחיל לכתוב משחקי מחשב.
אם יש לך שאלה כמובן אתה יכול להשאיר תגובה. כדי לראות עוד על העבודות שלי אנא בקר בערוץ שלי:
myYouTube
myTwitter
myLinkedin
תודה שקראת את ההנחיה ^^ והמשך יום נעים. נתראה. אחמד נוירה.
מוּמלָץ:
יצירת האתר הראשון שלך: 10 שלבים
יצירת האתר הראשון שלך: במדריך זה תלמד לבנות דף אינטרנט בסיסי הכולל גיליון סגנונות מקושר וקובץ JavaScript אינטראקטיבי
לפרוס את יישום רשימת המטלות הראשון שלך: 8 שלבים
לפרוס את יישום רשימת המטלות הראשון שלך: אם אתה חדש לגמרי בקידוד או שיש לך קידוד רקע, ייתכן שאתה תוהה היכן להתחיל ללמוד. אתה צריך ללמוד כיצד, מה, היכן לקודד ולאחר מכן, לאחר שהקוד מוכן, כיצד לפרוס אותו כדי שהכל יראה. ובכן, החדשות הטובות הן
השמעת הצליל הראשון שלך בארון VCV: 4 שלבים
השמעת הקול הראשון שלך בארון VCV: במדריך זה אראה לך כיצד להתחיל להתנסות בתוכנית הסינתר המודולרית VCV Rack. VCV Rack היא תוכנית חינמית המשמשת לחיקוי של סינתר מודולרי, כך שהיא נהדרת לאנשים שרוצים להתחיל בסינתורים אבל לא רוצים
חיווט הרובוט הראשון שלך במשקל 150 גרם נגד משקל: 10 שלבים
חיווט הרובוט הראשון שלך במשקל 150 גרם נגד משקל: רובוט נגד משקל הוא רובוט קטן, בשליטה מרחוק, נלחם. כמו אלה שנראו ב- Robot Wars וב- Battlebots, אך קטנים בהרבה! זוהי אחת משיעורי המשקל, והשיעורים עשויים להשתנות בהתאם למדינה שבה אתה נמצא. בבריטניה, משקל נגד:
איך לגרום ל- MpegPlayer לעבוד ב- Rockbox - דור ה- Nano הראשון של הדור הראשון: 7 שלבים
איך לגרום ל- MpegPlayer לעבוד ב- Rockbox - הדור הראשון של ה- iPod Nano: ** עדכון חשוב מאוד ** אם צפיתם בזה בעבר, WINFF שינה את ממשק המשתמש שלו. עכשיו זה בגרסה 0.41. התוכנית יעילה יותר ועכשיו יש לה "רוקבוקס"; תחת " המרה ל- " רשימה. אני אעדכן זאת כשאעשה הצעה