Labirentteki Böcek Oyunu

Artık Python’un bilmeniz gereken tüm temellerine aşina olduğunuza göre, heyecan verici bir yaparak öğrenme etkinliğine geçelim! Labirentin sonundaki elmaya, sınırlarına dokunmadan ulaşması için böceğin yardımına koşmayı amaçlayan ilginç bir oyun yapalım.

Böceği kontrol etmek için klavyenin yön tuşlarını kullanacağız.

labirentte böcek kazı kazan oyunu

Hadi başlayalım!

Ortamın Kurulması

Öncelikle ortamı ayarlayalım. Adımları takip edelim.

  1. Öncelikle PictoBlox’un sprite kütüphanesinden böcek sprite’ını ekleyin.
  2. Tobi Sprite’ını silin.
  3. Arka planı Labirent olarak ekleyin.

Sahnemiz hazır

Etkinlik 1: Böcek Hareketi

Böceğin kodunu yazalım. Klavyenin yön tuşlarını kullanarak kontrol ettiğimiz için, böcek tuşa bastığımız yönde hareket etmelidir. Bunu çalıştırmak için sprite’ın move() ve setdirection() fonksiyonlarını kullanacağız.

Böceğin hareket kodu aşağıdadır:

sprite = Sprite('Beetle')

while 1:
  if (sprite.iskeypressed('up arrow')):
    sprite.setdirection(0)
    sprite.move(5)
    
  if (sprite.iskeypressed('down arrow')):
    sprite.setdirection(180)
    sprite.move(5)
    
  if (sprite.iskeypressed('left arrow')):
    sprite.setdirection(-90)
    sprite.move(5)
    
  if (sprite.iskeypressed('right arrow')):
    sprite.setdirection(90)
    sprite.move(5)

Kodu kontrol edin:

Oyun Koşullarını Programlayın

Ders İlerlemesi%50 Tamamlandı

Beetle Başlangıç Pozisyonunu Ayarla

Böceğin -150, -150’den başlamasını ve boyutunun ve yönünün %50’sinin yukarı bakmasını istiyoruz. Bunu aşağıdaki kodla yapabiliriz:

sprite.setdirection(0)
sprite.setsize(50)
sprite.gotoxy(-150, -150)

Python

Not : Bu kod aynı programa ve while döngüsünün üstüne eklenecektir.

Oyun Koşullarının Programlanması

Her oyunun uyulması gereken belirli kuralları ve koşulları vardır, ancak o zaman oyundan gerçek anlamda keyif alabilirsiniz. Oyunumuzda da, onu daha eğlenceli hale getirmek için bazı basit koşullar sunalım!

  1. Böceğin oluşturulan labirentin içerisinde hareket etmesi isteniyor, eğer labirentin herhangi bir çizgisine değecek şekilde hareket etmeye çalışırsa, labirentin içerisindeki mevcut konumundan bağımsız olarak başlangıç konumu olan orijinal konumuna geri dönecek.
  2. Böcek elmaya değdiğinde oyun biter.

Bunu yapmak için, sprite için istouchingcolor((R, G, B)) fonksiyonunu kullanacağız . Bu fonksiyon, sprite’ın belirtilen renge dokunup dokunmadığını test eder.

Duvarlara Dokunmak

Duvar rengi siyahtır ve RGB değeri (0, 0, 0)’dır. Bu yüzden böceğin duvara dokunup dokunmadığını kontrol etmek için while döngüsünün içine bir koşul ekleyeceğiz.

  if (sprite.istouchingcolor((0, 0, 0))):

Eğer koşul doğruysa böcek başlangıç pozisyonuna gitmelidir.

  if (sprite.istouchingcolor((0, 0, 0))):
    sprite.setdirection(0)
    sprite.gotoxy(-150, -150)

Şu ana kadar olan kodu test edin.

Apple’a Dokunmak

Elmanın rengi kırmızıdır ve RGB değeri (255, 0, 0)’dır. Bu yüzden böceğin elmaya dokunup dokunmadığını kontrol etmek için while döngüsünün içine bir koşul ekleyeceğiz.

  if (sprite.istouchingcolor((255, 0, 0))):

Eğer koşul doğruysa oyun biter.

  if (sprite.istouchingcolor((255, 0, 0))):
    sprite.say('Game Over', 2)
    break

Kodu test edin:

Tam Kod

sprite = Sprite(‘Beetle’)

sprite.setdirection(0) #kukla yönü
sprite.setsize(50) #kukla büyüklüğü
sprite.gotoxy(-150,-150) #kuklanın başlangıç pozisyonu
while 1:
if(sprite.iskeypressed(‘up arrow’)): #yukarı ok tuşuna basıldığında
sprite.setdirection(0) #kukla yönünü 0 derece yap
sprite.move(5) #5 adım ileri git

if(sprite.iskeypressed(‘down arrow’)): #aşağı ok tuşuna basıldığında
sprite.setdirection(180) #kukla yönünü 180 derece yap
sprite.move(5) #5 adım ileri git

if(sprite.iskeypressed(‘right arrow’)): #sağa ok tuşuna basıldığında
sprite.setdirection(90) #kukla yönünü 90 derece yap
sprite.move(5) #5 adım ileri git

if(sprite.iskeypressed(‘left arrow’)): #sol ok tuşuna basıldığında
sprite.setdirection(-90) #kukla yönünü -90 derece yap
sprite.move(5) #5 adım ileri git

if(sprite.istouchingcolor((0,0,0))): #isTouchingColor(0, 0, 0) # Siyah renge değiyor mu?
sprite.setdirection(0)
sprite.gotoxy(-150,-150)

if(sprite.istouchingcolor((255,0,0))): #isTouchingColor(255, 0, 0) # Kırmızı renge değiyor mu?
sprite.say(“Game Over”,2)
break

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir