Pygame'de oyuna fizik eklemek

Herkese merhabalar
Ben pygame ile oyun geliştiriyorum aynı zamanda öğreniyorum.
Oyuncu hareketleri ve animasyonlarını tamamladım sayılır şimdi sıra oyuna fizik eklemekte. Yerçekimi, çarpışmalar, çarpışan çisimlerin dönmesi, düşmesi gibi şeyleri nasıl ekleyeceğim. aslına bunu 1-2 nesne için yapabiliyorum fakat onlarca nesnenin birbiri arasında çarpışması ve yerçekimini nasıl yapabilirim.

çarpışma için aşağıdaki fonksyonu kullanıyorum ama onlarca cismin birbiri ile çarpışma ihtimalini yazmak mantıksız geldi. daha kolay bir yolu olmalı.
yerçekimi içinde aynı sorun var.

def touching(sprite1, sprite2):

    collided = pygame.sprite.collide_mask(sprite1, sprite2)

    return collided

fizik kütüphaneleri var(pymunk gibi pygame destekleyen) ama zaten collide mask baya yavaşlatır

1 Beğeni

Merhaba.

Bunları uygulamayı en baştan öğrenme gibi bir amacınız yoksa hazır kütüphanelerden faydalanmanız daha iyi olur:

Bu iki kütüphanenin de içerisinde bolca örnek var, onları ve kütüphane dökümanlarını takip edebilirsiniz.

Özellikle continuous collision detection’a ihtiyaç duyuyorsanız box2d kullanın.


Oyun geliştirmek için pygame yerine pyglet öneririm.

2 Beğeni

ilgilendiğiniz için çok teşekkürler

sebebi nedir ?
önemli bir fark varsa kodları baştan yazmam gerekecek :slightly_smiling_face:

Genel olarak görüntüler daha iyi ve performanslı oluyor. Pygame’in transform.scale ve transform.rotate gibi fonksiyonları ortaya kötü görüntüler çıkarırken pyglet bunların hepsini Sprite sınıfı ile halletmiş. Pyglet’te iki boyutlu bir kamera oluşturmak da çok kolay.

Pyglet ile alakalı kaynak bulmada biraz sıkıntı yaşayabilirsiniz, python ve İngilizce seviyenize bağlı olarak kendi dökümanı da yeterli olabilir. Siz karar verin.

1 Beğeni

sanırım FireDungeons adlı oyunumu baştan pyglet ile yazıcam :slight_smile:
ama şuanlık oyun yapmayı düşünmüyorum CodeDuel projesi şuan odak noktam :slight_smile: