Pygame rect resize

Arkadaşlar ben pygame de bir resimin sadece orta kısmını rect olarak almak istiyorum nasıl yaparım @EkremDincel sana bir ara söylemiştim ama yapamadım

1 Beğeni

resim:Door1

sadece kapıyı mı almak istiyorsun?_

aynen öyle boşlukta kapı olunca saçma oluyo

bir dakika deneyeceğim eğer olursa nasıl yapıldığını anlatırım

portal yapmak istiyorum kapı yerine ama bulamadım yardımcı olsan ya

pixel portal daha önce hiç görmedim

nasıl ya bulunur bakalım bi itch.o ya

Adsız-removebg-preview

olmuş mu canım

hahahahahahahhaha ya ben ne diyom sen ne diyon reis neyse birileri bir şey yazana kadar bekliyelim gel dcye

Surface sınıfının subsurface metodunu var bunun için.

nasıl kullanılıyor

https://www.pygame.org/docs/ref/surface.html#pygame.Surface.subsurface

1 Beğeni

bu rect almıyor ama bana rect lazım collide yapılmıyor bunla

bu resmi biçimlendiriyor galiba lütfen söyle başka yol yokmu

Rect ile baştan ortaya alıyorum yani belli kordinatlardan alamıyorum genişliği ve yüksekliği

Kapının tam orta noktasını hedef alabilirsin. Bir isabet kutusu oluşturacağız. hit box.

muhtemelen programında draw() fonksiyonu vardır. draw() fonksiyonu içerisine kapının olduğu resmin boyutlarını kontrol ederek bir orta nokta bulacağız.

Örneğin resim 100 genişlik 100 yükseklikte olsun. Bu resim içerisinde oluşturacağımız hit box koordinatları x = 50 y = 0 şeklinde olacak

Tam olarak bulduğumuz nokta işaretlediğim kısım olacak;

aaffgsdfghsdfh

ardından işaretlediğimiz noktadan bir genişlik değerini deneyerek bulacağız. genişlik değerini kapının sağ ve sol ucuna göre düşüneceğiz. belirli derecede genişlik değerini arttırarak ulaşabiliriz.

Genişlik değerini bulduktan sonra, yüksekliğini hesaplayacağız fakat yüksekliğini hesaplamamız için y koordinatını değiştirmemiz gerekiyor yoksa yüksekliğin yarısını kapının altına yarısını kırmızı işaretlediğim noktanın üstüne yapar. O da şöyle görünür;

sd4gas56d

Böyle görünmemesi için y koordinatını kapının tam ortasına gelecek şekilde göz kararı arttır ve deneyerek tam sonuca ulaştıktan sonra yükseklik değerini de doğru şekilde verdiğimiz de olmasını istediğimiz şu sonucu elde etmiş olacağız;

c133bff6f7bee881162d4ea91485d48e7a24dbbf

ve böylelikle hitbox kapının çevresini tamamen çizmiş oldu. şimdi tek gereken şey hitbox ile karakter etkileşime girdiğinde ya da çarptığında teleport etmesi olacak. :slight_smile: onu da hali hazırda teleport eden fonksiyonunu kopyalayıp bir collision() fonksiyonu oluşturarak içerisine if bloklarını kullanıp karakter hitbox ile dokunduğunda teleport edecek

1 Beğeni

olduuu be adamsın reisss hiç aklıma gelmedi techwithtim deki hitbox

Olum diyorum sana acele ettirme beni az sabret sana çok faydalı olacağım eğitim bitince

yyyeysssss beee olduuuuu loldduuuuuu

1 Beğeni