.SCRNSHOT
StoreGDB
"vPIC"->Str1
GetCalc(Str1)
GetCalc(Str1,768)
conj(L6,Str1,768)
DispGraph
[code].SCRNVIEW
"vPIC"->Str1 // plus précisément ici
GetCalc(Str1)->M
If M
conj(Str1,L6,768)
DispGraph
End
.SCRNSHOT
"vPIC"->Str1
StoreGDB
GetCalc(Str1,768)->A
Return!If
conj(L6,A,768)
.SCRNVIEW
"vPIC"->Str1
Unarchive Str1
Return!If GetCalc(Str1)->A
A->DispGraph
:If I=1 or (I=3
: Pt-Off(A,B,Pic0
Pourquoi utilisez-vous Pt-Off (?:
:Lbl I
:1+I→I
:If I=5
: 1→I
:Return
:
Pour répondre à ton autre question, il est impossible de faire tourner des sprites à présent, surtout pas autre chose que 90°. Et il est possible de stocker un nombre infini d'images tant que tu as de la mémoire pour faire tourner le jeu:Je ne sais pas si c'est le problème, mais manqueraut-il un End ici?:o pas facile à voir (la fatigue surement ??? )Code: [Select]:
:Lbl I
:1+I→I
:If I=5
: 1→I
:Return
:
:.TEST2
:[151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA151515151515151515151514AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554AAAAAAAAAAAAAAAAAAAAAAAA515151515151515151515150AAAAAAAAAAAAAAAAAAAAAAAA555555555555555555555554000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF→Pic1
:0→X
:Repeat getKey(15)
:Pic1+X→DispGraph
:If getKey(4) and (X≠0
:X-12→X
:End
:If getKey(1)
:X+12→X
:End
:End
mais il faut aussi spécifier la taille de l'image dans le cadre de ces données.La je suit plus ^^, comment ça?
Bitmap(adresse de l'image, largeur (en bytes), hauteur (en pixels)
Bref, un truc qui ressemble à xLIB, si ça peut t'aider.
.BITMAP
.Data(hauteur,largeur)→Pic
.[Sprite]
Data(8,8)→Pic1
[3C7EDBFFBDDB663C]
Bitmap(20,10,Pic1)
Data(hauteur,largeur)→PicHauteur et largeur c'est en pixel?
Bitmap(20,10,Pic1)20 et 10 c'est en pixel?
Pause suivi d'un chiffre entre 0 et 65535 ça ajoute un délai au programme. Par exemple, Pause 20000 stoppera le programme pendant quelque secondes.
Oui c'est possible.
1000->X
Pause X
Je n'ai pas commencé les datas, mais je pense que ça vas être le plus long chapitre du tuto (car je doit expliquer le binaires et l’hexadécimal aussi), cependant, il faut que je me penche un peu plus sur les listes et les datas avant de pouvoir écrire leur fonctionnement.Bon. Cela attendra alors.
Des exercices ce serait bien, ou même faire des paralelles avec des trucs de la vie de tous les jours pour expliquer certains trucs compliqués de 2 façons. Certaines personnes sont plus visuelles et apprennent mieux de cette façon.Oui mais en programmation...
Je veux dire quelque chose comme Hot Dog's z80 assembly for the absolute beginner guide, mais pour AxeDes exercices ce serait bien, ou même faire des paralelles avec des trucs de la vie de tous les jours pour expliquer certains trucs compliqués de 2 façons. Certaines personnes sont plus visuelles et apprennent mieux de cette façon.Oui mais en programmation...
Ah ça y est j'ai trouvé:
line(numéro de rue de départ, rue de départ,numéro de rue d'arrivée, rue d'arrivée
.Appvar
"vAlexHS"{->}Str1
UnArchive Str1
!If GetCalc(Str1){->}A
GetCalc(Str1,1){->}A
0{->}{A}r
End
Pour une fonction? C'est 3 maximum.
EDIT : mon petit doigt me dit que tu viens de rentrer de vacance Kiligolo ;DEt le mien dit que tu as raison. ;D
Text(X,Y,"MON TEXTE 1",A,"MON TEXTE 2")
L6(2)→A
Est-ce que l'on peut utiliser les listes genre :Code: [Select]L6(2)→A
Les pixels de l'écran ça commence à 0 ou à 1?
Comment fait-on pour avoir un écriture à 8 pixels de haut avec la fonction texte? (J'ai entendu parler du fix mais je ne sais pas lequel :P)Fix 1, mais avant de quitter ton programme, n'oublie pas de remettre Fix 0.
Les pixels de output ça commence où (0 ou 1)?0, tu n'a qu'à essayer.
À noter que contrairement au BASIC, c'est Text(X,Y,"Texte") et non Text(Y,X,"Texte").Je n'avais pas remarqué, mais c'est beaucoup plus logique ;D
Merci.Est-ce que l'on peut utiliser les listes genre :Code: [Select]L6(2)→A
Nope, c'est {L6+X}→A pour la syntaxe.Les pixels de l'écran ça commence à 0 ou à 1?
0, tu n'a qu'à essayer.Comment fait-on pour avoir un écriture à 8 pixels de haut avec la fonction texte? (J'ai entendu parler du fix mais je ne sais pas lequel :P)Fix 1, mais avant de quitter ton programme, n'oublie pas de remettre Fix 0.Les pixels de output ça commence où (0 ou 1)?0, tu n'a qu'à essayer.
Seulement le début. Pour savoir la longueur je crois qu'il faut vérifier où est le zéro après la chaine et soustraire la position du 0, qui est un délimiteur, et le début de la chaine, et ça te donne la longeur.Ce que je cherche à savoir, c'est quand on a notre chaîne "hello world"=>Str1, dans notre mémoire on aura à peut près cela :
[LE NOIR ET BLANC][LE GRIS]->Pic1
.ou
[LE NOIR ET BLANC]
[LE GRIS]->Pic1
Et ça marche pour les 16*16 pixels?.MONPROG
[LENOIR1]=>Pic1
[LENOIR2]=>Pic2
[LENOIR3]=>Pic3
[LENOIR4]=>Pic4
[LEGRIS1]=>Pic5
[LEGRIS2]=>Pic6
[LEGRIS3]=>Pic7
[LEGRIS4]=>Pic8
Pt-On(X1,Y1,Pic1)
Pt-On(X2,Y2,Pic2)
Pt-On(X3,Y3,Pic3)
Pt-On(X4,Y4,Pic4)
DispGraph
Pt-On(X1,Y1,Pic5)
Pt-On(X2,Y2,Pic6)
Pt-On(X3,Y3,Pic7)
Pt-On(X4,Y4,Pic8)
DispGraphr
.MONPROG
[LENOIR1]=>Pic1
[LENOIR2]=>Pic2
[LENOIR3]=>Pic3
[LENOIR4]=>Pic4
[LEGRIS1]=>Pic5
[LEGRIS2]=>Pic6
[LEGRIS3]=>Pic7
[LEGRIS4]=>Pic8
Pt-On(X1,Y1,Pic1)
Pt-On(X2,Y2,Pic2)
Pt-On(X3,Y3,Pic3)
Pt-On(X4,Y4,Pic4)
Pt-On(X1,Y1,Pic5)r
Pt-On(X2,Y2,Pic6)r
Pt-On(X3,Y3,Pic7)r
Pt-On(X4,Y4,Pic8)r
DispGraph
DispGraphr
Mais ça ne marche pas :(
Pt-On(X,Y,Pic12)r
Je ne sais pas si il y a un inconvénient par rapport à StorePic ou ce que cela fait vraiment :P . Merci.Pt-On(64,0,Pic11)
Pt-On(72,0,Pic12)
Pt-On(64,8,Pic13)
Pt-On(72,8,Pic14)
StorePic
Pt-On(80,0,Pic08)
Pt-On(80,8,Pic09)
Pt-On(88,8,Pic10)
StorePic
...
DispGraphr
"plop "
"world"=>Str1
Disp Str-5
Salut, est-il possible de créer une liste ou une matrice ? Si oui comment ?http://ourl.ca/4881/136146
:!If EXP1
:.Code
:ElseIf EXP2
:.Code
:End
:If EXP1=0
:.Code
:ElseIf EXP2
:.Code
:End
Est ce que c'est normal que maintenant (dans la version 0.4.5 seulement), lors de la compilation le code suivant ne soit pas compilé (plante) :Utilise la 4.4 ! %)Code: [Select]:!If EXP1
:.Code
:ElseIf EXP2
:.Code
:End
Je suis obligé de faire :Code: [Select]:If EXP1=0
:.Code
:ElseIf EXP2
:.Code
:End
???
:.PERSO
:
:.DATA
:[{sprite du perso}]→Pic1
:[{sprite du mur}]→Pic2
:
:Lbl A
1→M+31→Y+15→X
:Repeat getKey(15)
:If getKey(2)
:sub(COG)
:ClrDraw
:End
:If getKey(3)
:sub(COD)
:ClrDraw
:End
:If getKey(1)
:sub(COB)
:ClrDraw
:End
:If getKey(4)
:sub(COH)
:ClrDraw
:End
:sub(MAP)
:Pt-On(X,Y,Pic1+(E*8))
:DispGraphr
:End
:Goto Z
:Lbl MAP
:If M=1
:For(A,0,11)
:Pt-On(A*8,0,Pic2)
:If (A≠4) and (A≠5)
:Pt-On(A*8,56,Pic2)
:End
:End
:For(A,1,7)
:Pt-On(0,A*8,Pic2)
:Pt-On(88,A*8,Pic2)
:End
:End
:Return
:Lbl COG
:0→B
:For(A,0,7)
:!If Pxl-Test(X-1,Y+A)
:B+1→B
:If B=8
:X-1→X
:End
:End
:End
:Return
:Lbl COD
:0→B
:For(A,0,7)
:!If Pxl-Test(X+9,Y+A)
:B+1→B
:If B=8
:X+1→X
:End
:End
:End
:Return
:Lbl COB
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y+9)
:B+1→B
:If B=8
:Y+1→Y
:End
:End
:End
:Return
:Lbl COH
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y-1)
:B+1→B
:If B=8
:Y-1→Y
:End
:End
:End
:Return
:Lbl Z
:ClrDraw
:ClrDrawr
:DispGraph
:.PERSO
:
:.DATA
:[{sprite du perso}]→Pic1
:[{sprite du mur}]→Pic2
:
:Lbl A
:.M=1, Y=32, X=47, E=?
:1→M+31→Y+15→X
:
:.Boucle principale
:Repeat getKey(15)
:If getKey(2)
:sub(COG)
:ClrDraw
:End
:
:If getKey(3)
:sub(COD)
:ClrDraw
:End
:
:If getKey(1)
:sub(COB)
:ClrDraw
:End
:
:If getKey(4)
:sub(COH)
:ClrDraw
:End
:
:sub(MAP)
:
:Pt-On(X,Y,E*8+Pic1)
:
:.On affiche 3 niveaux de gris ?
:DispGraphr
:
:End
:Goto Z
:
:Lbl MAP
:If M=1
:For(A,0,11)
:Pt-On(A*8,0,Pic2)
:If (A≠4) and (A≠5)
:Pt-On(A*8,56,Pic2)
:End
:End
:For(A,1,7)
:Pt-On(0,A*8,Pic2)
:Pt-On(88,A*8,Pic2)
:End
:End
:Return
:
:.Déplacement à gauche ?
:Lbl COG
:0→B
:For(A,0,7)
:!If Pxl-Test(X-1,Y+A)
:B+1→B
:If B=8
:X-1→X
:End
:End
:End
:Return
:
:.Déplacement à droite ?
:Lbl COD
:0→B
:For(A,0,7)
:!If Pxl-Test(X+9,Y+A)
:B+1→B
:If B=8
:X+1→X
:End
:End
:End
:Return
:
:.Déplacement en bas ?
:Lbl COB
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y+9)
:B+1→B
:If B=8
:Y+1→Y
:End
:End
:End
:Return
:
:.Déplacement en haut ?
:Lbl COH
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y-1)
:B+1→B
:If B=8
:Y-1→Y
:End
:End
:End
:Return
:
:.La fin du programme
:Lbl Z
:ClrDraw
:ClrDrawr
:DispGraph
:.Pourquoi DispGraph ici ?
:.PERSO
:
:.DATA
:[{sprite du perso}]→Pic1
:[{sprite du mur}]→Pic2
:
:Lbl A
:.M=1, Y=32, X=47
:1→M+31→Y+15→X
:
:.Boucle principale
:Repeat getKey(15)
:If getKey(2)
:sub(COG)
:sub(CLR)
:ElseIf getKey(3)
:sub(COD)
:sub(CLR)
:ElseIf getKey(1)
:sub(COB)
:sub(CLR)
:ElseIf getKey(4)
:sub(COH)
:sub(CLR)
:End
:
:sub(MAP)
:
:Pt-On(X,Y,Pic1)
:.Tu n'a qu'une sprite perso, alors je ne comprend pas le "+(E*8)"
:
:DispGraph
:
:End
:.La fin du programme
:ClrDraw
:Return
:
:Lbl CLR
:ClrDraw
:Return
:
:Lbl MAP
:If M=1
:For(A,0,11)
:Pt-On(A*8,0,Pic2)
:If (A≠4) and (A≠5)
:Pt-On(A*8,56,Pic2)
:End
:End
:For(A,1,7)
:Pt-On(0,A*8,Pic2)
:Pt-On(88,A*8,Pic2)
:End
:End
:Return
:
:.Déplacement à gauche ?
:Lbl COG
:sub(CO,X,-1,A,-1)
:Return
:
:.Déplacement à droite ?
:Lbl COD
:sub(CO,X,9,A,1)
:Return
:
:.Déplacement en bas ?
:Lbl COB
:sub(CO,Y,A,9,1)
:Return
:
:.Déplacement en haut ?
:Lbl COH
:sub(CO,Y,A,-1,-1)
:Return
:
:Lbl CO
:0→B
:For(A,0,7)
:!If Pxl-Test(X+r2,Y+r3)
:B+1→B
:If B=8
:r1+r4→r1
:End
:End
:End
:.PERSO
:
:.DATA
:[{sprite du perso}]→Pic1
:[{sprite du mur}]→Pic2
:
:Lbl A
:1→M→Y→X
:
:.Boucle principale
:Repeat getKey(15)
:(getKey(3) and (X<11))-(getKey(2) and (X>1))+X→X
:(getKey(4) and (Y<7)-(getKey(1) and (Y>1))+Y→Y
:sub(MAP)
:Pt-On(X*8,Y*8,Pic1)
:DispGraph
:End
:Return
:
:
:Lbl MAP
:ClrDraw
:For(A,0,11)
:sub(ON,A*8,0)
:sub(ON,A*8,56)
:End
:For(A,0,7)
:sub(ON,0,A*8)
:sub(ON,88,A*8)
:End
:End
:Return
:
:Lbl ON
:Pt-On(r1,r2,Pic2)
Ah je vois. Je vais surement aller m'inscrire là bas bientot, mais je ne sais pas si je serai super actif, à part dans les forums de projets et généraux, ayant abandonné la prog TI l'été passé et surtout avec l'approche des fêtes, je commence à avoir de la misère à trouver des trous dans la journée pour poster sur Omni tout en pouvant jouer à Starcraft :PJe te rassure tout de suite : il n'y a que 15 membres x).
:.PERSO
:
:.DATA
:[{sprite du perso}]→Pic1
:[{sprite du mur}]→Pic2
:
:Lbl A
:.M=1, Y=32, X=47, E=? /// E c'était pour dire si le perso était tourné gauche, droite, haut, bas. A la base il était à 0
:1→M+31→Y+15→X
:
:.Boucle principale
:Repeat getKey(15)
:If getKey(2)
:sub(COG)
:ClrDraw
:End
:
:If getKey(3)
:sub(COD)
:ClrDraw
:End
:
:If getKey(1)
:sub(COB)
:ClrDraw
:End
:
:If getKey(4)
:sub(COH)
:ClrDraw
:End
:
:sub(MAP)
:
:Pt-On(X,Y,E*8+Pic1)
:
:.On affiche 3 niveaux de gris ? //// Je mettais de l'herbe en gris dans le décor
:DispGraphr
:
:End
:Goto Z
:
:Lbl MAP
:If M=1
:For(A,0,11)
:Pt-On(A*8,0,Pic2)
:If (A≠4) and (A≠5)
:Pt-On(A*8,56,Pic2)
:End
:End
:For(A,1,7)
:Pt-On(0,A*8,Pic2)
:Pt-On(88,A*8,Pic2)
:End
:End
:Return
:
:.Déplacement à gauche ? /// oui
:Lbl COG
:0→B
:For(A,0,7)
:!If Pxl-Test(X-1,Y+A)
:B+1→B
:If B=8
:X-1→X
:End
:End
:End
:Return
:
:.Déplacement à droite ? /// oui
:Lbl COD
:0→B
:For(A,0,7)
:!If Pxl-Test(X+9,Y+A)
:B+1→B
:If B=8
:X+1→X
:End
:End
:End
:Return
:
:.Déplacement en bas ? /// oui
:Lbl COB
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y+9)
:B+1→B
:If B=8
:Y+1→Y
:End
:End
:End
:Return
:
:.Déplacement en haut ? ///oui
:Lbl COH
:0→B
:For(A,0,7)
:!If Pxl-Test(X+A,Y-1)
:B+1→B
:If B=8
:Y-1→Y
:End
:End
:End
:Return
:
:.La fin du programme
:Lbl Z
:ClrDraw
:ClrDrawr
:DispGraph
:.Pourquoi DispGraph ici ? /// parce que sinon ça donne l'impression que le programme lag lorsque j'archive l'appvar
:If getKey(20)
:8→I
:ElseIf getKey(28)
:7→I
:ElseIf getKey(36)
:6→I
:ElseIf getKey(19)
:5→I
:ElseIf getKey(27)
:4→I
:ElseIf getKey(35)
:3→I
:ElseIf getKey(18)
:2→I
:ElseIf getKey(26)
:1→I
:ElseIf getKey(34)
:0→I
:End
Je fais un nouveau projet, mais il faut que j'en parle à personne d'accord?Hm... antiphrase ?
Cool, c'était un projet ?Non: ça faisait parti de mon projet. ;D
GetCalc("vPLOP",X)
.X étant le nombre d'octets de l'appVar
.Et pas:
GetCalc("vPLOP")
Mais bon je te pardonne. ;DOUI! J'ai réussit à faire ma première appVar! ;DBravo! Ça paraît facile les appvars, mais en fait ça peut être très pénible. Je n'ai jamais compris pourquoi. Si jamais il y a un Axe 2.0 un jour, je crois que la syntaxe devrait être changé pour que ça soit plus facile.
Mais maintenant t'y arrive j'espère!(http://www.trudi.ch/smileys/fume_2.gif)OUI! J'ai réussit à faire ma première appVar! ;DBravo! Ça paraît facile les appvars, mais en fait ça peut être très pénible. Je n'ai jamais compris pourquoi. Si jamais il y a un Axe 2.0 un jour, je crois que la syntaxe devrait être changé pour que ça soit plus facile.
Ça faisait 9 ans que je programmais (en TI-BASIC) avant que Axe arrive et je n'ai jamais réussi à maîtriser les appvars parfaitement. À chaque fois je me retrouvais à demander de l'aide...
.SPRITE 1
[0000000000000000->Pic1
[FFFFFFFFFFFFFFFF
.MAP
[000000000000000000000000->GDB1
For(A,0,11
Pt-On(A*8,0,{A+GDB1}*8+Pic1
Pt-On(A*8,0,{A+GDB1}*8+8+Pic1
End
DispGraphr
[000000000000]->GDB0
[000000000000]
[000000000000]
[000000000000]
[000000000000]
[000000000000]
[FFFFFFFFFFFF]
[FFFFFFFFFFFF]
[0000000000000000]->Pic1
[FFFFFFFFFFFFFFFF]
sub(DS)
...
Lbl DS
ClrDraw
For(X,0,11)
For(Y,0,7)
Pt-On(X*8,Y*8,{X+GBD0}*8+Pic1
End
DispGraph
C'est ça?
Pt-On(X*8,Y*8,{Y*12+X+GDB1}*8+Pic1
dans le pointeur.Pour mettre du gris dans ma tilemap, dois-je faire ceci ?Code: [Select].SPRITE 1
[0000000000000000->Pic1
[FFFFFFFFFFFFFFFF
.MAP
[000000000000000000000000->GDB1
For(A,0,11
Pt-On(A*8,0,{A+GDB1}*8+Pic1
Pt-On(A*8,0,{A+GDB1}*8+8+Pic1
End
DispGraphr
Pour mettre du gris dans ma tilemap, dois-je faire ceci ?Moi je créé 2 pointeurs :Code: [Select].SPRITE 1
[0000000000000000->Pic1
[FFFFFFFFFFFFFFFF
.MAP
[000000000000000000000000->GDB1
For(A,0,11
Pt-On(A*8,0,{A+GDB1}*8+Pic1
Pt-On(A*8,0,{A+GDB1}*8+8+Pic1
End
DispGraphr
.SPRITE 1
[0000000000000000=>Pic1
[5146546512386762
...
[FFFFFFFFFFFFFFFF=>Pic2
[A0A0A0A0A0A0A0A
...
.MAP
[000000000000000000000000->GDB1
For(A,0,11
Pt-On(A*8,0,{A+GDB1}*8+Pic1
Pt-On(A*8,0,{A+GDB1}*8+Pic2)r
End
DispGraphr
Le problème c'est que je ne sais pas ranger les [hex] de façon à avoir un bon tile... :(
Il n'y a pas le tile mapping... -_-'Le problème c'est que je ne sais pas ranger les [hex] de façon à avoir un bon tile... :(
Jette un coup d'oeil au tuto chapitre "Data 2/2" j'ai déjà commencé l'explication. Mais lit le chapitre Data 1/2 avant.
C'est très simple, lorsque tu créé tes sprites 8*8 en 4 niveaux de gris, tu mes dans le buffer ce qui va être en gris 75% et ce qui va être en noir. Tu met dans le back buffer ce qui va être en gris 25% et ce qui va être noir. Le reste sera blanc. Et il suffit de faire dispGraphrr.
Hm… tile = spriteBon. Il y a un petit malentendu...
PS : c'est dans la bêta du tuto !
Edit : http://www.siteduzero.com/tutoriel-3-352304-1-les-datas-2-2.html#ss_part_1
[0000000]->GDB0
[0000000]
...
[0000000]
[1234565789ABCDEF]->Pic1
...
Avec plus de 16 sprites différentes.
:If GetKey(1)
:0->E
:End
:If Getkey(2)
:1->E
:End
:If Getkey(3)
:2->E
:End
:If Getkey(4)
:3->E
:End
:getKey-1=>E
4-1->E //E=3
If getKey<5 and (getKey>0
getKey-1->E
End
...
C'est ce que je crois comprendre.
!If getKey-1=>E<5 and (E>0
0=>E
End
Par exemple.
If getKey-1=>F<5 and (F>0
F=>E
End
Par exemple.
:If getKey(2)
:.Si il y a un déplacement, alors on inverse A
:1-A=>A
:Pt-On(X,Y,A*8+Pic1
:.Quand A vaut 0, c'est le pied gauche en avant, et quand il vaut 1, c'est le pied droit en avant (par exemple)
:Else
:Pt-On(X,Y,Pic2
:.Les deux pieds collés
:End
Et maintenant, pour la gestion des pas du personnage: il faut que E fasse Getkey-1(1er Pas) Puis E fasse Getkey+3 s'il est inférieur à 4(2ème pas).
:.ESSAI
:[3828EEABAB81817E]→Pic1
:20→X→Y
:ClrDraw
:ClrHome
:Repeat getkey(15)
:X-((X=/=4) and getkey(2))+(getkey(3) and (X=/=84))→X
:Y-((Y=/=1) and getkey(4))+(getkey(1) and (Y=/=47))→X
:sub(CHG
:DispGraph
:sub(CHG
:End
:Lbl CHG
:Pt-Change(X,Y,Pic1
:Text(X-4,Y+9,"FUCK!"
COMPILING...
1st Pass: 100%
2nd Pass: 100%
Writing App...
628 Byt 76%
ERR: UNKNOWN ERR
Code 4535555
Est-ce que c'est une erreur déjà connue ? (ma version d'Axe parser n'est pas la dernière).:.ESSAI
:3→A
:ClrHome
:Output(0,0,A>Dec
:Pause 1000
------------------
| 3 |
| |
| |
| |
| |
------------------
.TBPOTW
...
sub(TBF)
...
Return
...
Lbl TBF
...
=>If ...
=>...
=>Return
=>End
=>...
=>Return
...
round(nombre à arrondir,nombre de chiffres après la virgule)
A moins que la fonction round( ne serve pas du tout à arrondir, car j'ai vu aussi que l'Axe ne prenait pas les virgules en compte...:
:line(1,1,16,1)
:line(1,1,1,4)
:line(1,4,16,4) // Normalement j'affiche ma barre avec deux sprites,
:line(16,1,16,4) // mais là c'est juste pour que vous voyiez à peu près comment elle est...
:
:.W est l'énergie
:round(W*(3/40),0)->V // Je met W sur 15 et je l'arrondis
:
:.Puis je représente l'énergie par une ligne de 2 pixels de hauteur
:line(2,2,V,2)
:line(2,3,V,3)
Oui je me balade souvent sur les forums anglais, mais c'est qu'il y en a beaucoup ;DAh ok je comprends. C'est vrai aussi qu'il y a beaucoup de sujets dans la section Axe. Lorsque la version 1.0 va sortir le forum d'Axe va probablement être divisé en section aide et section pour le projet d'Axe.
Je suis en train de lire les questions sur axe parser, mais je tombe souvent sur des réponses qui parlent d'une nouvelle fonction que je ne connais pas, alors il faut que je la cherche, puis je tombe en cours de route sur un nouveau problème, etc... :w00t:
Enfin bref, je progresse lentement, mais plus je connais de fonctions, plus j'avancerai vite dans mon apprentissage :)
J'espère en tout cas.Oui je me balade souvent sur les forums anglais, mais c'est qu'il y en a beaucoup ;DAh ok je comprends. C'est vrai aussi qu'il y a beaucoup de sujets dans la section Axe. Lorsque la version 1.0 va sortir le forum d'Axe va probablement être divisé en section aide et section pour le projet d'Axe.
Je suis en train de lire les questions sur axe parser, mais je tombe souvent sur des réponses qui parlent d'une nouvelle fonction que je ne connais pas, alors il faut que je la cherche, puis je tombe en cours de route sur un nouveau problème, etc... :w00t:
Enfin bref, je progresse lentement, mais plus je connais de fonctions, plus j'avancerai vite dans mon apprentissage :)
Oui je me balade souvent sur les forums anglais, mais c'est qu'il y en a beaucoup ;DAh ok je comprends. C'est vrai aussi qu'il y a beaucoup de sujets dans la section Axe. Lorsque la version 1.0 va sortir le forum d'Axe va probablement être divisé en section aide et section pour le projet d'Axe.
Je suis en train de lire les questions sur axe parser, mais je tombe souvent sur des réponses qui parlent d'une nouvelle fonction que je ne connais pas, alors il faut que je la cherche, puis je tombe en cours de route sur un nouveau problème, etc... :w00t:
Enfin bref, je progresse lentement, mais plus je connais de fonctions, plus j'avancerai vite dans mon apprentissage :)
La deuxième partie devrait mettre en ordre certaine chose, je suis en train de finaliser le TPn°2, et puis il me restera qu'une annexe, et une grande relecture à faire. ;)
Tu es génial Kindermoumoute ;DPas tout le temps je te rassure. ;D
:input=>A
:Disp A
A pointe sur une chaîne de token.
:input->Str1 (ou un autre pointeur bien sûr)
Sinon merci pour ta réponse rapide :)