⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
PROC_b2SetFilter()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc
PROC_b2SetFilter()
DESCRIPTION.
La procédure PROC_b2SetFilter() retourne la valeur personnalisée associée à une fixture dans un monde physique Box2d.
SYNTAXE.
kdonnee = PROC_b2SetFilter( fixture , categorie , reagir , famille )
)
REMARQUES.
fixture doit être l'identifiant de la variable ayant reçu la valeur retournée par l'appel d'une fonction ayant créée une fixture.
categorie doit être un nombre entier indiquant à quelles catégories appartient une fixture d'un corps dans un monde physque Box2d, il peut y avoir jusqu'à 16 catégories de fixture.
On ajoutera a categorie la valeur 1 pour la catégorie 0 ; 2 pour la catégorie 1 ; 4 pour la catégorie 2 ; 8 pour la catégorie 3 ; 16 pour la catégorie 4 ; 32 pour la catégorie 5 ; 64 pour la catégorie 6 ;128 pour la catégorie 7 ; 256 pour la catégorie 8 ; 512 pour la catégorie 9 ; 1024 pour la catégorie 10 ; 2048 pour la catégorie 11 ; 4096 pour la catégorie 12 ; 8192 pour la catégorie 13 ; 16384 pour la catégorie 14 ; 32768 pour la catégorie 15. Par exemple, si pour qu'une fixture appartienne aux catégories 5, 8 et 11, categorie vaudra : 32 + 256 + 2048 = 2336.
reagir doit être un nombre entier indiquant à quelles catégories une fixture d'un corps dans un monde physique Box2d. La valeur de reagir est calculée de la même façon que categorie. Par exemple, si pour qu'une fixture collisionne avec les fixtures catégories 6, 12 et 13, reagir vaudra : 64 + 4096 + 8192 = 12352.
famille doit être un nombre entier indiquant à quelle famille appartient la fixture et indique certaines conditions spéciales pour les collisions entre membre d'une même famille :
- 0, aucune règle spéciale ne s'applique ;
- positif, les fixtures de cette famille collisionnent toujours entre eux ;
- négatif, les fixtures de cette famille ne collisionnent jamais entre eux.
Par exemple - si deux fixtures, ou plus, ont 4, valeur positive, pour famille : elle collisionneront toujours entre elles, même si leur catégories n'appartiennent pas à reagir. Par contre, si elles ont -2, valeur négative, elle ne collisionneront jamais entre elles, même si leurs catégories appartienne à reagir.
Note : les catégories ne sont pas imposées par Box2d. L'utilisateur est libre de définir ses propre catégorie, la valeur à laquelle elles correspondent et à quel type de corps appartient une catégorie.
Pour une meilleure lisibilité du script, on pourra affecter les valeurs des différentes catégories à une variable. On pourra enssuite additionner les variables correspondantes pour obtenir les valeurs de categorie, reagir et special. Par exemple :
kavatar = 1
kballe = 2
kennemi = 4
kprojectile = 8
ksol = 16
keau = 32
kpoisson = 64
koiseau = 128
ksante = 256
PROC_b2SetFilter( kjoueurF , kavatar , ( kprojectile + ksol + keau + kpoisson + koiseau + ksante ) , 0 )
Rappel : la procédure PROC_b2Init devra toujours être appelée avant tout autre fonction ou procédure de box2dlib.bbc.
La procédure PROC_b2SetFilter() est importée depuis le module box2dlib.bbc.
RUBRIQUES.
Les dessins et les graphismes pour plus de détails sur la création de dessins et de graphismes.
La gestion des couleurs pour plus de détails sur la gestion des couleurs logiques et physiques.
EXEMPLE.
REM --- Importation des modules ---
REM --- Module de la bibliothèque BBC BASIC ---
INSTALL @lib$ + "box2dlib.bbc"
REM --- INITIALISATION GENERALE ---
REM --- Initialisation et création du monde ---
PROC_b2Init
kmonde = FN_b2CreateWorld( 0 , -9.81 )
REM --- Creation d'un plateau ---
kplateau = FN_b2DynamicBody( kmonde , 10 , 5 , .64 , 15 , -.5 , -.25 , .02 , 0 )
REM --- Création d'une fixture rectangulaire ---
kplateauF = FN_b2BoxFixture( kplateau , 0 , 0 , 0 , 1 , 0.5 , 0.3 , 0.2 , 1.0 )
PROC_b2SetFilter( kplateauF , 1024 , 642 , 0 )
REM --- Fermeture de box2dlib ---
PROC_b2Exit
REM --- Fin du programme ---
END
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.