En basit düşmanların bile bir şekilde hareket etmesi gerekir, bu yüzden saldırı modellerinin arkasındaki kodlamayı nasıl ele alacağınız konusunda biraz ilham alın.

Harika bir video oyununun temel unsurlarından biri, düşmanların varlığıdır. İster zombiler, ister uzaylılar veya diğer oyuncular olsun, düşmanlar bir oyunu daha zorlu ve heyecanlı hale getirebilir.

PyGame'de, oyuncuyu takip etme, rastgele hareket etme veya belirli yolları izleme gibi çeşitli düşman hareket davranışlarını kolayca programlayabilirsiniz.

Basit Bir Oyun Yaratmak

Bir oyuncunun yatay ve dikey olarak hareket edeceği basit bir oyun oluşturarak başlayın. Oyuncu düşmana dokunursa ölür.

Kodun tamamını burada bulabilirsiniz GitHub deposu.

Gerekli PyGame modülünü içe aktararak ve başlatarak başlayın.

içe aktarmak pygame

pygame.init()

Ardından, ekranı kurun ve aşağıdakileri kullanarak oyuncu ve düşman nesneleri oluşturun: pygame. Rect() işlev.

# Ekranı ayarla
ekran = pygame.display.set_mode((800, 600))

# Renkleri ayarlayın
siyah = (0, 0, 0)
beyaz = (255, 255, 255)

# Oyuncu dikdörtgenini ve düşman nesnesini ayarlayın
oyuncu = pygame. Doğru(350, 500, 50, 50)
düşman = pygame. Doğru(350, 0, 50, 50)

Bundan sonra, oyuncu düşmanla çarpışana veya oyundan çıkana kadar devam eden bir oyun döngüsü oluşturun. Ayrıca şunları kontrol edin: oyuncu ve düşman arasındaki çarpışma, ve oyun nesnelerini ekranda çizin.

# Oyun döngüsünü kurun
koşu = Doğru

sırasında koşma:
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ

# Ekranı beyazla doldurun
ekran.dolgu (beyaz)

# Oyuncu dikdörtgenini hareket ettirin
tuşlar = pygame.key.get_pressed()

eğer anahtarlar[pygame. K_LEFT]:
oyuncu.x -= 5

eğer anahtarlar[pygame. K_RIGHT]:
oyuncu.x += 5

eğer anahtarlar[pygame. K_UP]:
player.y -= 5

eğer anahtarlar[pygame. K_DOWN]:
player.y += 5

# Oyuncu ve düşman arasındaki çarpışmayı kontrol edin
eğer player.colliderect (düşman):
koşu = YANLIŞ

# Oyuncu dikdörtgenini ve düşman nesnesini ekrana çizin
pygame.draw.rect (ekran, siyah, oyuncu)
pygame.draw.rect (ekran, siyah, düşman)

# Ekranı güncelle
pygame.display.update()

# Oyundan çık
pygame.quit()

Düşmanları Oyuncuya Doğru Yönlendirin

Düşmanı oyuncuya doğru hareket ettirmek için Pisagor teoremini kullanarak yapabileceğiniz ikisi arasındaki mesafeyi hesaplamanız gerekir. Daha sonra bu mesafeyi, düşmanın oyuncuya doğru hareket hızını ve yönünü belirlemek için kullanabilirsiniz.

Bunu uygulamak için bir hız değişkeni oluşturun ve bunu düşmanın oyuncuya karşı konumunu güncellemek için kullanın.

# Düşman ve oyuncu arasındaki mesafeyi hesaplayın
mesafe_x = oyuncu.x - düşman.x
mesafe_y = oyuncu.y - düşman.y
mesafe = (mesafe_x ** 2 + mesafe_y ** 2) ** 0.5

# Düşmanı oyuncuya doğru hareket ettir
hız = 2

eğer mesafe != 0:
düşman.x += hız * mesafe_x / mesafe
düşman.y += hız * mesafe_y / mesafe

Düşman Hareketini Ekranda Rastgele Belirleyin

Ayrıca oyunu daha zorlu hale getirmek için düşmanı ekranda rastgele hareket ettirebilirsiniz.

Bunu yapmak için Python'daki rasgele modülü kullanarak düşmanın hareket etmesi için rasgele bir yön oluşturun. Kullan seçenek() düşmanın hareket edebileceği yönler listesinden rastgele bir yön seçme işlevi. Ardından, seçilen yöne göre düşmanın konumunu güncelleyin.

içe aktarmak rastgele

# Düşmanı ekranda rastgele hareket ettirin
yön = rastgele.seçim(['sol', 'Sağ', 'yukarı', 'aşağı'])

eğer yön == 'sol':
düşman.x -= 5
elif yön == 'Sağ':
düşman.x += 5
elif yön == 'yukarı':
düşman.y -= 5
elif yön == 'aşağı':
düşman.y += 5

Yakınlık Tabanlı Düşman Hareketi

Bazı oyunlarda, düşman yalnızca oyuncu onlara yakınken hareket eder. Bunu, düşman ile oyuncu arasındaki mesafeyi hesaplayarak başarabilirsiniz.

Mesafe belirli bir değerin altındaysa düşmanı oyuncuya doğru hareket ettirin. Bu, oyunu daha stratejik hale getirir ve oyuncuyu hareketlerinde daha dikkatli olmaya zorlar.

# Oyuncu yakınsa düşmanı oyuncuya doğru hareket ettirin
hız = 2

eğer mesafe < 300:
eğer mesafe != 0:
düşman.x += hız * mesafe_x / mesafe
düşman.y += hız * mesafe_y / mesafe

Düşman, Oyuncu Saldırılarından Kaçar

Ayrıca düşmanın oyuncunun hareketinden kaçmasını sağlayabilirsiniz. Düşman, oyuncunun konumuna dik hareket ederek oyuncudan kaçınmaya çalışacaktır.

Bunu başarmak için, daha önce hesaplanan mesafe_x ve mesafe_y'yi kullanarak oyuncuya doğru birim vektörü hesaplayın. Ardından, düşmanı birim vektöre dik olarak hareket ettirmek için dikey vektörü hesaplayın. Son olarak, düşman hareketinin yönünü belirlemek için dikey vektör ile birim vektörün iç çarpımını hesaplayın.

Bunu gerçekleştirmek için mesafe hesabından sonra aşağıdaki kod parçacığını ekleyin.

hız = 2

eğer mesafe < 400:
eğer mesafe != 0:
# Oyuncuya doğru birim vektörü hesaplayın
birim_vektör_x = mesafe_x / mesafe
birim_vektör_y = mesafe_y / mesafe

# Dikey vektörü hesapla
dikey_vektör_x = -birim_vektör_y
dikey_vektör_y = birim_vektör_x

# Dikey vektörün iç çarpımını hesaplayın ve
# birim vektör
dot_product = dikey_vektör_x * birim_vektör_x
+ dikey_vektör_y * birim_vektör_y

# Düşmanı birim vektöre dik olarak hareket ettir
eğer nokta_ürün > 0:
düşman.x += hız * dikey_vektör_x
düşman.y += hız * dikey_vektör_y
başka:
düşman.x -= hız * dikey_vektör_x
düşman.y -= hız * dikey_vektör_y

Bu modifikasyonlarla düşman, oyuncuya fazla yaklaşmaktan kaçınmaya çalışacak. Bu, oyunu daha zorlu ve oynaması eğlenceli hale getirir.

Ekstra Özellikler Ekleme

Ayrıca oyununuzu daha zorlu hale getirmek için daha fazla özellik ekleyebilirsiniz. Örneğin, ekranda rastgele hareket eden birden fazla düşman, oyuncunun hareket ederken kaçınması gereken engeller, oyuncunun yeteneklerini geliştiren güçlendirmeler vb. ekleyebilirsiniz.

Yapabilirsiniz kare hızını ayarlamak için Saat modülünü kullanın oyununuzun ve daha sorunsuz çalışmasını sağlayın. Uygulama aşağıdadır:

# Ekranda rastgele hareket eden birden fazla düşman ekleyin
düşmanlar = []

için Ben içinde menzil(5):
düşman = pygame. Rect (random.randint(0, 750), rastgele.randint(0, 550), 50,
50)

düşmanlar.ekleme (düşman)

# Oyuncunun kaçınması gereken engelleri ekleyin
engel = pygame. Doğru(200, 250, 50, 50)

# Oyun döngüsünü kurun
saat = pygame.time. Saat()
koşu = Doğru

sırasında koşma:
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ

# Ekranı beyazla doldurun
ekran.dolgu (beyaz)

# Oyuncu dikdörtgenini hareket ettirin
tuşlar = pygame.key.get_pressed()

eğer anahtarlar[pygame. K_LEFT]:
oyuncu.x -= 5
eğer anahtarlar[pygame. K_RIGHT]:
oyuncu.x += 5
eğer anahtarlar[pygame. K_UP]:
player.y -= 5
eğer anahtarlar[pygame. K_DOWN]:
player.y += 5

# Düşmanları ekranda rastgele hareket ettirin
için düşman içinde düşmanlar:
yön = rastgele.seçim(['sol', 'Sağ', 'yukarı', 'aşağı'])

eğer yön == 'sol':
düşman.x -= 5
elif yön == 'Sağ':
düşman.x += 5
elif yön == 'yukarı':
düşman.y -= 5
elif yön == 'aşağı':
düşman.y += 5

# Oyuncu ve düşman arasındaki çarpışmayı kontrol edin
eğer player.colliderect (düşman):
koşu = YANLIŞ

# Oyuncu dikdörtgenini, düşman nesnelerini ve engeli çizin
# ekran
pygame.draw.rect (ekran, siyah, oyuncu)

için düşman içinde düşmanlar:
pygame.draw.rect (ekran, siyah, düşman)

pygame.draw.rect (ekran, siyah, engel)

# Ekranı güncelle
pygame.display.update()

# Oyunun kare hızını ayarlayın
saat.tik(60)

# Oyundan çık
pygame.quit()

Düşmanlarla Oyun Deneyiminizi Geliştirin

Benzersiz hareketlere, davranışlara ve yeteneklere sahip düşmanlar ekleyerek oyunlarınızı oyuncular için daha ilgi çekici ve zorlu hale getirebilirsiniz. Oyuncuların, farklı türde düşmanların üstesinden gelmek için oyunlarını stratejilendirmeleri ve uyarlamaları gerekecek. Bu, katılımı artırabilir, tekrar değerini iyileştirebilir ve oyuncuların daha fazlası için geri gelmesini sağlayabilir.