Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Vorace - une autre adaptation depuis l'Hector | |
|
+4JL35 bignono lodchjo Jicehel 8 participants | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 8:38 | |
| En tout cas merci d'avoir cherché, Klaus. Je me doutais depuis ton dernier post qu'on aurait du mal à faire mieux. Il faut que je tente maintenant une autre approche, un scene2D et le laby en sprite ou en image et les monstres/joueur en sprites pour voir si ça scintille aussi. On s'est croisé Bignono, bonne idée, j'essaye | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 10:40 | |
| J'ai appliqué l'idée de Bignono, et il n'y a plus de scintillement ! - Code:
-
' Vorace version converti en Panoramic par Jean-Charles ' Version original en Basic pour l'Hector ecrit par Eddy DUTERTRE
Label Charge_Niveau, Boucle, Relance, Fin, Touche, Collision, Change_dir Label Test_dirM, relance2
Dim L,N,A,I,A$ : ' Compteur et variables diverses temporaires Dim M : ' Competeur de pastilles Dim Nb_Cases_ligne, Nb_Lignes : Nb_Cases_ligne = 32 : Nb_Lignes = 20 Dim X,Y : ' Coordonnées du joueur Dim X1,Y1,D1 : ' Ancienne position du joueur pour effacer Dim N_Monstres : N_Monstres = 3 : ' Le nombre de monstres actifs (max 3) Dim Xm(3),Ym(3),Vm : ' Coordonnées du monstre et vitesse de deplacement (+Vm est ganrd moins il va vite) Dim S : ' Direction du monstre Dim Depl : ' Deplace monstre si Depl = 1 Dim Etat(Nb_Lignes,Nb_Cases_ligne), traite Dim Pastilles(Nb_Lignes,Nb_Cases_ligne) Dim Temps, Score, touche_enfoncee, Pause, Blanc% Dim LF$, Message$ : LF$=CHR$(10) Dim taille_case : taille_case=22 : ' à régler entre 10 et 22 Dim n_joueur : ' numéro de picture de l'image actuelle du joueur
Height 0, (Nb_Lignes+13)*taille_case : Width 0, (Nb_Cases_ligne + 4)*taille_case : color 0,255,255,255 Picture 1 : Picture 2 : Hide 2: TOP 2, -2000: Height 2,160 : Width 2,80 : File_load 2,"Sprites_Vorace.bmp"
' créer les picture pour les pastilles Picture 1000 : hide 1000 : Height 1000,20 : Width 1000, 20 Image 3 2D_Target_Is 1000 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle 0.5*taille_case,0.5*taille_case,3 2D_image_copy 3,0,0,20,20 For N=1 to Nb_Lignes For I=1 to Nb_Cases_ligne Pastilles(N,I) = 1000+N*Nb_Cases_ligne+I A = Pastilles(N,I) Picture A : hide A : Height A,20 : Width A, 20 Top A,N*taille_case : left A,I*taille_case 2D_Target_Is A : 2D_Image_Paste 3,0,0 Next I Next N 2D_Target_Is 1 For I = 1 to N_Monstres+1 Picture 20 + I : Height 20 + I, 20 : Width 20+ I, 20 Image 3+I: Top 3+I, -2000 : Hide 3+I Next I ' créer les picture pour le joueur ' regarde à gauche Picture 51 : Hide 51 : Height 51, 20 : Width 51, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,0,0,20,20 2D_Target_Is 51 : 2D_IMAGE_PASTE 3,0,0 ' regarde à droite Picture 52 : Hide 52 : Height 52, 20 : Width 52, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,20,0,40,20 2D_Target_Is 52 : 2D_IMAGE_PASTE 3,0,0 ' regarde à haut Picture 53 : Hide 53 : Height 53, 20 : Width 53, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,60,0,80,20 2D_Target_Is 53 : 2D_IMAGE_PASTE 3,0,0 ' regarde à bas Picture 54 : Hide 54 : Height 54, 20 : Width 54, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,40,0,60,20 2D_Target_Is 54 : 2D_IMAGE_PASTE 3,0,0 n_joueur = 51 : ' au début: à gauche
Blanc% = 4+N_Monstres
DATA 11111111111111111111111111111111 : ' L1 : DATA 10100000010000011000000100000001 : ' L2 DATA 10101111010111110010101110111111 : ' L3 DATA 10001000000100010010100010100001 DATA 11110000000111000110001010100101 DATA 10000111010101111100001010110101 DATA 10111100010000110001111010100101 DATA 10000101111110000111100010101101 DATA 11110100010011111101001010101001 DATA 10000111010110010001011010101011 DATA 10111100010000000001001000000011 DATA 10000101111111110111111111011111 DATA 11110100011000110000000001010001 DATA 10000111000010000111111111010001 DATA 10111111111111111111011111010001 DATA 10000000000000000000000000010001 DATA 10100000010000011000000100000001 DATA 10101111010111110010101110111111 DATA 10001000000100000010100010000001 DATA 11111111111111111111111111111111 : ' L20
Timer 10: Timer_interval 10,80 : Timer_off 10 : On_Timer 10, Boucle Gosub Charge_Niveau Score = 0
Relance2:
X1=0: Y1=0 : X = 2: Y=2: D1=0 : VM=3 : ' Position intiale du joueur Xm(1) = 12 : Ym(1)= 6 : ' Positions initiales des Voraces Xm(2) = 22 : Ym(2)= 4 : Xm(3) = 7 : Ym(3) = 13 Depl = 0 : S=1 : N=0 : traite = 0 n_joueur = 51 2D_Target_is 1 2D_IMAGE_COPY Blanc%,0,0,19,19
If VM < N_Monstres Then VM = N_Monstres
on_key_down 0,touche timer_on 10 End
Relance: hide n_joueur M = 0 Hide 1 : 2D_Target_is 1 : font_color 1,100,255,100 Height 1, (Nb_Lignes+9)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes For N = 1 TO Nb_Cases_ligne If Etat(L,N)<>2 If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle (N+0.5)*taille_case,(L+0.5)*taille_case,3 Etat(L,N)=1 : M = M+1 End_If End_If Next N Next L Show 1 2D_Pen_Color 255,255,255 : 2D_Fill_Color 255,255,255 goto relance2 return
Change_dir: FOR DEPL = 1000 TO 1 STEP -1 S= INT(RND(4))+1 Gosub Test_dirM NEXT DEPL return
Test_dirM:
2D_Target_is 2 IF S=1 and XM(A) < Nb_Cases_ligne-2 IF Etat(YM(A),XM(A)+1)<2 Then XM(A)=XM(A)+1: 2D_IMAGE_COPY 3+A,21,19*A+1,40,19*(A+1)+1:DEPL=1 END_IF IF S=2 and YM(A) < Nb_lignes-2 IF Etat(YM(A)+1,XM(A))<2 Then YM(A)=YM(A)+1: 2D_IMAGE_COPY 3+A,41,19*A+1,60,19*(A+1)+1:DEPL=1 END_IF IF S=3 and XM(A) > 2 IF Etat(YM(A),XM(A)-1)<2 Then XM(A)=XM(A)-1: 2D_IMAGE_COPY 3+A, 1,19*A+1,20,19*(A+1)+1:DEPL=1 END_IF IF S=4 and YM(A) > 2 IF Etat(YM(A)-1,XM(A))<2 Then YM(A)=YM(A)-1: 2D_IMAGE_COPY 3+A,61,19*A+1,80,19*(A+1)+1:DEPL=1 END_IF 2D_Target_is 20+A 2D_Image_Paste 3+A,0,0 2D_Target_is 1 Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case : ' Affiche le joueur show n_joueur Return
Boucle: If pause = 1 then return timer_off 10 If D1= 1 D1=0 ' méthode d'origine: coller un carré blanc ' 2D_image_paste Blanc%,X1*taille_case,Y1*taille_case ' première méthode alternative: dessiner un rectangle blanc ' 2D_rectangle X1*taille_case,Y1*taille_case,(X1+1)*taille_case,(Y1+1)*taille_case ' seconde méthode alternative: dessiner un cercle blanc ' 2D_Circle (X1+0.5)*taille_case,(Y1+0.5)*taille_case,3 ' ma s CHACUNE de ces 3 méthodes provoquent le scintillement ! Dommage... ' troisième méthode: cacher le picture de la pastille hide pastilles(Y1,X1) Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case : ' Affiche le joueur show n_joueur End_If
N = N+1 : A = N IF A <= N_Monstres L = RND(10) If L > 6 gosub Change_dir Else gosub Test_dirM if depl=0 Then gosub Change_dir End_If Top 20+A,Ym(A)*taille_case : Left 20+A,Xm(A)*taille_case : Depl=0 : ' Affiche le monstre End_If
IF N= VM THEN N=0
For I=1 To N_Monstres : If X=XM(I) and Y=YM(I) then gosub Collision : Next I If M = 0 Then Message "Niveau vidé, appuyez pour en faire un autre...": goto relance traite = 0 timer_on 10 Return
Touche: if traite = 0 traite = 1 touche_enfoncee = key_down_code If touche_enfoncee = 37 ' Gauche If X > 2 ' If Etat(Y,X-1)<2 Then X1=X : Y1=Y : D1=1 : X=X-1 : 2D_IMAGE_COPY 3,0,0,20,20 If Etat(Y,X-1)<2 Then X1=X : Y1=Y : D1=1 : X=X-1 : hide n_joueur : n_joueur = 51 End_If End_If
If touche_enfoncee = 39 ' Droite If X < (Nb_Cases_ligne-1) ' If Etat(Y,X+1)<2 Then X1=X : Y1=Y : D1=1 : X=X+1: 2D_IMAGE_COPY 3,20,0,40,20 If Etat(Y,X+1)<2 Then X1=X : Y1=Y : D1=1 : X=X+1: hide n_joueur : n_joueur = 52 End_If End_If
If touche_enfoncee = 38 ' Haut If Y > 2 ' If Etat(Y-1,X)<2 Then X1=X : Y1=Y : D1=1 : Y=Y-1: 2D_IMAGE_COPY 3,60,0,80,20 If Etat(Y-1,X)<2 Then X1=X : Y1=Y : D1=1 : Y=Y-1: hide n_joueur : n_joueur = 53 End_If End_If
If touche_enfoncee = 40 ' Bas If Y < (Nb_lignes-1) ' If Etat(Y+1,X)<2 Then X1=X : Y1=Y : D1=1 : Y=Y+1: 2D_IMAGE_COPY 3,40,0,60,20 If Etat(Y+1,X)<2 Then X1=X : Y1=Y : D1=1 : Y=Y+1: hide n_joueur : n_joueur = 54 End_If End_If
If touche_enfoncee = 88 or touche_enfoncee = 27 Then goto FIN
If touche_enfoncee = 80 If Pause = 0 then Pause = 1 :else: Pause = 0 End_if
For I = 1 TO N_Monstres If X=XM(I) and Y=YM(I) then gosub Collision Next I
If Etat(Y,X) = 1 Then Score=Score +10 : Etat(Y,X) = 0 : M=M-1 : Caption 13, "Score : " + RIGHT$("00000"+STR$(Score),5) end_if Return
Collision: Goto fin Return
Charge_Niveau: M = 0 Hide 1 : 2D_Target_is 1 : font_color 1,100,255,100 Height 1, (Nb_Lignes+8)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes Read A$ For N = 1 TO Nb_Cases_ligne If Mid$(A$,N,1)="1" 2D_Pen_Color 200,200,0 : 2D_Fill_Color 200,200,0 2D_Rectangle N*taille_case+1,L*taille_case+1,(N+1)*taille_case-1, (L+1)*taille_case-1 Etat(L,N)=2 Else If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else ' 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 ' 2D_Circle (N+0.5)*taille_case,(L+0.5)*taille_case,3 Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L 2D_Fill_color 255,255,255 : 2D_Pen_Color 255,0,0 2D_Rectangle taille_case, (Nb_Lignes+2)*taille_case, (Nb_Cases_ligne+2)*taille_case- taille_case, (Nb_Lignes+8)*taille_case Alpha 11 : Left 11,21*taille_case : Top 11, (Nb_Lignes+3)*taille_case : font_name 11, "Courier" Caption 11, "Temps : 00000" Alpha 12 : Left 12, 6*(taille_case - 7) : Top 12, (Nb_Lignes+5.5)*taille_case : font_bold 12 font_name 12, "Courier" : Height 12, taille_case+3: Font_size 12,taille_case : Font_color 12,200,200,0 Caption 12, "- VORACE - (Version Panoramique)" Alpha 13 : Left 13,3*taille_case : Top 13, (Nb_Lignes+3)*taille_case : font_name 13, "Courier" Caption 13, "Score : 00000" Show 1 2D_Pen_Color 255,255,255 : 2D_Fill_Color 255,255,255 Return
Fin: timer_off 10 Message$ = "*********************" +LF$+ "* Partie terminée *" +LF$+ "*********************" Message$ = Message$ +LF$ + LF$ + "Score: "+ STR$ (Score) Message$ = Message$ +LF$ + LF$ + "Rejouer ?" if Message_confirmation_yes_no (Message$) = 1 then Score = 0 : goto Relance terminate Petite info: pour un objet IMAGE, tu n'as pas besoin de faire HIDE, TOP, LEFT, HEIGHT ni WIDTH: c'est un objet invisible avec une taille nativement variable en fonction de ce qu'on colle dedans. Donc, la commande IMAGE seule suffit pour créer cet objet. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 12:44 | |
| L'alliance de Bignono et de Klaus, ça le fait !! ^^ Merci à vous tous, c'est en effet fluide et sans clignotement et ça me donne une trame pour les jeux 2D. Pour ce type de jeux, je pense en effet que les picture sont plus pratique que les sprites comme les sprites ne peuvent être appliqués qu'à la scene2D sur laquelle beaucoup de traitement ne peuvent pas s'appliquer. Pour ne pas non plus vous laissez tout faire, j'ai encore simplifié puisque le X1,Y1 qui servait dans les versions antérieures devenait totalement inutile (et laissait une pastille bleue pendant quelques millisecondes après le départ du glouton). J'aime bien cette version, elle est jolie et sans scintillement. Ca montre que l'on peut faire des jeux avec Panoramic !! Prochaine étape que je me fixe: le niveau 1 du Pac-man classic et un editeur de niveaux tiré de l'éditeur de JL35 (Les "cases" sur le côté, on clique, on place sur la grille, quand c'est finit, presse papier => programme avec une etiquette dans les data qui correspond au niveau). En fait c'est un travail collaboratif ... ^^ Bon, le source du coup (sans le X1,Y1), ça donne ça: - Code:
-
' Vorace version converti en Panoramic par Jean-Charles ' Version original en Basic pour l'Hector ecrit par Eddy DUTERTRE
Label Charge_Niveau, Boucle, Relance, Fin, Touche, Collision, Change_dir Label Test_dirM, relance2
Dim L,N,A,I,A$ : ' Compteur et variables diverses temporaires Dim M : ' Competeur de pastilles Dim Nb_Cases_ligne, Nb_Lignes : Nb_Cases_ligne = 32 : Nb_Lignes = 20 Dim X,Y : ' Coordonnées du joueur Dim N_Monstres : N_Monstres = 3 : ' Le nombre de monstres actifs (max 3) Dim Xm(3),Ym(3),Vm : ' Coordonnées du monstre et vitesse de deplacement (+Vm est ganrd moins il va vite) Dim S : ' Direction du monstre Dim Depl : ' Deplace monstre si Depl = 1 Dim Etat(Nb_Lignes,Nb_Cases_ligne), traite Dim Pastilles(Nb_Lignes,Nb_Cases_ligne) Dim Temps, Score, touche_enfoncee, Pause Dim LF$, Message$ : LF$=CHR$(10) Dim taille_case : taille_case=22 : ' Taille fixe désormais par ce que c'est plus simple Dim n_joueur : ' numéro de picture de l'image actuelle du joueur
Height 0, (Nb_Lignes+13)*taille_case : Width 0, (Nb_Cases_ligne + 4)*taille_case : color 0,255,255,255 Picture 1 : Picture 2 : Hide 2: TOP 2, -2000: Height 2,160 : Width 2,80 : File_load 2,"Sprites_Vorace.bmp"
' créer les picture pour les pastilles Picture 1000 : hide 1000 : Height 1000,20 : Width 1000, 20 Image 3 2D_Target_Is 1000 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle 0.5*taille_case,0.5*taille_case,3 2D_image_copy 3,0,0,20,20 For N=1 to Nb_Lignes : For I=1 to Nb_Cases_ligne Pastilles(N,I) = 1000+N*Nb_Cases_ligne+I A = Pastilles(N,I) : Picture A : hide A Height A,20 : Width A,20 : Top A,N*taille_case : left A,I*taille_case : 2D_Target_Is A : 2D_Image_Paste 3,0,0 Next I : Next N 2D_Target_Is 1 For I = 1 to N_Monstres+1 Picture 20 + I : Height 20 + I, 20 : Width 20+ I, 20 Image 3+I: Top 3+I, -2000 : Hide 3+I Next I ' créer les picture pour le joueur ' regarde à gauche Picture 51 : Hide 51 : Height 51, 20 : Width 51, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,0,0,20,20 : 2D_Target_Is 51 : 2D_IMAGE_PASTE 3,0,0 ' regarde à droite Picture 52 : Hide 52 : Height 52, 20 : Width 52, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,20,0,40,20 : 2D_Target_Is 52 : 2D_IMAGE_PASTE 3,0,0 ' regarde à haut Picture 53 : Hide 53 : Height 53, 20 : Width 53, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,60,0,80,20 : 2D_Target_Is 53 : 2D_IMAGE_PASTE 3,0,0 ' regarde à bas Picture 54 : Hide 54 : Height 54, 20 : Width 54, 20 2D_Target_Is 2 : 2D_IMAGE_COPY 3,40,0,60,20 : 2D_Target_Is 54 : 2D_IMAGE_PASTE 3,0,0
DATA 11111111111111111111111111111111 : ' L1 : DATA 10100000010000011000000100000001 : ' L2 DATA 10101111010111110010101110111111 : ' L3 DATA 10001000000100010010100010100001 DATA 11110000000111000110001010100101 DATA 10000111010101111100001010110101 DATA 10111100010000110001111010100101 DATA 10000101111110000111100010101101 DATA 11110100010011111101001010101001 DATA 10000111010110010001011010101011 DATA 10111100010000000001001000000011 DATA 10000101111111110111111111011111 DATA 11110100011000110000000001010001 DATA 10000111000010000111111111010001 DATA 10111111111111111111011111010001 DATA 10000000000000000000000000010001 DATA 10100000010000011000000100000001 DATA 10101111010111110010101110111111 DATA 10001000000100000010100010000001 DATA 11111111111111111111111111111111 : ' L20
Timer 10: Timer_interval 10,80 : Timer_off 10 : On_Timer 10, Boucle Gosub Charge_Niveau Score = 0
Relance2:
X = 2: Y=2 : VM=3 : ' Position intiale du joueur Xm(1) = 12 : Ym(1)= 6 : ' Positions initiales des Voraces Xm(2) = 22 : Ym(2)= 4 : Xm(3) = 7 : Ym(3) = 13 Depl = 0 : S=1 : N=0 : traite = 0
If VM < N_Monstres Then VM = N_Monstres n_joueur = 51 : Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case show n_joueur : ' Affiche le joueur
on_key_down 0,touche timer_on 10 End
Relance: hide n_joueur M = 0 Hide 1 : 2D_Target_is 1 Height 1, (Nb_Lignes+9)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes For N = 1 TO Nb_Cases_ligne If Etat(L,N)<>2 If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L Show 1 2D_Pen_Color 255,255,255 : 2D_Fill_Color 255,255,255 goto relance2 return
Change_dir: FOR DEPL = 1000 TO 1 STEP -1 S= INT(RND(4))+1 Gosub Test_dirM NEXT DEPL return
Test_dirM:
2D_Target_is 2 IF S=1 and XM(A) < Nb_Cases_ligne-2 Then IF Etat(YM(A),XM(A)+1)<2 Then XM(A)=XM(A)+1: 2D_IMAGE_COPY 3+A,21,19*A+1,40,19*(A+1)+1:DEPL=1 IF S=2 and YM(A) < Nb_lignes-2 Then IF Etat(YM(A)+1,XM(A))<2 Then YM(A)=YM(A)+1: 2D_IMAGE_COPY 3+A,41,19*A+1,60,19*(A+1)+1:DEPL=1 IF S=3 and XM(A) > 2 Then IF Etat(YM(A),XM(A)-1)<2 Then XM(A)=XM(A)-1: 2D_IMAGE_COPY 3+A, 1,19*A+1,20,19*(A+1)+1:DEPL=1 IF S=4 and YM(A) > 2 Then IF Etat(YM(A)-1,XM(A))<2 Then YM(A)=YM(A)-1: 2D_IMAGE_COPY 3+A,61,19*A+1,80,19*(A+1)+1:DEPL=1 2D_Target_is 20+A : 2D_Image_Paste 3+A,0,0 : 2D_Target_is 1 Return
Boucle: If pause = 1 then return timer_off 10 N = N+1 : A = N IF A <= N_Monstres L = RND(10) If L > 6 gosub Change_dir Else gosub Test_dirM if depl=0 Then gosub Change_dir End_If Top 20+A,Ym(A)*taille_case : Left 20+A,Xm(A)*taille_case : Depl=0 : ' Affiche le monstre End_If
IF N= VM THEN N=0
For I=1 To N_Monstres : If X=XM(I) and Y=YM(I) then gosub Collision : Next I If M = 0 Then Message "Niveau vidé, appuyez pour en faire un autre...": goto relance traite = 0 : timer_on 10 Return
Touche: if traite = 0 traite = 1 : touche_enfoncee = key_down_code ' Gauche If touche_enfoncee = 37 Then If X > 2 Then If Etat(Y,X-1)<2 Then X=X-1 : hide n_joueur : n_joueur = 51 ' Droite If touche_enfoncee = 39 Then If X < (Nb_Cases_ligne-1) Then If Etat(Y,X+1)<2 Then X=X+1: hide n_joueur : n_joueur = 52 ' Haut If touche_enfoncee = 38 Then If Y > 2 Then If Etat(Y-1,X)<2 Then Y=Y-1: hide n_joueur : n_joueur = 53 ' Bas If touche_enfoncee = 40 Then If Y < (Nb_lignes-1) Then If Etat(Y+1,X)<2 Then Y=Y+1: hide n_joueur : n_joueur = 54 ' Q ou Echap pour quitter If touche_enfoncee = 88 or touche_enfoncee = 27 Then goto FIN ' P pour Pause If touche_enfoncee = 80 Then If Pause = 0 then Pause = 1 :else: Pause = 0
For I = 1 TO N_Monstres If X=XM(I) and Y=YM(I) then gosub Collision Next I
If Etat(Y,X) = 1 Then Score=Score +10 : Etat(Y,X) = 0 : M=M-1 : Caption 13, "Score : " + RIGHT$("00000"+STR$(Score),5) Hide pastilles(Y,X) Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case : show n_joueur : ' Affiche le joueur End_if Return
Collision: Goto fin Return
Charge_Niveau: M = 0 Hide 1 : 2D_Target_is 1 : Height 1, (Nb_Lignes+8)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes Read A$ For N = 1 TO Nb_Cases_ligne If Mid$(A$,N,1)="1" 2D_Pen_Color 200,200,0 : 2D_Fill_Color 200,200,0 2D_Rectangle N*taille_case+1,L*taille_case+1,(N+1)*taille_case-1, (L+1)*taille_case-1 Etat(L,N)=2 Else If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L 2D_Fill_color 255,255,255 : 2D_Pen_Color 255,0,0 2D_Rectangle taille_case, (Nb_Lignes+2)*taille_case, (Nb_Cases_ligne+2)*taille_case- taille_case, (Nb_Lignes+8)*taille_case Alpha 12 : Left 12, 60 : Top 12, (Nb_Lignes+5.5)*taille_case : font_bold 12 font_name 12, "Courier" : Height 12, taille_case+3: Font_size 12,taille_case - 5 : Font_color 12,200,200,0 Caption 12, "- VORACE - (Version Panoramic Version 0.9.23)" Alpha 13 : Left 13,60 : Top 13, (Nb_Lignes+3)*taille_case : font_name 13, "Courier": font_size 13,taille_case -5 Caption 13, "Score : 00000" Show 1 Return
Fin: timer_off 10 Message$ = "*********************" +LF$+ "* Partie terminée *" +LF$+ "*********************" Message$ = Message$ +LF$ + LF$ + "Score: "+ STR$ (Score) Message$ = Message$ +LF$ + LF$ + "Rejouer ?" if Message_confirmation_yes_no (Message$) = 1 then Score = 0 : goto Relance terminate | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 15:06 | |
| Code relu avant d'aller emmener ma fille à la danse. J'ai retiré aussi le système de validation du déplacement (variable D1 supprimée) qui n'a plus de sens dans cette version. J'ai mis à jour le code dans le post précédent. Encore merci Bignono et Klaus, j'aime vraiment bien le résultat ^^ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 16:58 | |
| Bizarre chez moi je ne vois que le joueur, les monstres sont invisibles, alors quant il n'y a presque plus de pastilles à manger, je bouge au pifomètre. Après recherche, je me suis rendu compte que j'avais une image trop petite. Je l'ai agrandi mais surprise elle s'est coupé en 4 pour servir au joueur et au 3 monstres. Si tu pouvais nous fournir l'image que tu as pris. Sinon, résultat impécable, plus de scintillement. C'est beau la collaboration (surtout la mienne ) A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 17:11 | |
| Pour moi, aucun problème, c'est tout à fait satisfaisant, surtout pour ces saletés de monstres.
Cela dit, beau jeu, bien jouable, impeccable. En peu de lignes finalement, même si c'est du concentré.
Tu ne pourrais pas nous faire une version sans les monstres, c'est agaçant à la fin ! du genre 'le Vorace pour les nuls'. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 17:39 | |
| Je viens de re_parcourir le sujet, ce qui m'a permis de voir que l'image est fournie à la première page. C'est beaucoup mieux, le vorace tourne la tête du coté ou il se dirige. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 18:02 | |
| du moment qu'il regarde dans ta direction... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 18:35 | |
| T'inquiète JL35, dès qu'il aura gouté une fois il n'y reviendra pas J'ai voulu y apporter mon grain de sel, alors je vous l'ai fait sur un fond noir (je suis le noircisseur officiel de Panoramic ) et je l'ai agrandi (taille_case=31), mais pour que ce soit beau il a fallu que je modifie l'image. Je suis assez content du résultat (transformé en application çà donne bien) Voici les 2: - Code:
-
' Version original en Basic pour l'Hector ecrit par Eddy DUTERTRE
Label Charge_Niveau, Boucle, Relance, Fin, Touche, Collision, Change_dir Label Test_dirM, relance2
Dim L,N,A,I,A$ : ' Compteur et variables diverses temporaires Dim M : ' Competeur de pastilles Dim Nb_Cases_ligne, Nb_Lignes : Nb_Cases_ligne = 32 : Nb_Lignes = 20 Dim X,Y : ' Coordonnées du joueur Dim N_Monstres : N_Monstres = 3 : ' Le nombre de monstres actifs (max 3) Dim Xm(3),Ym(3),Vm : ' Coordonnées du monstre et vitesse de deplacement (+Vm est ganrd moins il va vite) Dim S : ' Direction du monstre Dim Depl : ' Deplace monstre si Depl = 1 Dim Etat(Nb_Lignes,Nb_Cases_ligne), traite Dim Pastilles(Nb_Lignes,Nb_Cases_ligne) Dim Temps, Score, touche_enfoncee, Pause Dim LF$, Message$ : LF$=CHR$(10) Dim taille_case : taille_case=31 : ' Taille Dim n_joueur : ' numéro de picture de l'image actuelle du joueur
Height 0, (Nb_Lignes+13)*taille_case : Width 0, (Nb_Cases_ligne + 4)*taille_case : color 0,0,0,0 Picture 1 : Picture 2 : Hide 2: TOP 2, -2000: Height 2,160 : Width 2,80 : File_load 2,"spritesvoracenoir.bmp" width 1,taille_case*34:height 1,taille_case*30: color 1,0,0,0 ' créer les picture pour les pastilles Picture 1000 : hide 1000 : Height 1000,20 : Width 1000, 20 color 1000,0,0,0 Image 3 2D_Target_Is 1000 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle 0.5*taille_case,0.5*taille_case,3 2D_image_copy 3,0,0,20,20 For N=1 to Nb_Lignes : For I=1 to Nb_Cases_ligne Pastilles(N,I) = 1000+N*Nb_Cases_ligne+I A = Pastilles(N,I) : Picture A : hide A Height A,20 : Width A,20 : Top A,N*taille_case : left A,I*taille_case : 2D_Target_Is A : 2D_Image_Paste 3,0,0 Next I : Next N 2D_Target_Is 1 For I = 1 to N_Monstres+1 Picture 20 + I : Height 20 + I, 20 : Width 20+ I, 20:color 20+I,0,0,0 Image 3+I: Top 3+I, -2000 : Hide 3+I Next I ' créer les picture pour le joueur ' regarde à gauche Picture 51 : Hide 51 : Height 51, 20 : Width 51, 20:color 51,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,0,0,20,20 : 2D_Target_Is 51 : 2D_IMAGE_PASTE 3,0,0 ' regarde à droite Picture 52 : Hide 52 : Height 52, 20 : Width 52, 20:color 52,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,20,0,40,20 : 2D_Target_Is 52 : 2D_IMAGE_PASTE 3,0,0 ' regarde à haut Picture 53 : Hide 53 : Height 53, 20 : Width 53, 20:color 53,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,60,0,80,20 : 2D_Target_Is 53 : 2D_IMAGE_PASTE 3,0,0 ' regarde à bas Picture 54 : Hide 54 : Height 54, 20 : Width 54, 20:color 54,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,40,0,60,20 : 2D_Target_Is 54 : 2D_IMAGE_PASTE 3,0,0
DATA 11111111111111111111111111111111 : ' L1 : DATA 10100000010000011000000100000001 : ' L2 DATA 10101111010111110010101110111111 : ' L3 DATA 10001000000100010010100010100001 DATA 11110000000111000110001010100101 DATA 10000111010101111100001010110101 DATA 10111100010000110001111010100101 DATA 10000101111110000111100010101101 DATA 11110100010011111101001010101001 DATA 10000111010110010001011010101011 DATA 10111100010000000001001000000011 DATA 10000101111111110111111111011111 DATA 11110100011000110000000001010001 DATA 10000111000010000111111111010001 DATA 10111111111111111111011111010001 DATA 10000000000000000000000000010001 DATA 10100000010000011000000100000001 DATA 10101111010111110010101110111111 DATA 10001000000100000010100010000001 DATA 11111111111111111111111111111111 : ' L20
Timer 10: Timer_interval 10,80 : Timer_off 10 : On_Timer 10, Boucle Gosub Charge_Niveau Score = 0
Relance2:
X = 2: Y=2 : VM=3 : ' Position intiale du joueur Xm(1) = 12 : Ym(1)= 6 : ' Positions initiales des Voraces Xm(2) = 22 : Ym(2)= 4 : Xm(3) = 7 : Ym(3) = 13 Depl = 0 : S=1 : N=0 : traite = 0
If VM < N_Monstres Then VM = N_Monstres n_joueur = 51 : Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case show n_joueur : ' Affiche le joueur
on_key_down 0,touche timer_on 10 End
Relance: hide n_joueur M = 0 Hide 1 : 2D_Target_is 1 Height 1, (Nb_Lignes+9)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes For N = 1 TO Nb_Cases_ligne If Etat(L,N)<>2 If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L Show 1 2D_Pen_Color 255,255,255 : 2D_Fill_Color 0,0,0 goto relance2 return
Change_dir: FOR DEPL = 1000 TO 1 STEP -1 S= INT(RND(4))+1 Gosub Test_dirM NEXT DEPL return
Test_dirM:
2D_Target_is 2 IF S=1 and XM(A) < Nb_Cases_ligne-2 Then IF Etat(YM(A),XM(A)+1)<2 Then XM(A)=XM(A)+1: 2D_IMAGE_COPY 3+A,21,19*A+1,40,19*(A+1)+1:DEPL=1 IF S=2 and YM(A) < Nb_lignes-2 Then IF Etat(YM(A)+1,XM(A))<2 Then YM(A)=YM(A)+1: 2D_IMAGE_COPY 3+A,41,19*A+1,60,19*(A+1)+1:DEPL=1 IF S=3 and XM(A) > 2 Then IF Etat(YM(A),XM(A)-1)<2 Then XM(A)=XM(A)-1: 2D_IMAGE_COPY 3+A, 1,19*A+1,20,19*(A+1)+1:DEPL=1 IF S=4 and YM(A) > 2 Then IF Etat(YM(A)-1,XM(A))<2 Then YM(A)=YM(A)-1: 2D_IMAGE_COPY 3+A,61,19*A+1,80,19*(A+1)+1:DEPL=1 2D_Target_is 20+A : 2D_Image_Paste 3+A,0,0 : 2D_Target_is 1 Return
Boucle: If pause = 1 then return timer_off 10 N = N+1 : A = N IF A <= N_Monstres L = RND(10) If L > 6 gosub Change_dir Else gosub Test_dirM if depl=0 Then gosub Change_dir End_If Top 20+A,Ym(A)*taille_case : Left 20+A,Xm(A)*taille_case : Depl=0 :' Affiche le monstre End_If
IF N= VM THEN N=0
For I=1 To N_Monstres : If X=XM(I) and Y=YM(I) then gosub Collision : Next I If M = 0 Then Message "Niveau vidé, appuyez pour en faire un autre...": goto relance traite = 0 : timer_on 10 Return
Touche: if traite = 0 traite = 1 : touche_enfoncee = key_down_code ' Gauche If touche_enfoncee = 37 Then If X > 2 Then If Etat(Y,X-1)<2 Then X=X-1 : hide n_joueur : n_joueur = 51 ' Droite If touche_enfoncee = 39 Then If X < (Nb_Cases_ligne-1) Then If Etat(Y,X+1)<2 Then X=X+1: hide n_joueur : n_joueur = 52 ' Haut If touche_enfoncee = 38 Then If Y > 2 Then If Etat(Y-1,X)<2 Then Y=Y-1: hide n_joueur : n_joueur = 53 ' Bas If touche_enfoncee = 40 Then If Y < (Nb_lignes-1) Then If Etat(Y+1,X)<2 Then Y=Y+1: hide n_joueur : n_joueur = 54 ' Q ou Echap pour quitter If touche_enfoncee = 88 or touche_enfoncee = 27 Then goto FIN ' P pour Pause If touche_enfoncee = 80 Then If Pause = 0 then Pause = 1 :else: Pause = 0
For I = 1 TO N_Monstres If X=XM(I) and Y=YM(I) then gosub Collision Next I
If Etat(Y,X) = 1 Then Score=Score +10 : Etat(Y,X) = 0 : M=M-1 : Caption 13, "Score : " + RIGHT$("00000"+STR$(Score),5) Hide pastilles(Y,X) Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case : show n_joueur : ' Affiche le joueur End_if Return
Collision: Goto fin Return
Charge_Niveau: M = 0 Hide 1 : 2D_Target_is 1 : Height 1, (Nb_Lignes+8)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes Read A$ For N = 1 TO Nb_Cases_ligne If Mid$(A$,N,1)="1" 2D_Pen_Color 200,200,0 : 2D_Fill_Color 0,0,0 2D_Rectangle N*taille_case+1,L*taille_case+1,(N+1)*taille_case-1, (L+1)*taille_case-1 Etat(L,N)=2 Else If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L 2D_Fill_color 0,0,0 : 2D_Pen_Color 255,0,0 2D_Rectangle taille_case, (Nb_Lignes+2)*taille_case, (Nb_Cases_ligne+2)*taille_case- taille_case, (Nb_Lignes+8)*taille_case Alpha 12 : Left 12, 60 : Top 12, (Nb_Lignes+5.5)*taille_case : font_bold 12 font_name 12, "Courier" : Height 12, taille_case+3: Font_size 12,taille_case - 5 : Font_color 12,200,200,0 Caption 12, "- VORACE - (Version Panoramic Version 0.9.23)" Alpha 13 : Left 13,60 : Top 13, (Nb_Lignes+3)*taille_case : font_name 13, "Courier": font_size 13,taille_case -5 Caption 13, "Score : 00000" Show 1 Return
Fin: timer_off 10 Message$ = "*********************" +LF$+ "* Partie terminée *" +LF$+ "*********************" Message$ = Message$ +LF$ + LF$ + "Score: "+ STR$ (Score) Message$ = Message$ +LF$ + LF$ + "Rejouer ?" if Message_confirmation_yes_no (Message$) = 1 then Score = 0 : goto Relance terminate
Vous pouvez récupérer l'image ici et la ré_enregistrer en BMP sous ce nom; "spritesvoracenoir.bmp" https://i.servimg.com/u/f40/17/20/61/90/sprite10.jpg | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Sam 17 Mar 2012 - 23:51 | |
| Mes amis viennent de partie et je ai testé ta version et j l'aime bien ta "black version", Jean-Claude J'ai dû faire quelques réajustement pour que ça tienne sur mon écran (et oui 768 de haut ...) et pour éviter le clignotement au démarrage sur fond noir ... J'ai changé aussi la couleur de la police du score que l'on ne voyait plus en noir sur noir. Ca donne ça en code: - Code:
-
' Version original en Basic pour l'Hector ecrit par Eddy DUTERTRE
Label Charge_Niveau, Boucle, Relance, Fin, Touche, Collision, Change_dir Label Test_dirM, relance2
Dim L,N,A,I,A$ : ' Compteur et variables diverses temporaires Dim M : ' Competeur de pastilles Dim Nb_Cases_ligne, Nb_Lignes : Nb_Cases_ligne = 32 : Nb_Lignes = 20 Dim X,Y : ' Coordonnées du joueur Dim N_Monstres : N_Monstres = 3 : ' Le nombre de monstres actifs (max 3) Dim Xm(3),Ym(3),Vm : ' Coordonnées du monstre et vitesse de deplacement (+Vm est ganrd moins il va vite) Dim S : ' Direction du monstre Dim Depl : ' Deplace monstre si Depl = 1 Dim Etat(Nb_Lignes,Nb_Cases_ligne), traite Dim Pastilles(Nb_Lignes,Nb_Cases_ligne) Dim Temps, Score, touche_enfoncee, Pause Dim LF$, Message$ : LF$=CHR$(10) Dim taille_case : taille_case=26 : ' Taille Dim n_joueur : ' numéro de picture de l'image actuelle du joueur
Height 0, (Nb_Lignes+8)*taille_case : Width 0, (Nb_Cases_ligne + 3)*taille_case : Hide 0 Picture 1 : Height 1, (Nb_Lignes+6.5)*taille_case : Width 1, (Nb_Cases_ligne+1.5)*taille_case : Color 1,0,0,0 Picture 2 : Hide 2: TOP 2, -2000: Height 2,160 : Width 2,80 : File_load 2,"spritesvoracenoir.bmp"
' créer les picture pour les pastilles Picture 1000 : hide 1000 : Height 1000,20 : Width 1000, 20 : Color 1000,0,0,0 Image 3 2D_Target_Is 1000 : 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle 0.5*taille_case,0.5*taille_case,3 : 2D_image_copy 3,0,0,20,20 For N=1 to Nb_Lignes : For I=1 to Nb_Cases_ligne Pastilles(N,I) = 1000+N*Nb_Cases_ligne+I A = Pastilles(N,I) : Picture A : hide A Height A,20 : Width A,20 : Top A,N*taille_case : left A,I*taille_case : 2D_Target_Is A : 2D_Image_Paste 3,0,0 Next I : Next N 2D_Target_Is 1 For I = 1 to N_Monstres+1 Picture 20 + I : Height 20 + I, 20 : Width 20+ I, 20:color 20+I,0,0,0 Image 3+I: Top 3+I, -2000 : Hide 3+I Next I ' créer les picture pour le joueur ' regarde à gauche Picture 51 : Hide 51 : Height 51, 20 : Width 51, 20:color 51,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,0,0,20,20 : 2D_Target_Is 51 : 2D_IMAGE_PASTE 3,0,0 ' regarde à droite Picture 52 : Hide 52 : Height 52, 20 : Width 52, 20:color 52,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,20,0,40,20 : 2D_Target_Is 52 : 2D_IMAGE_PASTE 3,0,0 ' regarde à haut Picture 53 : Hide 53 : Height 53, 20 : Width 53, 20:color 53,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,60,0,80,20 : 2D_Target_Is 53 : 2D_IMAGE_PASTE 3,0,0 ' regarde à bas Picture 54 : Hide 54 : Height 54, 20 : Width 54, 20:color 54,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,40,0,60,20 : 2D_Target_Is 54 : 2D_IMAGE_PASTE 3,0,0
DATA 11111111111111111111111111111111 : ' L1 : DATA 10100000010000011000000100000001 : ' L2 DATA 10101111010111110010101110111111 : ' L3 DATA 10001000000100010010100010100001 DATA 11110000000111000110001010100101 DATA 10000111010101111100001010110101 DATA 10111100010000110001111010100101 DATA 10000101111110000111100010101101 DATA 11110100010011111101001010101001 DATA 10000111010110010001011010101011 DATA 10111100010000000001001000000011 DATA 10000101111111110111111111011111 DATA 11110100011000110000000001010001 DATA 10000111000010000111111111010001 DATA 10111111111111111111011111010001 DATA 10000000000000000000000000010001 DATA 10100000010000011000000100000001 DATA 10101111010111110010101110111111 DATA 10001000000100000010100010000001 DATA 11111111111111111111111111111111 : ' L20
Timer 10: Timer_interval 10,80 : Timer_off 10 : On_Timer 10, Boucle color 0,0,0,0 Gosub Charge_Niveau Score = 0
Relance2:
X = 2: Y=2 : VM=3 : ' Position intiale du joueur Xm(1) = 12 : Ym(1)= 6 : ' Positions initiales des Voraces Xm(2) = 22 : Ym(2)= 4 : Xm(3) = 7 : Ym(3) = 13 Depl = 0 : S=1 : N=0 : traite = 0
If VM < N_Monstres Then VM = N_Monstres n_joueur = 51 : Top n_joueur,Y*taille_case+2: Left n_joueur,X*taille_case+2 show n_joueur : ' Affiche le joueur
on_key_down 0,touche timer_on 10 End
Relance: hide n_joueur M = 0 Hide 1 : 2D_Target_is 1 Height 1, (Nb_Lignes+6.5)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes For N = 1 TO Nb_Cases_ligne If Etat(L,N)<>2 If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L Show 1 goto relance2 return
Change_dir: FOR DEPL = 1000 TO 1 STEP -1 S= INT(RND(4))+1 Gosub Test_dirM NEXT DEPL return
Test_dirM:
2D_Target_is 2 IF S=1 and XM(A) < Nb_Cases_ligne-2 Then IF Etat(YM(A),XM(A)+1)<2 Then XM(A)=XM(A)+1: 2D_IMAGE_COPY 3+A,21,19*A+1,40,19*(A+1)+1:DEPL=1 IF S=2 and YM(A) < Nb_lignes-2 Then IF Etat(YM(A)+1,XM(A))<2 Then YM(A)=YM(A)+1: 2D_IMAGE_COPY 3+A,41,19*A+1,60,19*(A+1)+1:DEPL=1 IF S=3 and XM(A) > 2 Then IF Etat(YM(A),XM(A)-1)<2 Then XM(A)=XM(A)-1: 2D_IMAGE_COPY 3+A, 1,19*A+1,20,19*(A+1)+1:DEPL=1 IF S=4 and YM(A) > 2 Then IF Etat(YM(A)-1,XM(A))<2 Then YM(A)=YM(A)-1: 2D_IMAGE_COPY 3+A,61,19*A+1,80,19*(A+1)+1:DEPL=1 2D_Target_is 20+A : 2D_Image_Paste 3+A,0,0 : 2D_Target_is 1 Return
Boucle: If pause = 1 then return timer_off 10 N = N+1 : A = N IF A <= N_Monstres L = RND(10) If L > 6 gosub Change_dir Else gosub Test_dirM if depl=0 Then gosub Change_dir End_If Top 20+A,Ym(A)*taille_case+2 : Left 20+A,Xm(A)*taille_case+2 : Depl=0 :' Affiche le monstre End_If
IF N= VM THEN N=0
For I=1 To N_Monstres : If X=XM(I) and Y=YM(I) then gosub Collision : Next I If M = 0 Then Message "Niveau vidé, appuyez pour en faire un autre...": goto relance traite = 0 : timer_on 10 Return
Touche: if traite = 0 traite = 1 : touche_enfoncee = key_down_code ' Gauche If touche_enfoncee = 37 Then If X > 2 Then If Etat(Y,X-1)<2 Then X=X-1 : hide n_joueur : n_joueur = 51 ' Droite If touche_enfoncee = 39 Then If X < (Nb_Cases_ligne-1) Then If Etat(Y,X+1)<2 Then X=X+1: hide n_joueur : n_joueur = 52 ' Haut If touche_enfoncee = 38 Then If Y > 2 Then If Etat(Y-1,X)<2 Then Y=Y-1: hide n_joueur : n_joueur = 53 ' Bas If touche_enfoncee = 40 Then If Y < (Nb_lignes-1) Then If Etat(Y+1,X)<2 Then Y=Y+1: hide n_joueur : n_joueur = 54 ' Q ou Echap pour quitter If touche_enfoncee = 88 or touche_enfoncee = 27 Then goto FIN ' P pour Pause If touche_enfoncee = 80 Then If Pause = 0 then Pause = 1 :else: Pause = 0
For I = 1 TO N_Monstres If X=XM(I) and Y=YM(I) then gosub Collision Next I
If Etat(Y,X) = 1 Then Score=Score +10 : Etat(Y,X) = 0 : M=M-1 : Caption 13, "Score : " + RIGHT$("00000"+STR$(Score),5) Hide pastilles(Y,X) Top n_joueur,Y*taille_case+2 : Left n_joueur,X*taille_case+2 : show n_joueur : ' Affiche le joueur End_if Return
Collision: Goto fin Return
Charge_Niveau: M = 0 2D_Target_is 1 : Hide 1 For L = 1 TO Nb_Lignes Read A$ For N = 1 TO Nb_Cases_ligne If Mid$(A$,N,1)="1" 2D_Pen_Color 200,200,0 : 2D_Fill_Color 0,0,0 2D_Rectangle N*taille_case+1,L*taille_case+1,(N+1)*taille_case-1, (L+1)*taille_case-1 Etat(L,N)=2 Else If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L 2D_Fill_color 0,0,0 : 2D_Pen_Color 255,0,0 2D_Rectangle taille_case, (Nb_Lignes+2)*taille_case, (Nb_Cases_ligne+2)*taille_case- taille_case, (Nb_Lignes+6)*taille_case Alpha 12 : Left 12, 60 : Top 12, (Nb_Lignes+4.5)*taille_case : font_bold 12 font_name 12, "Courier" : Height 12, taille_case+3: Font_size 12,taille_case - 5 : Font_color 12,200,200,0 Caption 12, "- VORACE - (Version Panoramic Version 0.9.23)" Alpha 13 : Left 13,60 : Top 13, (Nb_Lignes+2.5)*taille_case : font_name 13, "Courier": font_size 13,taille_case -5 Font_color 13,0,80,200 : Caption 13, "Score : 00000" Show 1 : Show 0 Return
Fin: timer_off 10 Message$ = "*********************" +LF$+ "* Partie terminée *" +LF$+ "*********************" Message$ = Message$ +LF$ + LF$ + "Score: "+ STR$ (Score) Message$ = Message$ +LF$ + LF$ + "Rejouer ?" if Message_confirmation_yes_no (Message$) = 1 then Score = 0 : goto Relance terminate
Dernière édition par Jicehel le Dim 18 Mar 2012 - 10:14, édité 1 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 9:03 | |
| Salut Jicehel Forcément " noir c'est noir il n'y a plus d'espoir ho! ho! " (Johnny) Plus sérieusement: Dans ta version black, Il manque une ligne (ligne25) pour que le fond du labyrinthe soit noir: - Code:
-
width 1,taille_case*34:height 1,taille_case*30: color 1,0,0,0
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 9:21 | |
| Heu non, elle est supprimé car ligne 23, il y a : - Code:
-
Picture 1 : Color 1,0,0,0 et le picture 1 est déjà redimensionné ligne 190 dans la procédure charge_niveau (mais bon initialement c'était pour redimensionner la fenêtre en fonction de la taille du labyrinthe, mais bon, autant dimensionner une fois pour toute à la taille max et prévoir le labyrinthe en conséquence) | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 9:34 | |
| Quant j'ai essayer ton dernier code le picture 1 est resté à sa dimension d'origine ???? en rajoutant la ligne 25, çà a marché Bref c'est pas important, j'en ai un qui marche... A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 10:13 | |
| ok En effet c'est le plus important, mais je ne vois pas pourquoi, ça ne marche pas selon l'emplacement où la même commande se trouve. J'ai mis à jour le source. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 10:39 | |
| Bonjour à tous. Je n’arrive pas à faire exécuter VORACE. J’obtiens le message : Impossible to load the file. Line 23 J’ai récupéré l’image en clickant sur le lien donné et je l’ai enregistrée sous : spritesvoracenoir.bmp. J’ai indiqué le chemin complet de l’image en ligne 23, mais en vain. Comment procéder ? Merci d’avance
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 10:59 | |
| Attention, l'image fournit par Jean-Claude est en JPG, tu peux l'ouvrir dans Paint par exemple et l'enregistrer au format bmp (comme l'encodage de l'image n'est pas le même, le simple renommage ne suffit pas). C'est un peu pénible avec les sites de partage d'image, ils ne veulent pas du format bmp et le transforme automatiquement (pour ceux que je connais en tout cas)... Pareil, si tes extensions connues sont masquées, fais attention, tu vois peut être le nom avec bmp après et il y a peut être encore une extension masqué après.
Voilà Papydall, j'espère que c'est un de ces cas que tu rencontres, sinon, il faudra chercher par une autre piste | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 11:20 | |
| Merci, Jicehel J'ai fait comme tu m'as expliqué, mais ça n'a pas marché. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 11:33 | |
| Re_Bonjour, Voici une version (Black) à utiliser avec l'image en noir J'ai ajouté un FORM 1002 qui à pour but de faire patienter pendant la mise en place. Si on clique sur la croix rouge on sort par terminate. Attention le form est tout petit, on ne voit que le bandeau. (J'ai laissé la position 0,0) Si çà te plait Jicehel, tu pourrais untiliser ce form pour un menu de réglage avec l'écran de l'utilisateur en proposant la modification de taille_case et même d'un règlage automatique avec SCREEN_Y. A toi de voir Ici j'ai laissé taille_case=22, moi je met taille_case=31 pour un écran d'une hauteur de 1024 (Ce qui donnerai une valeur de 33.0322580645 la case) voila le code: - Code:
-
' ' Vorace version converti en Panoramic par Jean-Charles et améliorée par l'equipe des "Panoramiciens" ' Version original en Basic pour l'Hector ecrit par Eddy DUTERTRE
Label Charge_Niveau, Boucle, Relance, Fin, fin2, Touche, Collision, Change_dir Label Test_dirM, relance2
Dim L,N,A,I,A$ : ' Compteur et variables diverses temporaires Dim M : ' Competeur de pastilles Dim Nb_Cases_ligne, Nb_Lignes : Nb_Cases_ligne = 32 : Nb_Lignes = 20 Dim X,Y : ' Coordonnées du joueur Dim N_Monstres : N_Monstres = 3 : ' Le nombre de monstres actifs (max 3) Dim Xm(3),Ym(3),Vm : ' Coordonnées du monstre et vitesse de deplacement (+Vm est ganrd moins il va vite) Dim S : ' Direction du monstre Dim Depl : ' Deplace monstre si Depl = 1 Dim Etat(Nb_Lignes,Nb_Cases_ligne), traite Dim Pastilles(Nb_Lignes,Nb_Cases_ligne) Dim Temps, Score, touche_enfoncee, Pause Dim LF$, Message$ : LF$=CHR$(10) Dim taille_case : taille_case=22 : ' Taille Dim n_joueur : ' numéro de picture de l'image actuelle du joueur
Height 0, (Nb_Lignes+13)*taille_case : Width 0, (Nb_Cases_ligne + 4)*taille_case : color 0,0,0,0 form 1002:hide 0:height 1002,40:caption 1002,"VORACE: Patientez....":show 1002:on_close 1002,fin2 Picture 1 : Picture 2 : Hide 2: TOP 2, -2000: Height 2,160 : Width 2,80 : File_load 2,"spritesvoracenoir.bmp" width 1,taille_case*34:height 1,taille_case*30: color 1,0,0,0 ' créer les picture pour les pastilles Picture 1000 : hide 1000 : Height 1000,20 : Width 1000, 20 color 1000,0,0,0 Image 3 2D_Target_Is 1000 2D_Pen_Color 0,200,200 : 2D_Fill_Color 0,200,200 2D_Circle 0.5*taille_case,0.5*taille_case,3 2D_image_copy 3,0,0,20,20 For N=1 to Nb_Lignes : For I=1 to Nb_Cases_ligne Pastilles(N,I) = 1000+N*Nb_Cases_ligne+I A = Pastilles(N,I) : Picture A : hide A Height A,20 : Width A,20 : Top A,N*taille_case : left A,I*taille_case : 2D_Target_Is A : 2D_Image_Paste 3,0,0 Next I : Next N 2D_Target_Is 1 For I = 1 to N_Monstres+1 Picture 20 + I : Height 20 + I, 20 : Width 20+ I, 20:color 20+I,0,0,0 Image 3+I: Top 3+I, -2000 : Hide 3+I Next I ' créer les picture pour le joueur ' regarde à gauche Picture 51 : Hide 51 : Height 51, 20 : Width 51, 20:color 51,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,0,0,20,20 : 2D_Target_Is 51 : 2D_IMAGE_PASTE 3,0,0 ' regarde à droite Picture 52 : Hide 52 : Height 52, 20 : Width 52, 20:color 52,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,20,0,40,20 : 2D_Target_Is 52 : 2D_IMAGE_PASTE 3,0,0 ' regarde à haut Picture 53 : Hide 53 : Height 53, 20 : Width 53, 20:color 53,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,60,0,80,20 : 2D_Target_Is 53 : 2D_IMAGE_PASTE 3,0,0 ' regarde à bas Picture 54 : Hide 54 : Height 54, 20 : Width 54, 20:color 54,0,0,0 2D_Target_Is 2 : 2D_IMAGE_COPY 3,40,0,60,20 : 2D_Target_Is 54 : 2D_IMAGE_PASTE 3,0,0
DATA 11111111111111111111111111111111 : ' L1 : DATA 10100000010000011000000100000001 : ' L2 DATA 10101111010111110010101110111111 : ' L3 DATA 10001000000100010010100010100001 DATA 11110000000111000110001010100101 DATA 10000111010101111100001010110101 DATA 10111100010000110001111010100101 DATA 10000101111110000111100010101101 DATA 11110100010011111101001010101001 DATA 10000111010110010001011010101011 DATA 10111100010000000001001000000011 DATA 10000101111111110111111111011111 DATA 11110100011000110000000001010001 DATA 10000111000010000111111111010001 DATA 10111111111111111111011111010001 DATA 10000000000000000000000000010001 DATA 10100000010000011000000100000001 DATA 10101111010111110010101110111111 DATA 10001000000100000010100010000001 DATA 11111111111111111111111111111111 : ' L20
Timer 10: Timer_interval 10,80 : Timer_off 10 : On_Timer 10, Boucle Gosub Charge_Niveau Score = 0
Relance2:
X = 2: Y=2 : VM=3 : ' Position intiale du joueur Xm(1) = 12 : Ym(1)= 6 : ' Positions initiales des Voraces Xm(2) = 22 : Ym(2)= 4 : Xm(3) = 7 : Ym(3) = 13 Depl = 0 : S=1 : N=0 : traite = 0
If VM < N_Monstres Then VM = N_Monstres n_joueur = 51 : Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case show n_joueur : ' Affiche le joueur
on_key_down 0,touche timer_on 10 End
Relance: hide n_joueur M = 0 Hide 1 : 2D_Target_is 1 Height 1, (Nb_Lignes+9)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes For N = 1 TO Nb_Cases_ligne If Etat(L,N)<>2 If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L Show 1 2D_Pen_Color 255,255,255 : 2D_Fill_Color 0,0,0 goto relance2 return
Change_dir: FOR DEPL = 1000 TO 1 STEP -1 S= INT(RND(4))+1 Gosub Test_dirM NEXT DEPL return
Test_dirM:
2D_Target_is 2 IF S=1 and XM(A) < Nb_Cases_ligne-2 Then IF Etat(YM(A),XM(A)+1)<2 Then XM(A)=XM(A)+1: 2D_IMAGE_COPY 3+A,21,19*A+1,40,19*(A+1)+1:DEPL=1 IF S=2 and YM(A) < Nb_lignes-2 Then IF Etat(YM(A)+1,XM(A))<2 Then YM(A)=YM(A)+1: 2D_IMAGE_COPY 3+A,41,19*A+1,60,19*(A+1)+1:DEPL=1 IF S=3 and XM(A) > 2 Then IF Etat(YM(A),XM(A)-1)<2 Then XM(A)=XM(A)-1: 2D_IMAGE_COPY 3+A, 1,19*A+1,20,19*(A+1)+1:DEPL=1 IF S=4 and YM(A) > 2 Then IF Etat(YM(A)-1,XM(A))<2 Then YM(A)=YM(A)-1: 2D_IMAGE_COPY 3+A,61,19*A+1,80,19*(A+1)+1:DEPL=1 2D_Target_is 20+A : 2D_Image_Paste 3+A,0,0 : 2D_Target_is 1 Return
Boucle: show 0:hide 1002 If pause = 1 then return timer_off 10 N = N+1 : A = N IF A <= N_Monstres L = RND(10) If L > 6 gosub Change_dir Else gosub Test_dirM if depl=0 Then gosub Change_dir End_If Top 20+A,Ym(A)*taille_case : Left 20+A,Xm(A)*taille_case : Depl=0 :' Affiche le monstre End_If
IF N= VM THEN N=0
For I=1 To N_Monstres : If X=XM(I) and Y=YM(I) then gosub Collision : Next I If M = 0 Then Message "Niveau vidé, appuyez pour en faire un autre...": goto relance traite = 0 : timer_on 10 Return
Touche: if traite = 0 traite = 1 : touche_enfoncee = key_down_code ' Gauche If touche_enfoncee = 37 Then If X > 2 Then If Etat(Y,X-1)<2 Then X=X-1 : hide n_joueur : n_joueur = 51 ' Droite If touche_enfoncee = 39 Then If X < (Nb_Cases_ligne-1) Then If Etat(Y,X+1)<2 Then X=X+1: hide n_joueur : n_joueur = 52 ' Haut If touche_enfoncee = 38 Then If Y > 2 Then If Etat(Y-1,X)<2 Then Y=Y-1: hide n_joueur : n_joueur = 53 ' Bas If touche_enfoncee = 40 Then If Y < (Nb_lignes-1) Then If Etat(Y+1,X)<2 Then Y=Y+1: hide n_joueur : n_joueur = 54 ' Q ou Echap pour quitter If touche_enfoncee = 88 or touche_enfoncee = 27 Then goto FIN ' P pour Pause If touche_enfoncee = 80 Then If Pause = 0 then Pause = 1 :else: Pause = 0
For I = 1 TO N_Monstres If X=XM(I) and Y=YM(I) then gosub Collision Next I
If Etat(Y,X) = 1 Then Score=Score +10 : Etat(Y,X) = 0 : M=M-1 : Caption 13, "Score : " + RIGHT$("00000"+STR$(Score),5) Hide pastilles(Y,X) Top n_joueur,Y*taille_case : Left n_joueur,X*taille_case : show n_joueur : ' Affiche le joueur End_if Return
Collision: Goto fin Return
Charge_Niveau: M = 0 Hide 1 : 2D_Target_is 1 : Height 1, (Nb_Lignes+8)*taille_case : Width 1, (Nb_Cases_ligne+2)*taille_case For L = 1 TO Nb_Lignes Read A$ For N = 1 TO Nb_Cases_ligne If Mid$(A$,N,1)="1" 2D_Pen_Color 0,0,0 : 2D_Fill_Color 250,100,0:' couleur des parois du Labyrinthe 2D_Rectangle N*taille_case+1,L*taille_case+1,(N+1)*taille_case-1, (L+1)*taille_case-1 Etat(L,N)=2 Else If N=2 and L=2 ' On ne mets pas de pastille à la position de départ Else Etat(L,N)=1 : M = M+1 Show Pastilles(L,N) End_If End_If Next N Next L 2D_Fill_color 0,0,0 : 2D_Pen_Color 255,0,0 2D_Rectangle taille_case, (Nb_Lignes+2)*taille_case, (Nb_Cases_ligne+2)*taille_case- taille_case, (Nb_Lignes+8)*taille_case Alpha 12 : Left 12, 60 : Top 12, (Nb_Lignes+5.5)*taille_case : font_bold 12 font_name 12, "Courier" : Height 12, taille_case+3: Font_size 12,taille_case - 5 : Font_color 12,200,200,0 Caption 12, "- VORACE - (Version Panoramic Version 0.9.23)" Alpha 13 : Left 13,60 : Top 13, (Nb_Lignes+3)*taille_case : font_name 13, "Courier": font_size 13,taille_case -5 font_bold 13: Font_color 13,255,255,0: Caption 13, "Score : 00000" Show 1 Return
Fin: timer_off 10 Message$ = "*********************" +LF$+ "* Partie terminée *" +LF$+ "*********************" Message$ = Message$ +LF$ + LF$ + "Score: "+ STR$ (Score) Message$ = Message$ +LF$ + LF$ + "Rejouer ?" if Message_confirmation_yes_no (Message$) = 1 then Score = 0 : goto Relance fin2: terminate
A+ EDIT: salut Papydal on s'est croisé. fait attention au nom de l'image, il faut quel s'appelle pareil dans le code
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 11:49 | |
| J'ai enregistré l'image sous "SpritesVoraceNoir.jpg" et j'ai rectifié l'extension .bmp dans le programme et ça a marché !! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 12:10 | |
| Tu veux dire que tu as écris "SpritesVoraceNoir.jpg" dans le code ? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 12:26 | |
| Parfaitement, Jean Claude. J'ai bien écrit dans le code : SpritesVoraceNoir.jpg" D'ailleurs j'ai constaté (en inscrivant une extension quelconque ) que PANORAMIC accepte les 2 extensions : BMP ou JPG en affichant le message d'erreur suivant : File extension must be .BMP or .JPG | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 13:24 | |
| Hallo Panoramic's
welches Format ist besser BMP oder JPG ? Vorteile / Nachteile
Ich habe mir ein Konvertierungsprogramm runter geladen. Bevor ich alle meine Bilder konvertiere, meine Frage.
Danke Severin der Sonntagsprogrammierer
@ Jack Sind noch andere Bildformate in Zukunft vorgesehen ?
Salut Panoramic's quel format est mieux BMP ou JPG ? Avantages/désavantages
Je me suis chargé un programme de conversion. Avant que je ne convertisse tout mes images, ma question.
Remerciement Severin des programmeurs de dimanche
@ Jack Encore d'autres formats photo sont-ils prévus à l'avenir ? | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 14:42 | |
| Format JPG Avantages: faible taille (taux de compression important) Inconvenients: Dégradation de la qualité de l'image (modification des couleurs)
Format BMP: Avantages: Aucune perte de qualité de l'image Inconvénients: Taille des fichiers importante
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Dim 18 Mar 2012 - 19:12 | |
| Merci à Papydall, je ne me rappelais plus que Panoramic supportait les 2 formats.
Merci a Jicehel pour l'info sur ces formats
A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector Lun 19 Mar 2012 - 0:19 | |
| Bon, mon internet est toujours aussi pourri, j'ai pu enfin me reconnecter. Bon, ce soir, j'ai commencé un éditeur de niveau. Je vous donne le début (on clique sur l'icone puis sur la grille du niveau). Plus qu'à finaliser plus tard ^^ - Code:
-
LABEL Clic, Fin, Desgril, Desoc
DIM Objet%, Icone1%, P_Travail%, P_Icones%, Image%, Grille% DIM Ligne%, Colonne%, i%, j% DIM Prem_Ligne%, Nb_Lignes%, Nb_Colonnes% : Prem_Ligne%=6 : Nb_Lignes%=3 : Nb_Colonnes%=4 DIM PAS% : PAS%=20 DIM Nb_C_niveau%,Nb_L_niveau% : Nb_C_niveau% = 32 : Nb_L_niveau% = 20 DIM Niveaux%(Nb_L_niveau%,Nb_C_niveau%) DIM Selection%, xcl%, ycl% COLOR 0,192,255,255: WIDTH 0,800: FONT_BOLD 0
Objet%=1 : Selection%=1 P_Travail% = Objet% : objet%=objet%+1 Picture P_Travail% : Hide P_Travail%: TOP P_Travail%, -2000: Height P_Travail%,160 Width P_Travail%,80 : File_load P_Travail%,"spritesvoracenoir.bmp" P_Icones% = objet%: PICTURE P_Icones%: : TOP P_Icones%, 20: LEFT P_Icones%,10 WIDTH P_Icones%, 100: HEIGHT P_Icones%, 76 2D_Target_is P_Icones% : objet%=objet%+1 Image%=objet% : objet%=objet%+1: Image Image% Icone1%=objet% : objet%=objet%+1 2D_Fill_color 0,0,0 FOR Ligne%= (Prem_Ligne% - 1) TO (Prem_Ligne% + Nb_Lignes% - 2) FOR Colonne% = 0 TO 3 Picture Objet% : LEFT Objet%,14+Colonne%*(PAS%+4) : TOP Objet%, 24+(Ligne%-5)*(PAS%+4) : WIDTH Objet%, 20 Height Objet%, 20 : 2D_target_is objet% : On_click Objet%, Clic : 2D_Rectangle 0,0,20,20 2D_Target_Is P_Travail% : 2D_IMAGE_COPY Image%,Colonne%*20,19*Ligne%+1,(Colonne%+1)*20,19*(Ligne%+1)+1 2D_Target_Is Objet% : 2D_IMAGE_PASTE Image%,0, 0 : Objet%=Objet%+1 Next Colonne% Next ligne%
Grille% = Objet% : objet%=objet%+1 : Picture Grille% TOP Grille%,20: LEFT Grille%, 130: ON_CLICK Grille%, Desoc GOSUB Desgril
END
Desgril: WIDTH Grille%, Nb_C_niveau% * pas% : HEIGHT Grille%, Nb_L_niveau% * pas% 2D_TARGET_IS Grille%: 2D_PEN_COLOR 128,128,128: 2D_RECTANGLE 0,0,WIDTH(Grille%),HEIGHT(Grille%) FOR j% = 0 TO HEIGHT(Grille%) STEP pas%: 2D_LINE 0,j%,WIDTH(Grille%),j% : NEXT j% FOR i% = 0 TO WIDTH(Grille%) STEP pas%: 2D_LINE i%,0,i%,HEIGHT(Grille%): NEXT i% 2D_PEN_COLOR 255,128,255: 2D_LINE 0,HEIGHT(Grille%)/2,WIDTH(Grille%),HEIGHT(Grille%)/2 2D_LINE WIDTH(Grille%)/2,0,WIDTH(Grille%)/2,HEIGHT(Grille%) RETURN
Desoc: xcl% = INT(MOUSE_X_POSITION(Grille%)/pas%): ycl% = INT(MOUSE_Y_POSITION(Grille%)/pas%) Niveaux%(ycl%,xcl%)=Selection% 2D_Target_Is Icone1%+Selection% : 2D_IMAGE_COPY Image%,0,0,20,20 2D_Target_Is Grille%: 2D_IMAGE_PASTE Image%, xcl%*pas%,ycl%*pas% RETURN
Clic: 2D_Target_is P_Icones% i%=int((Selection%-1) / 4) : j%=mod(Selection%-1,4) ' caption 0, str$(Selection%) +";"+str$(i%)+";"+str$(j%) 2D_PEN_COLOR 255,255,255: 2D_RECTANGLE 2+j%*(PAS%+4), 2+i%*(PAS%+4),26+j%*(PAS%+4), 26+i%*(PAS%+4) wait 1 Selection% = Icone1% FOR Ligne%= 1 TO Nb_Lignes% FOR Colonne% = 1 TO 4 Selection% = Selection% + 1 if Selection% > Nb_Lignes%*4+Icone1%+1 Then Selection%= Nb_Lignes%*4+Icone1%+1 IF CLICKED(Selection%) = 1 Colonne% = 3 : Ligne%= Prem_Ligne% + Nb_Lignes% - 2 END_IF Next Colonne% Next ligne% Selection% = Selection% - Icone1% -1 i%=int((Selection%-1) / 4) : j%=mod(Selection%-1,4) 2D_PEN_COLOR 255,0,0: 2D_RECTANGLE 2+j%*(PAS%+4), 2+i%*(PAS%+4),26+j%*(PAS%+4), 26+i%*(PAS%+4) Return
Fin: Terminate | |
| | | Contenu sponsorisé
| Sujet: Re: Vorace - une autre adaptation depuis l'Hector | |
| |
| | | | Vorace - une autre adaptation depuis l'Hector | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |