2012-06-16 13 views
12

Vücudun başka bir cisme çarpıp çarpmaması, ancak bu çarpışmada tepki göstermemesi nasıl algılanır.Çarpışma nasıl algılanır, ancak box2d'de çarpışmaz mı?

varsayılan olarak i - çarpışmayı algılar ve gövdeler çarpışır.

Eğer fikstür ayarlıysam filtreler - gövdeler çarpışmaz ama çarpışmayı tespit edemiyorum.

Yardım lütfen!

+3

sensörler http://www.box2d.org/manual.html – Cyclonecode

cevap

18

Fikstürün hiçbir şeyle çarpışması gerekmiyorsa, bunu bir sensör haline getirebilirsiniz. Bazı şeylerle çarpışmak için ihtiyacınız varsa, ancak başkaları ile çarpışmak zorunda kalmazsanız, çarpışma dinleyicisinin PreSolve'unda, ne ile çakıştığına bağlı olarak iletişim kurabilirsin.

+0

Zeyilname hakkında daha fazla okumaya çalışın fikstür ile çarpışmalı ve çarpmamalıdır. – Thomas

+0

Hala bir çarpışma olduğunda ne olduğunu tespit etmek istiyor, o sadece herhangi bir çarpışma yanıtı istemiyor. Çarpışma maskesinin değiştirilmesi, çarpışma tespitini tamamen önleyecektir. – iforce2d

+0

Doğru. Bunun sensör armatürleri ile birleştirilmesi gerekiyor. – Thomas

8

Burada ne istediğinizi vücuttaki bir sensör fikstürüdür. Kutu2d el kitabından:

Bazen iki mantığın üst üste geldiği zaman oyun mantığının bilmesi gerekir çünkü çarpışma tepkisi olmamalıdır. Bu sensörler kullanılarak yapılır. Bir sensör, çarpışmayı algılayan ancak yanıt vermeyen bir armatürdür.

Herhangi bir fikstürü sensör olarak işaretleyebilirsiniz. Sensörler statik veya dinamik olabilir. Her vücut için birden fazla fikstür olabileceğini unutmayın ve herhangi bir sensör ve katı fikstür karışımına sahip olabilirsiniz.

Sensörler kontak noktaları oluşturmaz. Bir sensör olarak bir fikstür ayarlayın ve sonra yazabilir

  1. b2Contact :: IsTouching
  2. b2ContactListener :: BeginContact ve EndContact: bir sensör durumunu almak için iki yol vardır iletişim dinleyicinize. Bir fikstürün sensör bayrağı doğru olarak ayarlanmışsa, çarpışmayı fiziksel olarak simüle etmeden çarpışma verileri sağlayacaktır (yani, herhangi bir çarpışma fikstürü arasında örtüşmeyi test etmenize izin verecektir.)

    Bu, nasıl yararlı bir öğretici yerine PreSolve kullanmanın da ne denetlemek için çarpışma maskeleri ve/veya çarpışma grupları kullanabilirsiniz: sensörlerini kullanarak başlamak için Ray Wenderlich sensor tutorial

İlgili konular