Mündəricat:

İlk yarış oyununuzu yaradın: 10 addım
İlk yarış oyununuzu yaradın: 10 addım

Video: İlk yarış oyununuzu yaradın: 10 addım

Video: İlk yarış oyununuzu yaradın: 10 addım
Video: Sezon 3 derlemesi (her bölüm) | Ben 10 | Çizgi film yayın ağı 2024, Iyul
Anonim
Image
Image
Şəkil
Şəkil

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

Aktyorunuzu çəkmək
Aktyorunuzu çəkmək

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

Aktyora nəzarət edin
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ı

Track qurmaq
Track qurmaq

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 32: if trackDirection == False: trackPirect += 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = trackDirection if trackPosition> 700 - trackWidth: trackDirection = TrackPosition < trackWidth: trackDirection = False makeTrack () # ekranın yuxarısında yeni bir parça yaradın

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ı

Avtomobil qəzası
Avtomobil qəzası
Avtomobil qəzası
Avtomobil qəzası
Avtomobil qəzası
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

Oyunu Raspberry Pi üzərində işləyin
Oyunu Raspberry Pi üzərində işləyin
Oyunu Raspberry Pi üzərində işləyin
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ı?

Qazandınmı?
Qazandınmı?

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ə: