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

DESCRIPTION.


La procédure PROC_gfxRender() place et gère les mise à jour des représentations des corps d'un monde physique Box2d.




SYNTAXE.


PROC_gfxRender( DCT_Init{} , monde )




REMARQUES.


DCT_Init{} est l'identifiant de la structure de données qui sera créée et retournée par la procédure PROC_gfxInit().

monde doit être l'identifiant de la variable ayant reçu la valeur retournée par l'appel de la fonction FN_b2CreateWorld() et qui indique donc le monde physique dans lequel évoluent les corps.


La procédure PROC_gfxRender() dessine tous les corps physiques d’un monde Box2D sur l’écran en utilisant les images associées à chaque corps. La procédure PROC_gfxRender() va parcourir la liste des corps toujours présents dans monde. Pour chaque de ces corps, elle récupère son “User Data” avec un appel de la fonction FN_b2UserDataBody() du module box2dlib.bbc, qui doit contenir la référence un objet image créé avec la procédure PROC_gfxLoad(), et appliquer les transformations du corps (position + rotation)


Rappel : la procédure PROC_gfxInit() devra toujours être appelée avant tout autre fonction ou procédure de box2dgfx.bbc.


Voir le module box2dlib.bbc qui permet de créer des mondes Box2d et de gérer les corps et collisions dans ces mondes.



La procédure PROC_gfxBlit() est importée depuis le module box2dgfx.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"

INSTALL @lib$ + "box2dgfx.bbc"


REM --- INITIALISATION GENERALE ---

VDU 23 , 22 , 640  ; 480 ; 8 , 16 , 16 , 0 : REM mode graphique SDL 640x480

GCOL 0 , 2


REM --- Initialisation et création du monde ---

PROC_b2Init

kmonde = FN_b2CreateWorld( 0 , 9.81 ) : REM - créer un monde 

kcorps = FN_b2DynamicBody( kmonde , 5 , 5 , 0 , 0 , 0 , 0 , 0 , 0 ) : REM - créer un corps dans le monde

kforme = FN_b2BoxFixture( kcorps , 0 , 0 , 0 , 1 , 1 , 0 , 0 , 1 ) : REM - associer une forme rectangulaire au corps

PROC_b2SetBody( kcorps , 5 , 1 , 0 ) : REM - place le corps dans le monde


REM --- Initialisation du rendu graphique ---

PROC_gfxInit( DCT_Context{} , 640 , 480 , 30 )

PROC_gfxLoad( DCT_Corps{} , "monfichier.jpg" , 30 )

PROC_b2UserDataBody( kcorps , DCT_Corps{}.t%% )


REM --- Boucle d'animation du corps dans le monde ---

REM --- Initialisation des donnees de la mise à jour ---

PROC_b2WorldStep( kmonde , 0.017 , 8 , 3 ) : REM - met à jour le monde de 1/60=0,017 de seconde

PROC_b2GetBody( kcorps , kabscisse , kordonnee , kangle ) : REM - retourné la position et l'inclinaison du corps

PROC_b2GetVelocity( kcorps , khorizontal , kvertical , krotation ): REM - retourné les vitesses du corps

PROC_gfxRender( DCT_Context{} , kmonde )


INPUT "Appuyer sur Entrée pour arreter ... " , kpause


REM --- Fin du programme ---

PROC_gfxExit

PROC_b2Exit

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