İçindekiler:

İlk Yarış Oyununuzu Yaratın: 10 Adım
İlk Yarış Oyununuzu Yaratın: 10 Adım

Video: İlk Yarış Oyununuzu Yaratın: 10 Adım

Video: İlk Yarış Oyununuzu Yaratın: 10 Adım
Video: OYUN YAPMAK İÇİN GEREKEN PROGRAMLAR! 2024, Temmuz
Anonim
Image
Image
resim
resim

Biraz Python kodlaması yaptıysanız ve bir oyun yazmak istiyorsanız, Pygame Zero'ya sahip olabilirsiniz.

Bu dersimizde basit bir yarış oyunu yazacağız.

1. Adım: Geniş Genel Bakış

Pygame modülü, Python'da oyun yazmanıza yardımcı olan birçok işlev ekler.

Pygame Zero, tüm bu oyun döngülerini oluşturma ve program yapınızı ayarlama gibi hantal süreci atlamanıza izin vermek için bir adım daha ileri gider.

Pygame Zero, Raspberry Pi veya herhangi bir Linux makinesinde bilgisayar oyunları yazmaya başlamak isteyen herkes için mükemmel bir seçimdir.

İhtiyacın olacak:

  • Linux işletim sistemini çalıştıran makine
  • Python programı yazmak için editör
  • Tuş takımı
  • Biraz hayal gücü

Dosyalar:

github.com/AhmNouira/-Racing-Game

2. Adım: Önkoşullar

İlk önce dizüstü bilgisayarımı Ubuntu 18.04 OS ile kullanacağım. Ardından 8. adımda Raspberry Pi üzerinde oyunu çalıştıracağız.

Bu eğiticiye devam etmeden önce, sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açtığınızdan emin olun.

Python 3 için pip yükleme

Aşağıdaki komutu kullanarak paket listesini güncelleyerek başlayın:

sudo uygun güncelleme

Python 3 için pip yüklemek için aşağıdaki komutu kullanın:

sudo apt python3-pip'i kurun

pip sürümünü kontrol ederek kurulumu doğrulayın:

pip3 --versiyon

Pygame Zero'yu Yükleme

pip3 kurulumu pgzero --user

Bu aynı zamanda Pygame'i de yükleyecektir. Önceden derlenmiş Pygame paketleri

Bu yüzden yolculuğunuzun ilk adımı Python 3 IDLE'yi veya favori python editörünüzü açmak olacaktır.

Adım 3: Pygame Zero'da "Merhaba Dünya"

Varsayılan olarak, Pygame Zero penceresi 800 piksel genişliğinde ve 600 piksel yüksekliğinde açılır. özelleştirebilirsiniz

Pencerenizin boyutu, WIDTH = 700 HIGH = 800'ü dahil ederseniz ayarlayabileceğiniz önceden belirlenmiş iki değişken vardır.

Pygame zero, normalde gerçekleştiren oyun döngüsünü işlemek için önceden tanımlanmış işlevler sağlar:

Beraberlik() Fonksiyonu

Normalde Python'da bir fonksiyon tanımladığımız gibi bu fonksiyonu programımıza yazabiliriz.

Pygame Zero, Python ile aynı biçimlendirme kurallarını izler, bu nedenle kodunuzu doğru girintilemeye özen göstermeniz gerekir.

#!/usr/bin/python3 # yorumlayıcıyı ayarla

import pgzrun # import pgzero module WIDTH = 700 # pencerenin genişliği HEIGHT = 800 # pencerenin yüksekliği def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # ekranı RGB ile doldurun color screen.draw.text("Merhaba Dünya!", (270, 320), # draw "Merhaba Dünya!" color = (255, 255, 255), fontsize = 40) pgzrun.go()

Öncelikle program dosyanızı kaydetmeniz ve ona bir ad vermeniz gerekir.

Ardından bir Terminal penceresi açın, dosya konumunuza gidin ve şunu yazın:

./.py

Adım 4: Aktörünüzü Çizmek

Aktörünüzü Çizmek
Aktörünüzü Çizmek

Artık sahne setimize sahip olduğumuza göre, Aktörlerimizi oluşturabiliriz, onlar Pygame Zero'da dinamik nesnelerdir.

Programın en üstüne yazarak bir Aktör yükleyebiliriz:

araba = Aktör ("yarış arabası")

Pygame Zero'da resimlerimizin, program dosyamızın yanında, images adlı bir dizinde saklanması gerekiyor. Bu nedenle, Aktörümüz, racecar.png adlı resimler klasöründe bir resim dosyası arıyor olacaktır. Bu bir GIF veya-j.webp

Yazarak ekrandaki konumunu ayarlayabilirsiniz:

araba.pos = 350, 560

Bundan sonra draw() fonksiyonumuzda yazabiliriz

car.draw() # yarış arabamızı tanımlı konumunda çiz

Tam program şöyle olacak:

#!/usr/bin/python3

import pgzrun WIDTH = 700 # pencerenin genişliği HEIGHT = 800 # pencerenin yüksekliği araba = Actor("yarış arabası") car.pos = 350, 560 def draw(): # pygame zero draw function screen.fill((128, 128, 128)) # ekranı car.draw() pgzrun.go() ile doldurun

Bunun çalıştığından emin olmak için programınızı test edin.

Adım 5: Aktörü Kontrol Edin

Oyuncuyu Kontrol Et
Oyuncuyu Kontrol Et

Arabamızı ekranda çizdikten sonraki aşama, oyuncunun onu hareket ettirmesini sağlamaktır.

Bunu tuşlara basarak yapabiliriz. Bu anahtarların durumunu, update() adlı önceden tanımlanmış başka bir işlev içinde okuyabiliriz.

update() Fonksiyonu

Bu işlev, oyun çalışırken sürekli olarak kontrol edilir.

Ok tuşlarına basışları algılamak ve bununla ilgili bir şeyler yapmak için bir kod yazmamız gerekiyor.

Bu fonksiyonu programımıza ekleyeceğiz.

tanım güncelleme():

if keyboard.left: car.x -=2 ise keyboard.right: car.x +=2 ise keyboard.up: car.y -=2 ise keyboard.down: car.y +=2 ise

Bu kod satırları, araba Aktörünü sola, sağa, ileri ve geri hareket ettirecektir.

Adım 6: Parkuru İnşa Etme

Parkuru İnşa Etme
Parkuru İnşa Etme

Artık yönlendirebileceğimiz bir arabamız olduğuna göre, sürmesi için bir palete ihtiyacımız var.

Parkurumuzu her seferinde bir satır olmak üzere Aktörlerden oluşturacağız. Yarattığımız Aktörleri takip etmek için bazı listeler yapmamız gerekecek.

Ayrıca parça için birkaç değişken daha ayarlamamız gerekecek.

O zaman makeTrack() adında yeni bir fonksiyon yapalım. Bu fonksiyon, her ikisi de images klasörümüzdeki bare-p.webp

trackLeft = # sol engelleri saklamak için liste

trackRight = # sağ engelleri saklamak için liste trackCount = 0 # engel sayısını say trackPosition = 350 trackWidth = 150 # sol ve sağ engeller arasındaki genişlik def makeTrack(): # sol ve sağda bir engel oluşturma işlevi global trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append(Actor("bare", pos = (trackPosition + trackWidth, 0))) trackCount +=1

Bir sonraki yapmamız gereken şey, parkurun bölümlerini ekranın aşağısında araca doğru hareket ettirmek.

updateTrack() adında yeni bir fonksiyon yazalım, Bu fonksiyon parça bloklarının görüneceği yeri günceller. Parça parçaları rastgele sayılarla oluşturulur, böylece her çalma farklıdır.

trackDriction = Yanlış

SPEED = 4 # rastgele içe aktarmadan oyunun hızını ayarlar randint # randint sınıfını rastgele modülden içe aktarma def updateTrack(): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 iken b 32: if trackDirection == False: trackPosition += 16 if trackDirection == True: trackPosition -= 16 if randint(0, 4) == 1: trackDirection = trackDirection değil, trackPosition > 700 ise - trackWidth: trackDirection = trackPosition < ise True trackWidth: trackDirection = False makeTrack() # ekranın üst kısmında yeni bir iz oluştur

Lütfen aşağıdaki "RaceGameDemo" adlı zip dosyasına bakın.

Şu anda kodumuzu çalıştırırsak, arabaya doğru kıvrılan bir iz görmeliyiz. Tek sorun, arabayı ray bariyerlerinin üzerinden hareket ettirebiliyor olmamız ve arabayı bazı çarpışma algılamalarıyla onların içinde tutmak istiyoruz.

Adım 7: Araba Kazası

Araba kazası
Araba kazası
Araba kazası
Araba kazası
Araba kazası
Araba kazası

Arabamızın Aktörlerin pistine dokunmadığından emin olmamız gerekiyor.

updateTrack() fonksiyonumuzda colliderect() yöntemini kullanarak çarpışmaları da test edebiliriz.

Bu oyunda, gameStatus değişkenimizde depolanan oyun için üç farklı durumumuz olacak:

  • gameStatus == 0 # oyun çalışıyor
  • gameStatus == 1 # araba kazası
  • gameStatus == 2 # oyun bitti

gameStatus değişkenine yanıt vermek için draw() işlevimizi ve update() işlevimizi değiştirmemiz gerekecek.

Son rötuşlar

Şimdi yapmamız gereken tek şey, gameStatus 1 veya 2 olarak ayarlanmışsa bir şey görüntülemek, örneğin kırmızı göstermeliyiz.

bayrak, araba çarparsa. Bunu aşağıdaki kodla yapabiliriz:

screen.blit("kırmızı bayrak", (230, 230))

Arabanın bitişe ulaşıp ulaşmadığını görmek için, kaç tane pist bölümü oluşturulduğunu saymalıyız ve sonra belki 200'e ulaştığımızda gameStatus'u 2'ye ayarlayın. Ardından damalı bayrağı görüntüleyin:

screen.blit("bitiş işareti", (230, 230))

Ayrıca oyunun mevcut skoru gibi bazı metinleri ekranda görüntüleyeceğiz.

Bunların nasıl bir araya geldiğini görmek için tam kod listesine bir göz atın.

8. Adım: Oyunu Raspberry Pi'de Çalıştırın

Oyunu Raspberry Pi'de Çalıştırın
Oyunu Raspberry Pi'de Çalıştırın
Oyunu Raspberry Pi'de Çalıştırın
Oyunu Raspberry Pi'de Çalıştırın

Raspberry Pi'de pgzero, Raspbian Jessie'nin Eylül 2015'te piyasaya sürülmesinden bu yana varsayılan olarak yüklenmiştir.

Raspberry Pi'nizi şu komutu kullanarak güncellemeniz yeterlidir:

sudo apt-get güncellemesi

Dosya konumunuza gidin ve Terminal'e yazın.

pgzrun.py

Adım 9: Kazandınız mı?

Kazandın mı?
Kazandın mı?

Parçayı farklı bir genişlikte yapmak için trackWidth değişkenini değiştirerek oyunu daha kolay veya daha zor hale getirebilirsiniz. Parçanın daha hızlı veya daha yavaş hareket etmesini sağlamak için SPEED değerini değiştirebilirsiniz.

Adım 10: Sonuç

Pygame Zero, bilgisayar oyunları yazmaya başlamak isteyen herkes için harika bir seçimdir.

Herhangi bir sorunuz varsa tabiki yorum bırakabilirsiniz. Çalışmalarım hakkında daha fazla bilgi için lütfen kanalımı ziyaret edin:

benimYouTube'um

Twitter'ım

benimLinkedin

Bu talimatı okuduğunuz için teşekkürler ^^ ve iyi günler. Görüşürüz. Ahmet Nuri.

Önerilen: