;28-11-2004, version 1.0 ;//////////////////////////////////////////////////////////////////////// ;nom de l'application AppTitle "collision bloc 1" ;//////////////////////////////////////////////////////////////////////// ;variable du mode graphique Const Resolution00%=640;X Const Resolution01%=480;Y Const Resolution02%=16;profondeur des couleurs Const Resolution03%=2;mode graphique ;//////////////////////////////////////////////////////////////////////// ;initialisation du mode graphique Graphics Resolution00,Resolution01,Resolution02,Resolution03 .VarCollision ;//////////////////////////////////////////////////////////////////////// ;variable, collisions ;image 0, dimension Const C00%=128;taille, X Const C01%=128;taille, Y ;image 0, dimension collision [0] Const C02%=64;taille, X Const C03%=64;taille, Y Const C04%=((C00-C02)/2);espace, X Const C05%=((C01-C03)/2);espace, Y ;image 1, dimension Const C10%=64;taille, X Const C11%=64;taille, Y .VarJoueur ;//////////////////////////////////////////////////////////////////////// ;variable, joueur J00#=100.0;position, X J01#=100.0;position, Y J02#=J00;position, X tampon J03#=J01;position, Y tampon .VarDecor ;//////////////////////////////////////////////////////////////////////// ;variable, decor D00%=288;position, X D01%=208;position, Y ;***************** ;* boucle du jeu * ;***************** ;//////////////////////////////////////////////////////////////////////// ;initialise le tampon secondaire SetBuffer BackBuffer() ;//////////////////////////////////////////////////////////////////////// ;tant que "echappe" n'a pas ete presse While Not KeyDown(1) ;//////////////////////////////////////////////////////////////////////// ;efface le tampon secondaire Cls .L00 ;//////////////////////////////////////////////////////////////////////// ;collision If RectsOverlap (Floor#(J00+C04),Floor#(J01+C05),C02,C03,D00,D01,C10,C11) Text 0,00,"Collision !!!" ;haut If Floor#((J03+C05)+C03)<=D01 ;mise a jour J01=Floor#((D01-C05)-C03) ;saute au pointeur Goto P_Collision00 EndIf ;bas If Floor#(J03+C05)>=(D01+C11) ;mise a jour J01=Floor#((D01+C11)-C05) ;saute au pointeur Goto P_Collision00 EndIf ;gauche If Floor#(J02+C04+C02)<=D00 ;mise a jour J00=Floor#((D00-C04)-C02) ;saute au pointeur Goto P_Collision00 EndIf ;droite If Floor#(J02+C04)>=(D00+C10) ;mise a jour J00=Floor#((D00+C10)-C04) ;saute au pointeur Goto P_Collision00 EndIf EndIf ;pointeur .P_Collision00 .L01 ;//////////////////////////////////////////////////////////////////////// ;dessin Color 0,255,255 Rect Floor#(J00+C04),Floor#(J01+C05),C02,C03,1 ;dessin Color 0,0,255 Rect D00,D01,C10,C11,1 .L02 ;//////////////////////////////////////////////////////////////////////// ;texte Text 0,10,"J02 "+J02 Text 0,20,"D00 "+D00 .L03 ;//////////////////////////////////////////////////////////////////////// ;mise a jour J02=J00;position, X tampon J03=J01;position, Y tampon ;//////////////////////////////////////////////////////////////////////// ;basculement des tampons Flip ;//////////////////////////////////////////////////////////////////////// ;haut If KeyDown(200) J01=(J01-4.0);position, Y EndIf ;bas If KeyDown(208) J01=(J01+4.0);position, Y EndIf ;gauche If KeyDown(203) J00=(J00-4.0);position, X EndIf ;droite If KeyDown(205) J00=(J00+4.0);position, X EndIf ;//////////////////////////////////////////////////////////////////////// ;fin de la boucle Wend ;//////////////////////////////////////////////////////////////////////// ;fin du programme End
>the first square (player) has a second square inside for the collision.