0 Members and 5 Guests are viewing this topic.
:.TILES:Full:Lbl TMAP:ClrDraw:[010101010101010101010101]→GDB1:[010000000000000000000001]:[010000000000000000000001]:[010000000000000101010101]:[010000000000000000000001]:[010001010100000000000001]:[010000000000000000000001]:[010101010101010101010101]:[7E81A581A599817E]→Pic1:For(B,0,7):For(A,0,11):{B*12+A+GDB1}→T:If T:T--:Pt-On(A*8,B*8,T*8+Pic1):DispGraph:End:End:End:[3C429581818D423C]→Pic1MAN:[003C7E7E7E7E3C00]→Pic2MAN:[3C42A98181B1423C]→Pic3MAN:45→X:45→Y:0→J:1→D:Repeat getKey(15)::Pt-On(X,Y,Pic2MAN)r:If getKey(2) and (pxl-Test(X-1,Y+6)=0) and (pxl-Test(X-1,Y+1)=0):X--:2→D:End:If getKey(3) and (pxl-Test(X+8,Y+6)=0) and (pxl-Test(X+8,Y+1)=0):X++:1→D:End:If getKey(4) and (pxl-Test(X+1,Y+8) or pxl-Test(X+7,Y+8):18→J:End:If (J>0):Y--:J--:End:If (pxl-Test(X+6,Y+8)=0) and (pxl-Test(X+1,Y+8)=0) and (J=0) or (pxl-Test(X,Y) or (pxl-Test(X+7,Y):Y++:0→J:End:If getKey(1) and (pxl-Test(X,Y+8)=0) and (pxl-Test(X,Y+8)=0):Y++:0→J:End:If (D=1):Pt-Change(X,Y,Pic1MAN):End:If (D=2):Pt-Change(X,Y,Pic3MAN):End:Pause 25:DispGraph:DispGraphr:ClrDrawr:If (D=1):Pt-Change(X,Y,Pic1MAN):End:If (D=2):Pt-Change(X,Y,Pic3MAN):End:End
Si tu veux faire du tilemapping pixel par pixel, il faut en effet utiliser le smooth scrolling. Je vais essayer de t'expliquer comment faire :Tout d'abord , tu dois changer de signe deux variables (I et J) en fonction de la direction où tu vas comme ceci :CODE: TOUT SÉLECTIONNER:If getKey(3) and (I=0) and (J=0):1→I:End:If getKey(2) and (I=0) and (J=0):-1→I:End:If getKey(1) and (I=0) and (J=0):1→J:End:If getKey(4) and (I=0) and (J=0):-1→J:EndEnsuite tu les ajoutes à H et V (le décalage horizontale et verticale sur la map entre 0 et 8 ) :CODE: TOUT SÉLECTIONNERH+I+I→HV+J+J→VLorsque tu as bougé de 8 pixels, tu rajoute (ou soustrait 1) à la position horizontale/verticale (ici P = horizontale et Q = verticale) :CODE: TOUT SÉLECTIONNER:If H-8=0 or (H+8=0+I→P:0→H→I:End:If V-8=0 or (V+8=0:Q+J→Q:0→V→J:EndEn tout, tu as :CODE: TOUT SÉLECTIONNER:Repeat getKey(15)::If getKey(3) and (I=0) and (J=0):1→I:End:If getKey(2) and (I=0) and (J=0):-1→I:End:If getKey(1) and (I=0) and (J=0):1→J:End:If getKey(4) and (I=0) and (J=0):-1→J:End:::H+I+I→H:V+J+J→V::If H-8=0 or (H+8=0+I→P:0→H→I:End:If V-8=0 or (V+8=0:Q+J→Q:0→V→J:End::sub(MAP):Pt-Off(48,32,Pic1:DispGraphClrDraw:End:Returnsub(MAP) appellera la fonction qui s'occupe d'afficher la map à l'écran et Pic1 contient le sprite du personnage.Pour voir les tiles sur le bord quand tu te déplace, tu dois avoir préalablement affiché la colonne/ligne d'après/avant.Voilà maintenant le code de la fonction MAP :CODE: TOUT SÉLECTIONNER:Lbl MAP:For(Y,0,9:For(X,0,13:Pt-On(X*8-8-H,Y*8-8-V,{Y+Q*[largeur de la map]+X+P+GDB1}*8+Pic0:End:End:Returnavec GDB1, un pointeur sur la map et Pic0, un pointeur sur les tiles.En espérant t'avoir aidé.