Hangi Box2D JavaScript kitaplığını kullanmalıyım? [kapalı]


91

JavaScript için Box2D'nin birkaç farklı bağlantı noktası vardır . Hangisi en iyisi?

Varsa, http://chrome.angrybirds.com/ sürümünün kullandığı herhangi bir fikriniz var mı?


Box2D bağlantı noktası olmak zorunda bile değil. Örneğin, Matter.js ve p2.js oldukça sağlam görünüyor.
Thomas

@Thomas Katılıyorum. Ama sorunun sorulduğu zamana bakın. O zamanlar Matter.js ve p2.js'nin henüz çıkmadığına inanıyorum.
newguy

Muhtemelen, ama sanırım bu soru Google'da gündeme geldi ...
Thomas

Yanıtlar:


87

Okuyuculara not!

Bu soru ilk olarak 2011'de soruldu ve yanıtlandı, ancak güncel tutmak için elimden geleni yapacağım!

İşte bulduklarım:

  • kripken / box2d.js , Emscripten kullanan bir Box2D portudur ve iyi çalışır ve hızlıdır. Bunu şahsen büyük bir başarıyla kullandım.
  • planck.js en yeni bağlantı noktasıdır ve JavaScript'te sıfırdan yazılmıştır
  • Box2DJS, Box2DFlash 1.4.3.1'in bir bağlantı noktasıdır. box2dweb, 2.1a sürümünün bir bağlantı noktasıdır.
  • Box2DJS, "hiçbir değişiklik yapılmadan bir CommonJS modülü olarak" çalışır " [1]
  • Box2DJS "güncel değil ve her projede büyük miktarda JavaScript dosyası içe aktarmanız gerekiyor" [2]
  • box2dweb tek bir dosyada bulunur [2]
  • box2dweb, Box2DJS'den [3] "çok daha yeni bir bağlantı noktasıdır ve çok daha az sorunu vardır" . Ancak, geçiş yeni sorunları ortaya çıkarabilir [4] .
  • Box2DJS Prototipe bağlıdır, ancak box2dweb [5]
  • Seth Ladd, blogundaki örneklerle box2dweb'i tanıttı [6]
  • Görünüşe göre kimse üçüncü alternatifi kullanmıyor.
  • Box2D'ye dayalı olmayan fizik simülatörleri de vardır . Check out Matter.js ve p2.js

Gamedev.stackexchange.com'da da benzer bir tartışma var .

Kazananın kripken / box2d.js olduğunu söyleyebilirim.


box2d, box2dweb kadar güncel değil. küçültülmüş dosyada birçok çekirdek sınıf eksik.
dopatraman

1
Ben şahsen box2dJS'yi mevcut iOS box2D oyunumu taşıyan bir projede kullandım. Sürüm farkıyla bulduğum şey, iOS çalışmasındaki bazı kodların JS sürümünde ve dev durdurmada çalışmamasıdır. Bundan sonra, tüm kodu box2dweb olarak değiştirmek için yarım hafta kullandım ve her şey iOS box2d oyunumla aynı şekilde çalışıyor. Dolayısıyla sürüm farkı çok önemlidir.
Makzan

emscripten port oldukça havalı, ancak en son kullandığımda, emscripten'ın doğası gereği hatalı (rastgele donmalar dahil) ve hata ayıklaması çok zor buldum.
bunnyhero

2
@aPaidNerd bu hala güncel mi?
Ken

2
: Yeni Box2D portlu JS fizik motoru adlı planck bunu kontrol, son zamanlarda dışarı github.com/shakiba/planck.js
newguy

13

Bu soru en iyi cevap 2011. Bir son yeni bir seçenektir gelmektedir box2.js , Javascript C ++ kodunun Emscripten çeviri. Ağustos 2013 itibariyle, bulduğum diğer bağlantı noktalarından daha güncel ve demolar çalışıyor gibi görünüyor.


Teşekkürler @ Nelson, soruya ekledim
ücretli bir inek

Bu kitaplıklardan hiçbirini kullanmadım, ancak box2d.js ve "VTables ile eğlence" kulağa hoş gelmiyor.
cubuspl42

8

LiquidFun (JS Bağlamalarıyla)

LiquidFun, bunu yayınladığım sırada JS'ye en son bağlantı noktası. Box2D'nin tüm özelliklerine ve sıvı fizik özelliklerine sahiptir. Emscripten kullanılarak taşınır, bu nedenle performans iyi.

google / liquidfun

google / liquidfun / tree / master / liquidfun / Box2D / lfjs


Yakın zamanda bununla karşılaştım ve borulardan tanklara ve vanalara akan suyu simüle etmek için ideal görünüyor, baktığım bir proje için iyi bir çözüm olacaktır. Özellikle kütüphaneyi javascript'ime nasıl yerleştirebileceğim konusunda herhangi bir öğretici var mı? Belgeler biraz kıt görünüyor
Bob Haslett



0

Box2DWeb, zincir şekilleri dışında orijinal C ++ Box2D'deki API'lerin çoğunu destekler. : /

En yaygın kullanılan Javascript Box2D'dir. Box2DWeb için API belgelerine ihtiyacınız varsa, Box2DFlash'e göz atın. http://www.box2dflash.org/docs/2.1a/reference/

Box2DWeb, bir derleyici kullanılarak Box2DFlash'tan otomatik olarak oluşturulur. Yani API aynıdır.

Box2DFlash artık etkinlik göstermediğinden, Box2DWeb'in gelecekte herhangi bir güncelleme alacağından şüpheliyim. Yazarın neden doğrudan Box2D -> Box2DWeb portu yazmamaya karar verdiğine dair mantığını görebilirsiniz.

https://code.google.com/p/box2dweb/wiki/Roadmap


Box2D için bir sonraki yarışmacı PhysicsJS. wellcaffeinated.net/PhysicsJS/ (benim 2cents)
Vennsoh

Google, I / O 2014 sırasında LiquidFun (Go google) adlı bir eklenti yayınladı. Kullanmak için Box2D v2.3'e ihtiyacınız olacak. Oldukça harika.
Vennsoh
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.