Programmes, Jeux, Cours et Tutoriels de programmation pour calculatrices Casio.

Top-progcasio ßêta

Leçon 10 Mouvement

posté le 2008-03-18 00:00:00

posté par

Clement

Webmaster
Après avoir vu les graphismes, nous allons voir comment obtenir un mouvement grâce aux fonctions graphiques du SDK.


I - Introduction

Le mouvement d'une image est très simple, c'est juste la variation des coordonnées de cet image. Contrairement aux images fixes, nous utiliserons donc des variables pour les coordonnées. Les valeurs de ces variables seront modifiées par différentes opérations(automatiques ou déclenchées par l'utilisateur).


II - Rappel Code:

Bdisp_PutDisp_DD(); // trace le contenu de la VRAM sur l'écran
Bdisp_AllClr_DD(); // efface l'écran
Bdisp_AllClr_VRAM(); // efface la VRAM
Bdisp_AllClr_DDVRAM(); // efface le contenu de la VRAM et l'écran

Pour pour plus d'informations consultez la Leçon n°7. méthode que nous utiliserons pour dessiner et éviter le scintillement:

Code:
// calcul des coordonnées
// dessiner dans la VRAM
// effacer juste l’écran ( Bdisp_AllClr_DD() )
// tracer avec le contenu de la VRAM sur l'écran ( Bdisp_PutDisp_DD() )
// effacer la VRAM ( Bdisp_AllClr_VRAM() )

Ces opérations seront repérées dans la boucle principale. Plus d'informations consultez L'astuce complémentaire de Pylaterreur.


II - Exemple de Code

a_Mouvement automatique d'une image simple

Code:
for(i=1 ; i<20 ; i++) //début boucle principale {
// calcul des coordonnées x = 2*i; y = i;
// dessiner dans la VRAM Bdisp_DrawLineVRAM(x,y,x+10,y+15);
// effacer juste l’écran Bdisp_AllClr_DD();
// tracer avec le contenu de la VRAM sur l'écran Bdisp_PutDisp_DD();
// effacer la VRAM Bdisp_AllClr_VRAM(); }
//fin boucle principale

b_Mouvement d'une image compliquée effectué par l'utilisateur

Voici le code minimale mais compilable

Code:
#include "fxlib.h"
// fonction contenant l'image à tracer
void TraceImg(int x, int y) {
Bdisp_DrawLineVRAM(0+x,55+y,2+x,55+y);
Bdisp_DrawLineVRAM(6+x,55+y,8+x,55+y);
Bdisp_DrawLineVRAM(0+x,56+y,2+x,56+y);
Bdisp_DrawLineVRAM(6+x,56+y,8+x,56+y);
Bdisp_DrawLineVRAM(0+x,57+y,2+x,57+y);
Bdisp_DrawLineVRAM(6+x,57+y,8+x,57+y);
Bdisp_DrawLineVRAM(3+x,58+y,5+x,58+y);
Bdisp_DrawLineVRAM(3+x,59+y,5+x,59+y);
Bdisp_DrawLineVRAM(3+x,60+y,5+x,60+y);
Bdisp_DrawLineVRAM(0+x,61+y,2+x,61+y);
Bdisp_DrawLineVRAM(6+x,61+y,8+x,61+y);
Bdisp_DrawLineVRAM(0+x,62+y,2+x,62+y);
Bdisp_DrawLineVRAM(6+x,62+y,8+x,62+y);
Bdisp_DrawLineVRAM(0+x,63+y,2+x,63+y);
Bdisp_DrawLineVRAM(6+x,63+y,8+x,63+y);
}
// fonction principale
int AddIn_main(int isAppli, unsigned short OptionNum) {
int x, y; // declaration
// initialisation des variables
x=10;
y=10;
while( !IsKeyDown(KEY_CTRL_EXIT) ) //debut boucle principale {
// calcul des coordonnées en fonction de la touche pressée
if( IsKeyDown(KEY_CTRL_RIGHT) ) x++;
if( IsKeyDown(KEY_CTRL_LEFT) ) x--;
if( IsKeyDown(KEY_CTRL_UP) ) y--;
if( IsKeyDown(KEY_CTRL_DOWN) ) y++;
// dessiner dans la VRAM TraceImg(x,y);
// effacer juste l’écran Bdisp_AllClr_DD();
// tracer avec le contenu de la VRAM sur l'écran Bdisp_PutDisp_DD();
// effacer la VRAM Bdisp_AllClr_VRAM();
} //fin boucle principale
return 1;
}
#pragma section _BR_Size unsigned long BR_Size;
#pragma section
#pragma section _TOP
int InitializeSystem(int isAppli, unsigned short OptionNum) { return INIT_ADDIN_APPLICATION(isAppli, OptionNum); }
#pragma section

L'image se déplace en fonctions des touches sur lesquelles vous appuyez( pour réviser les touches consultez la Leçon 6 ). Ce programme effacera l'image et la redessinera même si elle n'a pas bougée, c'est la solution la plus simple. Vous pouvez utiliser une boucle qui permettra d'attendre qu'une touche soit pressée ou d'autres astuces.


IV - Note

PICT 9860 de Nicocreation permet la gestion du mouvement, ce logiciel génère directement une fonction contenant une image avec les coordonnées en paramètres.
L'utilisation des fonctions du SDK n'est pas toujours appropriée pour le mouvement et assez lent. Il est conseillé d'utiliser des sprits grâce à une librairie appropriée (SpritLib de PierrotLL ou FX-Revolution de Kucalc).

non noté, soyez le premier à donner votre avis !
Bookmark and Share
Creative Commons License
Lien permanent : http://top-progcasio.com/tutoriel-279.html
Vous devez vous connecter pour pouvoir poster.
Utilisez le formulaire d'inscription pour devenir membre de top-progcasio.

Contenu Relatif :

Les Rubriques ClassPad Sur...

La PRIZM™ Fx-CG10/20

Gestion Des Sprites En Mlc



2005 - 2012 Top-progcasio - Mentions légales et CGU -