Mündəricat:
- Addım 1: Geniş Baxış
- Addım 2: Ön şərtlər
- Addım 3: Pygame Zero -da "Salam Dünya"
- Addım 4: Aktyorunuzu çəkin
- Addım 5: Aktyora nəzarət edin
- Addım 6: Yolun qurulması
- Addım 7: Avtomobil qəzası
- Addım 8: Oyunu Raspberry Pi üzərində işləyin
- Addım 9: Qazandınızmı?
- Addım 10: Nəticə
Video: İlk yarış oyununuzu yaradın: 10 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bir az Python kodlaşdırma etmisinizsə və bir oyun yazmaq istəsəniz, Pygame Zero -da ola bilər.
Bu dərslikdə sadə bir yarış oyunu yazacağıq.
Addım 1: Geniş Baxış
Pygame modulu Pythonda oyun yazmağınıza kömək edən bir çox funksiya əlavə edir.
Pygame Zero, bütün bu oyun döngələrini düzəltməyin və proqram quruluşunuzun qurulmasının çətin prosesini keçməyiniz üçün bir addım daha irəli gedir.
Pygame Zero, Raspberry Pi və ya hər hansı bir Linux maşınında kompüter oyunları yazmağa başlamaq istəyən hər kəs üçün əla seçimdir.
Ehtiyacınız olacaq:
- Linux OS ilə işləyən maşın
- Python proqramı yazmaq üçün redaktor
- Klaviatura
- Biraz təsəvvür
Fayllar:
github.com/AhmNouira/-Racing-Game
Addım 2: Ön şərtlər
Əvvəlcə Ubuntu 18.04 OS ilə dizüstü kompüterimi istifadə edəcəyəm. Sonra oyunu 8 -ci addımda Raspberry Pi üzərində idarə edəcəyik.
Bu təlimata davam etməzdən əvvəl, sudo imtiyazları olan bir istifadəçi olaraq daxil olduğunuzdan əmin olun.
Python 3 üçün pip quraşdırılması
Aşağıdakı əmri istifadə edərək paket siyahısını yeniləməklə başlayın:
sudo apt yeniləmə
Python 3 üçün pip qurmaq üçün aşağıdakı əmrdən istifadə edin:
sudo apt install python3-pip
pip versiyasını yoxlayaraq quraşdırmanı yoxlayın:
pip3 -versiya
Pygame Zero quraşdırılır
pip3 pgzero --user qurun
Bu da Pygame quracaq. Əvvəlcədən tərtib edilmiş Pygame paketləri
Beləliklə, səyahətinizdə ilk addım Python 3 IDLE və ya sevdiyiniz python redaktorunu açmaq olacaq.
Addım 3: Pygame Zero -da "Salam Dünya"
Varsayılan olaraq, Pygame Zero pəncərəsi 800 piksel genişliyində və 600 piksel yüksəkliyində açılır. Fərdiləşdirə bilərsiniz
Pəncərənizin ölçüsü, WIDTH = 700 HIGH = 800 daxil etsəniz, təyin edə biləcəyiniz iki əvvəlcədən təyin edilmiş dəyişən var.
Pygame sıfır, normal olaraq yerinə yetirən oyun döngəsini idarə etmək üçün əvvəlcədən təyin edilmiş funksiyalar təmin edir:
Draw () funksiyası
Bu funksiyanı normal olaraq Pythonda bir funksiya təyin etdiyimiz kimi proqramımıza da yaza bilərik.
Pygame Zero, Python ilə eyni formatlama qaydalarına riayət edir, buna görə də kodunuzu düzgün bir şəkildə daxil etmək üçün diqqətli olmalısınız.
#!/usr/bin/python3 # tərcüməçini təyin edin
import pgzrun # import pgzero modulu WIDTH = 700 # pəncərənin eni HEIGHT = 800 # pəncərənin hündürlüyü def draw (): # pygame zero draw funksiyası ekranı. doldurun ((128, 128, 128)) # ekranı RGB ilə doldurun rəngli ekran.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()
Əvvəlcə proqram faylınızı saxlamalı və ona bir ad verməlisiniz.
Sonra bir Terminal pəncərəsi açın, fayl yerinizə gedin və yazın:
./.py
Addım 4: Aktyorunuzu çəkin
Artıq səhnə dəstimiz var, Aktyorlarımızı yarada bilərik, bunlar Pygame Zero -da dinamik obyektlərdir.
Proqramın üstünə yazaraq bir Aktyor yükləyə bilərik:
avtomobil = Aktyor ("yarış avtomobili")
Pygame Zero -da şəkillərimizi proqram faylımızın yanında şəkillər adlı bir qovluqda saxlamaq lazımdır. Buna görə də Aktyorumuz racecar.png adlı şəkillər qovluğunda bir görüntü faylı axtaracaqdı. GIF və ya-j.webp
Yazaraq ekrandakı mövqeyini təyin edə bilərsiniz:
avtomobil.pos = 350, 560
Bundan sonra draw () funksiyamızda yaza bilərik
car.draw () # yarış maşınımızı müəyyən edilmiş mövqeyinə çəkin
Tam proqram belə olacaq:
#!/usr/bin/python3
import pgzrun WIDTH = 700 # pəncərənin eni HEIGHT = 800 # pəncərənin hündürlüyü = Aktyor ("yarış avtomobili") car.pos = 350, 560 def draw (): # pygame zero draw funksiyası ekranı. doldurun ((128, 128, 128)) # ekranı car.draw () ilə doldurun pgzrun.go ()
Bunun işlədiyinə əmin olmaq üçün proqramınızı sınayın.
Addım 5: Aktyora nəzarət edin
Maşınınızı ekranda çəkdikdən sonra, növbəti mərhələ oyunçunun hərəkət etməsini təmin etməkdir.
Bunu düymələrə basaraq edə bilərik. Bu düymələrin vəziyyətini update () adlı başqa bir əvvəlcədən təyin edilmiş funksiyada oxuya bilərik.
Yeniləmə () funksiyası
Oyun işləyərkən bu funksiya daim yoxlanılır.
Ok düymələrinə basmağı aşkar etmək və bununla əlaqədar bir şey etmək üçün bir kod yazmalıyıq.
Beləliklə, bu funksiyanı proqramımıza əlavə edəcəyik
def yeniləməsi ():
əgər klaviatura.sola: car.x -= 2 əgər klaviatura.sağ: car.x += 2 əgər klaviatura.up: car.y -= 2 əgər klaviatura aşağı: car.y += 2
Bu kod xətləri, Aktyor avtomobilini sola, sağa, irəli və geriyə hərəkət etdirəcək.
Addım 6: Yolun qurulması
Sükanı idarə edə biləcəyimiz bir avtomobilimiz olduğu üçün, onu idarə etmək üçün bir izə ehtiyacımız var.
Trackimizi aktyorlardan bir -bir sıraya quracağıq. Yaratdığımız aktyorları izləmək üçün bəzi siyahılar hazırlamalı olacağıq.
Parça üçün daha bir neçə dəyişən qurmalıyıq.
Sonra makeTrack () adlı yeni bir funksiya edək, funksiya şəkillər qovluğumuzda bare-p.webp
trackLeft = Sol qarğıdalı saxlamaq üçün # siyahı
trackRight = Sağ bariyərləri saxlamaq üçün # siyahı trackCount = 0 # sarımsağın sayını hesablayın trackPosition = 350 trackWidth = 150 # sol və sağ bariyerlər arasındakı en def defTTack (): sol və sağda bir barri etmək üçün # funksiya qlobal trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Aktyor ("çılpaq", pos = (trackPosition-trackWidth, 0))) trackRight.append (Aktyor ("çılpaq", pos = (trackPosition + trackWidth, 0))) trackCount += 1
Etməli olduğumuz növbəti şey, ekranın aşağı hissələrini avtomobilə doğru hərəkət etdirməkdir.
Gəlin updateTrack () adlı yeni bir funksiya yazaq, Bu funksiya track bloklarının görünəcəyi yerləri yeniləyir. Parça parçaları təsadüfi ədədlərlə yaradılır, buna görə də hər oyun fərqlidir.
trackDriction = Yanlış
SPEED = 4 # təsadüfi idxal randintindən oyunun sürətini təyin edir # randint sinifini təsadüfi moduldan def updateTrack (): qlobal trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 ikən b
Zəhmət olmasa aşağıdakı "RaceGameDemo" adlı zip faylına baxın.
Bu anda kodumuzu işə salırıqsa, maşına doğru aşağıya doğru irəliləyən bir yol görməliyik. Yeganə problem, maşını yol maneələrindən keçə bilməyimizdir və bəzi toqquşma aşkarlayaraq maşını içərisində saxlamaq istəyirik.
Addım 7: Avtomobil qəzası
Maşınınızın Aktyorlar trekinə toxunmadığından əmin olmalıyıq.
updateTrack () funksiyamızda colliderect () metodundan istifadə edərək toqquşmaları da yoxlaya bilərik.
Bu oyunda dəyişkən gameStatus -da saxlanılan oyuna üç fərqli vəziyyətimiz olacaq:
- gameStatus == 0 # oyun çalışır
- gameStatus == 1 # avtomobil qəzası
- gameStatus == 2 # oyun bitdi
GameStatus dəyişəninə cavab vermək üçün draw () funksiyamızı və update () funksiyamızı dəyişməliyik.
Son toxunuşlar
İndi etməmiz lazım olan şey, gameStatus 1 və ya 2 olaraq təyin edildikdə bir şey göstərməkdir, məsələn qırmızı göstərməliyik.
bayraq, avtomobil qəzaya uğradı. Bunu aşağıdakı kodla edə bilərik:
screen.blit ("qırmızı bayraq", (230, 230))
Avtomobilin finişə çatıb -çatmadığını görmək üçün neçə trek bölməsi yaradıldığını saymalıyıq və sonra 200 -ə çatanda gameStatus -u 2 -yə qoymalıyıq. Sonra damalı bayrağı göstərək:
screen.blit ("finiş bayrağı", (230, 230))
Ekranda oyunun cari hesabına bənzər bir mətn də göstərəcəyik.
Bütün bunların necə bir araya gəldiyini görmək üçün tam kod siyahısına baxın.
Addım 8: Oyunu Raspberry Pi üzərində işləyin
Raspberry Pi -də pgzero, Raspbian Jessie'nin 2015 -ci ilin sentyabr ayında çıxmasından bəri standart olaraq quraşdırılmışdır.
Sadəcə əmrdən istifadə edərək Raspberry Pi -ni yeniləyin:
sudo apt-get yeniləməsi
Faylınızın yerləşdiyi yerə gedin və Terminala yazın.
pgzrun.py
Addım 9: Qazandınızmı?
Parçanı fərqli bir genişliyə çevirmək üçün trackWidth dəyişənini dəyişdirərək oyunu asanlaşdıra və ya çətinləşdirə bilərsiniz. Parçanın daha sürətli və ya yavaş hərəkət etməsi üçün SPEED dəyərini dəyişə bilərsiniz.
Addım 10: Nəticə
Pygame Zero kompüter oyunları yazmağa başlamaq istəyən hər kəs üçün əla seçimdir.
Hər hansı bir sualınız varsa, şərh yaza bilərsiniz. Əsərlərim haqqında daha çox məlumat əldə etmək üçün kanalıma daxil olun:
myYouTube
myTwitter
myLinkedin
Bu təlimatı oxuduğunuz üçün təşəkkürlər ^^ və gözəl bir gün keçirin. Görüşərik. Əhməd Nouira.
Tövsiyə:
Öz 2048 Oyununuzu W/Java ilə Proqramlaşdırın: 8 Addım
Öz 2048 Oyununuzu W/Java ilə Proqramlaşdırın !: 2048 oyununu sevirəm. Buna görə də öz versiyamı proqramlaşdırmağa qərar verdim. Əsl oyuna çox bənzəyir, amma özüm proqramlaşdırmaq mənə istədiyimi istədiyim şeyi dəyişdirmə azadlığı verir. Tipik 4x4 əvəzinə 5x5 oyun istəsəm, bir
1D Pong Oyununuzu Özünüz Edin: 5 Adım (Şəkillərlə)
Öz 1D Pong Oyununuzu Özünüz Edin: Bu layihə üçün oynamaq üçün həqiqətən əyləncəli olan 1D Pong Oyunu yaratmaq üçün MDF lövhəsini səs siqnalı düymələri, LEDlər və Arduino Nano ilə necə birləşdirdiyimi sizə göstərəcəyəm. Yolda sizə elektron dövrəsinin necə yaradılacağını və nə qədər fərqli olduğunu göstərəcəyəm
Yarış avtomobillərində CD -lərin təkrar emalı: 8 addım (şəkillərlə birlikdə)
Yarış Maşınlarına CD -lərin təkrar emalı: Hamıya salam. Bu bizim avtomobil yarış maşınımızdır Tamamilə pulsuzdur və avtomatikdir Bir valideyn olsanız, uşaqlarınızla oynamaq çox uyğun olacaq, bunu çox sadə edəcək, çox maraqlı olacaq, sizə yol göstərəcəyəm, gəlin edək
Rəqəmsal Şahmat - Şahmat Oyununuzu Onlayn izləyin: 5 addım
Rəqəmsal Şahmat - Şahmat Oyununuzu Onlayn İzləyin: Gəncliyimdən bəri çox şahmat oynayıram və internetdə kompüterlərə və ya canlı rəqiblərə qarşı şahmat oynamaq üçün çoxlu sayda veb saytları olduğu üçün heç vaxt bir sayt tapmamışam. əslində oynadığınız şahmat oyununuzu izləyir
Öz Tic Tac Toe Oyununuzu Java -da yazın: 6 addım
Java -da Öz Tic Tac Toe Oyununuzu yazın: Əminəm ki, hamınız Tic Tic Toe -un klassik oyunu haqqında biləcəksiniz. İbtidai məktəb illərimdən bəri Tic Tac Toe dostlarımla oynadığım məşhur bir oyun idi. Həmişə oyunun sadəliyi ilə heyran olmuşam. Birinci kursda mənim