Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE ⇨ box2dlib.bbc

PROC_b2GetContact()

DESCRIPTION.


La procédure PROC_b2GetContact() retourne les identifiant des deux formes, ainsi que leur cotés en contact, impliquées dans une collision dans un monde physique Box2d.



SYNTAXE.


PROC_b2GetContact( collision , kforme_A , kforme_B , kcote_A , kcote_B )




REMARQUES.


collision doit être l'identifiant de la variable ayant reçu la valeur retournée par l'appel de la fonction FN_b2ContactListWorld() ou de l'appel précédent de la fonction FN_b2NextContact().


L'appel de la procédure PROC_b2GetContact() va retourner : 

- l'une des formes dans kforme_A ;

- l'autre forme dans kforme_B ;

- le coté, segment, de kforme_A en contact avec kforme_B dans kcote_A ;

- le coté, segment, de kforme_B en contact avec kforme_A dans kcote_B.


Note pour les types de formes simples, la procédure PROC_b2GetContact() peut retourner 0 pour kcote_A et/ou kcote_B.



La procédure PROC_b2GetContact() permet de condenser le code du traitement des collisions, et surtout de connaitre précisément sur quelles parties, cotés ou segments les formes se rencontrent. Cette fonctionnalité est particulièrement utile pour gérer les collisions si au-moins l'un des deux corps à une forme polygonale, obtenue avec la fonction FN_b2PolygonFixture(), ou s'il s'agit d'une suite de segments, obtenue avec la fonction FN_b2ChainFixture().


La procédure PROC_b2GetContact() remplacera, avantageusement les appels aux fonctions FN_b2ContactGetFixtureA() et FN_b2ContactGetFixtureB(), en permettant moins d’appels système, un script plus lisible, une meilleure analyse d'une collision, en particulier sur les formes faites d'une chaine de segments.



Voir les fonctions FN_b2ContactListWorld() et FN_b2NextContact() qui permettent de parcourir la liste des collisions actuellement actives dans un monde Box2d.



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_b2GetContact() 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 des corps et des formes associees ---

kchassis = FN_b2DynamicBody( kmonde , 0 , 2 , 2 , .5 , 1 , 0 , 0, 0 )

kroue = FN_b2DynamicBody( kmonde , 0 , 1.2 , .4 , 1 , 0 , 0, 0 )



REM --- Localisation de la première collision ---

kcollision = FN_b2ContactListWorld( monde )

kindex = 1 


REM --- A faire tant qu'il y a des collisions actives non traitées ---

WHILE kcollision <> 0


REM --- Traitement de la collision ---

PROC_b2GetContact ( kcollision , kforme_A , kforme_B , kcote_A , kcote_B )

kcorps_A = FN_b2FixtureGetBody( kforme_A ) : REM - identification et mémorisation du corps associé a la forme A

kcorps_B = FN_b2FixtureGetBody( kforme_B ) : REM - identification et mémorisation du corps associé a la forme B

PRINT "Collision " ; kindex ; " (Id : " ; kcollision ; " ) contact entre " ; kcorps_A ; " et " ; kcorps_B ; ". "


REM --- Collision suivante ---

kcollision = FN_b2ContactGetNext( kcollision )

kindex += 1 


ENDWHILE


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

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse