Girdi olmadan oyun bir hiçtir ve Pygame'in hem fare hem de dokunmatik girdi desteğiyle oyununuzun erişilebilir olduğundan emin olabilirsiniz.

Bu gün ve yaşta, dokunmatik ekranlı cihazlar her yerde. Oyun geliştiricilerin oyunlarında dokunmatik girdiyi giderek daha fazla kullanması ve çerçevelerin bunu giderek daha kolay hale getirmesi şaşırtıcı değil.

PyGame, dokunmatik girişlerden yararlanabilecek oyunlar ve uygulamalar oluşturmayı kolaylaştırır.

PyGame'in Dokunma Desteği

PyGame, dokunmatik girişlerle çalışmak için yerleşik desteğe sahiptir. Bu, fare ve parmakla dokunma girişleri için desteği içerir.

Bir fareyi algılamak için, pygame. FARE DÜĞMESİ Ve pygame. FARE DÜĞMESİ olaylar. Örneğin:

için etkinlik içinde pygame.event.get():
eğer event.type == pygame. FARE DÜĞMESİ AŞAĞI:
Yazdır("Fare düğmesine basıldı")

Parmakla dokunma girişlerini algılamak için pygame. PARMAK AŞAĞI Ve pygame. PARMAK UP olaylar. Örneğin:

için etkinlik içinde pygame.event.get():
eğer event.type == pygame. PARMAK AŞAĞI:
Yazdır("Parmak ekrana dokundu")
instagram viewer

Basit Bir Oyun Yaratmak

Tüm kodu bulabilirsiniz bu GitHub Deposu.

Basit bir oyun oluşturarak başlayın. Bu oyun, dokunmatik girişleri kullanarak ekranda hareket ettirebileceğiniz bir oyuncu karakterinden oluşacaktır. Bunu yapmak için bir oyun döngüsü ve bir oyuncu karakteri oluşturmanız gerekecek.

Başlamadan önce, sahip olduğunuzdan emin olun. cihazınızda yüklü pip, ardından yüklemek için aşağıdaki komutu kullanın. PyGame modül:

pip kurulumu pygame

Şimdi PyGame modülünü oyun kodunuza aktarın:

içe aktarmak pygame
pygame.init()

Bundan sonra oyun penceresini ve bir oyun nesnesi oluşturun:

# Ekranı ayarlayın
boyut = (400, 400)
ekran = pygame.display.set_mode (boyut)

# Bir oynatıcı nesnesi oluşturun
oyuncu = pygame. Yüzey((50, 50))
player.fill((255, 0, 0))

# Oynatıcının başlangıç ​​konumunu ayarlayın
player_pos = [175, 175]

Son olarak, oyun döngüsünü oluşturun:

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

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

# Oyuncu pozisyonunu güncelleyin
player_pos[0] += 5
player_pos[1] += 5

# Oyuncuyu çiz
screen.blit (oynatıcı, oynatıcı_pos)

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

Yukarıdaki kodun yalnızca oyuncu karakterinin ekranda hareket ettiği basit bir oyun oluşturduğunu unutmayın. Oyunu daha ilginç hale getirmek için şunları yapabilirsiniz: fizik ve çarpışmalar ekleyin oyuncunun üstesinden gelmesi için engeller oluşturmak.

Oyuncu Hareketi için Fare Dokunmatik Girişleri

Artık oyuncu karakterli bir oyununuz olduğuna göre dokunmatik girişler eklemeye başlayabilirsiniz. Bunu yapmak için, fare girişleri için bir olay işleyici eklemeniz gerekir. Ekle pygame. FARE DÜĞMESİ Ve pygame. FARE DÜĞMESİ oyun döngüsüne olaylar.

Fare girişleri için bir olay işleyici oluşturun. Bir oyuncu fare düğmesine bastığında, karakterin konumunu geçerli fare konumuna güncelleyin. Program, bu durumda herhangi bir işlem yapması gerekmediğinden, fare düğmesinin serbest bırakılmasını yok sayacaktır.

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

sırasında koşma:
# Olayları kontrol et
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ
# Fare girişlerini kontrol edin
elif event.type == pygame. FARE DÜĞMESİ AŞAĞI:
mouse_x, mouse_y = olay.pos
player_pos[0] = fare_x
player_pos[1] = fare_y
elif event.type == pygame. FARE DÜĞMESİ:
geçmek

ekran.fill((0, 0, 0))

# Oyuncuyu çiz
screen.blit (oynatıcı, oynatıcı_pos)

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

Oyuncunun fare girişine yanıt olarak hareket etmesini sağlamak için olay işleyiciye ekstra mantık da ekleyebilirsiniz.

Oyuncu Hareketi için Parmakla Dokunma Girişleri

Fare girişlerine ek olarak parmakla dokunma girişleri de ekleyebilirsiniz. Bunu yapmak için parmakla dokunma girişleri için bir olay işleyici eklemeniz gerekir.

Ekle pygame. PARMAK AŞAĞI Ve pygame. PARMAK UP oyun döngüsündeki olaylar:

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

sırasında koşma:
# Olayları kontrol et
için etkinlik içinde pygame.event.get():
eğer event.type == pygame. ÇIKIŞ YAPMAK:
koşu = YANLIŞ
# Fare girişlerini kontrol edin
elif event.type == pygame. FARE DÜĞMESİ AŞAĞI:
mouse_x, mouse_y = olay.pos
player_pos[0] = fare_x
player_pos[1] = fare_y
elif event.type == pygame. FARE DÜĞMESİ:
geçmek
# Parmak girişlerini kontrol edin
elif event.type == pygame. PARMAK AŞAĞI:
parmak_x, parmak_y = olay.pos
player_pos[0] = parmak_x
player_pos[1] = parmak_y
elif event.type == pygame. PARMAK UP:
geçmek

ekran.fill((0, 0, 0))

# Oyuncuyu çiz
screen.blit (oynatıcı, oynatıcı_pos)

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

Bunun fare girişi olay işleyicisine ne kadar benzediğine dikkat edin. Bu olay işleyici, oyuncu parmağını ekrana bastığında karakterin konumunu günceller. Parmaklarını bıraktıklarında hiçbir şey olmuyor. Bu, hem fare hem de parmakla dokunma girişlerini kullanarak kontrol edebileceğiniz bir oyun oluşturmanıza olanak tanır. gibi diğer etkinlikleri de kullanabileceğinizi unutmayın. pygame. PARMAK HAREKETİ parmak hareketine cevap vermek için.

Pygame'in Ek Dokunma Özellikleri

Temel dokunma özellikleri yerinde olduğunda, daha gelişmiş özellikler eklemeye başlayabilirsiniz. PyGame, oyununuza daha fazla dokunma özelliği eklemenize yardımcı olabilecek birkaç yerleşik özelliğe sahiptir.

İlk özellik, pygame.mouse.set_visible() işlev. Bu işlev, fare imlecini gizlemenizi sağlar. Fareyi değil, yalnızca dokunma girişlerini kullanan bir oyun oluşturmak istiyorsanız bu yararlı olabilir.

İşte nasıl kullanılacağına dair bir örnek set_visible() işlev:

pygame.mouse.set_visible(YANLIŞ)

bu pygame.mouse.set_pos() işlevi, fare imlecini ekranda belirli bir konuma ayarlar. Fare girişlerini kullanmadan fareyi belirli bir konuma taşımak istiyorsanız bu kullanışlıdır.

Aşağıda, nasıl kullanılacağına ilişkin bir örnek verilmiştir. set_pos() işlev:

pygame.mouse.set_pos(200, 200)

kullanabilirsiniz pygame.mouse.get_rel() farenin göreli hareketini elde etme işlevi. Bunu, farenin son fare olayından bu yana ne kadar hareket ettiğini saptamak için kullanabilirsiniz.

bu şekilde kullanabilirsiniz get_rel() işlev:

dx, dy = pygame.mouse.get_rel()

Son olarak, kullanabilirsiniz pygame.mouse.get_pressed() oyuncunun herhangi bir fare düğmesine basıp basmadığını kontrol etme işlevi. Bu, fare/dokunmatik kontrollerle oyunlar oluştururken faydalı olabilir.

Aşağıda, nasıl kullanılacağına ilişkin bir örnek verilmiştir. get_pressed() işlev:

mouse_buttons = pygame.mouse.get_pressed()

PyGame ayrıca FARE TEKERLEĞİ fare tekerleği kaydırmalarını algılamak için kullanabileceğiniz olay türü. Hem dikey hem de yatay kaydırmaları destekler.

İşte bir örnek:

için etkinlik içinde pygame.event.get():
eğer event.type == pygame. FARE TEKERLEĞİ:
eğer event.y > 0:
Yazdır("Fare tekerleği yukarı kaydırıldı")
elif olay.y < 0:
Yazdır("Fare tekerleği aşağı kaydırıldı")

Dokunmatik Girişlerle Etkileşimli Oyunlar Yaratın

Dokunmatik girişler yerindeyken artık etkileşimli oyunlar oluşturabilirsiniz. Örneğin, oyuncunun dokunmatik girişleri kullanarak ekranda hareket edebildiği bir oyun oluşturabilirsiniz. Oyuncunun oyundaki eylemleri tetiklemek için farklı hareketler gerçekleştirebileceği, harekete dayalı oyunlar da oluşturabilirsiniz.

Dokunmatik girişlerle oyun yaratma söz konusu olduğunda olasılıklar sonsuzdur. PyGame'in yardımıyla hem eğlenceli hem de etkileşimli oyunlar oluşturabilirsiniz. Öyleyse dışarı çıkın ve yaratmaya başlayın!