Box2d'de tüy dökülmesi nasıl simüle edilir?


10

Ben Box2d uzantısı ile AndEngine ile çalışıyorum, ancak genel cevap veya bir konsept fikri de takdir edilecektir.

2B yandan görünüş dünyasında, fizik simülasyonunun bir parçası olmak istediğim tüy benzeri nesnelerim var. "Tüy" yavaş düşmek için doğrusal sönümleme kullanıyorum. Bu iyi bir fikir olmayabilir, belki her güncellemede kuvvet uygulamalıyım, ama yine de, bu işe yarar ve nesnenin "hafif" görünmesini sağlar ve dirençli hava varmış gibi hisseder.

Şimdi nesnelerin havaya düşen tüyler gibi görünmesini nasıl sağlayabilirim?

Özellikle iki tür nesne arıyorum: Düşük yoğunluklu, yavaş sallanan bir hareketle aşağı doğru hareket etmeli ve yörüngeyi rastgele değiştirecek kare nesneler. Bunun bir simülasyon olması ve uzunluğun bir parametre olması harika olurdu - nesne ne kadar uzun olursa, o kadar çok sallanır. Şu anda bir karikatür dünyasında tüyleri, yaprakları ve kar taneleri simüle etmek istiyorum.

Düşen nesnelerin yolları


2
Ekran görüntüsü veya konsept taslağı ya da buna benzer bir şeye ne dersiniz? Sonuçta, tüy olarak değerlendirebileceğiniz tonlarca farklı şey var ve diyorum ki çoğu sizin durumunuza göre farklı davranacak.
Mario

Daha fazla bilgi ve resim eklendi.
MartinTeeVarga

Yanıtlar:


6

Aya iniş gibi, onu sahte yapmalısın . Çarpıntı, yuvarlanma ve girdap kaynaklı otorotasyon fiziği karmaşıktır. Bu efekti simüle eden kağıtlar var ve bazı güzel Java animasyonları üretiyorlar .

Ancak, taklitinizde daha da ileri gider ve hareketi canlandırmak için büyüyen bir sinüs dalgası gibi bir şey uygularım .

resim açıklamasını buraya girin

Açıkçası, istediğiniz değerlere daha yakın bir şey elde edene kadar başlangıç ​​değerlerini, genlik ve frekanstaki bağımsız artış oranını değiştirmek isteyeceksiniz. Bunu ilginç hale getirmek için bazı rastgele özellikler fırlatmak istersiniz. Ayrıca, örnek gösterdiği gibi, yüksek yüzey alanına sahip çok hafif nesneler aslında gidebiliriz yukarı wave'lerinin kenarlarına yakın. Bu nedenle, belirli bir genliğin üzerindeki dalgalar, küçük bir başlıklı maksimum değerle süpürme değerinde faktör oluşturmaya başlamalıdır.

Bir cisim ne kadar az kütle ve daha fazla yüzey alanına sahip olursa, sinüs dalgasının genliğini ve frekansını o kadar fazla artırırsınız. Daha fazla kütle ve daha az yüzey alanı, genlik ve frekansın azalmasına neden olmalıdır.


3
** Conspirator **
Mikolaj Marcisz

Tamam, bu yüzden yatay hareketi kontrol edecek sinüs dalgası büyüyen iki fonksiyona sahip olabilirim, sonra dikey hareketi kontrol edecek ve muhtemelen nesnenin merkezinden ne kadar uzak olduğuna bağlı olacak ve hareketi kıracak bir başlığa sahip olacak bazı fonksiyonlar olabilir. geri gönder ... Bana bir kuvvet verecek böyle birleşik fonksiyon bulursam, bu kuvveti nasıl uygularım? Geçen zamana göre motorun her işaretinde biraz mı? Daha önce box2d ile gerçekten çalışmadım.
MartinTeeVarga

Bunun gibi sesler iyi çalışır ve yer çekiminin gerisini halletmesine izin verir. Gücü ele almanın birkaç farklı yolu vardır. Muhtemelen, dediğiniz gibi geçen süreye bağlı olarak motorun her işaretinde olacaktır. Dürtü kuvvetleri olurdu, yani bu çerçeve için anlık. Daha fazla bilgi edinmek için bu soruya bakın (soruda olduğu gibi Cocos2D'yi kullanmasanız bile aynıdır).
MichaelHouse
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.