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

FN_b2NextContact()

DESCRIPTION.


La fonction FN_b2IsTouching() permet de s'assurer que deux corps impliqués dans une collision se touchent physiquement dans un monde physique Box2d. 



SYNTAXE.


ktouche = FN_b2IsTouching( collision )




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().


La fonction FN_b2IsTouching() retourne : 

- -1 si les deux corps présents dans collision se touchent ;

- 0 si les deux corps présents dans collision ne se touchent pas.



La fonction FN_b2IsTouching() retourne une valeur booléenne qu'il faudra, de préférence, l'affecter à une variable. 



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



L'appel de la fonction FN_b2IsTouching() permet de savoir si les deux formes, fixtures, en contact dans une collisions se touchent réellement, c'est-à-dire si elles sont physiquement en contact dans un monde physique Box2D. En effet Box2d distingue collision et touché. Une collision peut exister même si les corps ne se touchent pas, si la collisions entre-eux est désactivée, les formes se chevauchent potentiellement, mais sans collision réelle, voire si la collision existe toujours dans la liste des collisions alors que les corps ont été séparé par un traitement dans le script.



Rappel : la procédure PROC_b2Init devra toujours être appelée avant tout autre fonction ou procédure de box2dlib.bbc.



La procédure FN_b2IsTouching() 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'es corps et de leur forme ---

kpetit = FN_b2DynamicBody( kmonde , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 ) 

kgrand = FN_b2DynamicBody( kmonde , 6 , 6 , 0 , 0 , 0 , 0 , 0 , 0 ) 

kforme_petit = FN_b2BoxFixture( kpetit , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 )

kforme_grand = FN_b2BoxFixture( kgrand , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 )


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

PRINT FN_b2IsTouching ( kcollision )

kcollision = FN_b2ContactGetNext( kcollision )

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