Forum Liberty Basic France
• Index
Reprise du message précédent
Bien sûr qu'il y a des solutions. Je te les ais données avec ce code il y a bien longtemps déjà.
Je vais essayer de retrouver ça.
@+
Bien sûr qu'il y a des solutions. Je te les ais données avec ce code il y a bien longtemps déjà.
Je vais essayer de retrouver ça.
@+
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Salut, Voir: le code de Claude de manip sur les matrices.
Je retrouve un truc que j'avais fait et va te convenir parfaitement, le voila:il n'y a pas les fichiers
C'est une adaptation du code deClaude
Code JB :
Je retrouve un truc que j'avais fait et va te convenir parfaitement, le voila:il n'y a pas les fichiers
C'est une adaptation du code deClaude
Code JB :
NOMAINWIN 'numéroter les colonnes dans un statictext horizontal Hnum$ = SPACE$(2) FOR j = 1 TO 11: Hnum$ = Hnum$ + STR$(j) + SPACE$(16): NEXT j STATICTEXT #w.horizontal, Hnum$, 20, 1, 580, 20 'et numéroter péniblement les lignes dans un statictext vertical Vnum$ = SPACE$(1) FOR i = 1 TO 10: Vnum$ = Vnum$ + STR$(i) + SPACE$(3): NEXT i STATICTEXT #w.vertical, Vnum$, 3, 12, 9, 320 '10 lignes x 11 colonnes de TextBox, grâce au copier-coller... w = 50: MG = 20: MS = 20: d = 5: h = 25 TEXTBOX #w.101, 20 + 0*55, 20, 50, 25 TEXTBOX #w.102, 20 + 1*55, 20, 50, 25 TEXTBOX #w.103, 20 + 2*55, 20, 50, 25 TEXTBOX #w.104, 20 + 3*55, 20, 50, 25 TEXTBOX #w.105, 20 + 4*55, 20, 50, 25 TEXTBOX #w.106, 20 + 5*55, 20, 50, 25 TEXTBOX #w.107, 20 + 6*55, 20, 50, 25 TEXTBOX #w.108, 20 + 7*55, 20, 50, 25 TEXTBOX #w.109, 20 + 8*55, 20, 50, 25 TEXTBOX #w.110, 20 + 9*55, 20, 50, 25 TEXTBOX #w.111, 20 + 10*55, 20, 50, 25 TEXTBOX #w.201, 20 + 0*55, 50, 50, 25 TEXTBOX #w.202, 20 + 1*55, 50, 50, 25 TEXTBOX #w.203, 20 + 2*55, 50, 50, 25 TEXTBOX #w.204, 20 + 3*55, 50, 50, 25 TEXTBOX #w.205, 20 + 4*55, 50, 50, 25 TEXTBOX #w.206, 20 + 5*55, 50, 50, 25 TEXTBOX #w.207, 20 + 6*55, 50, 50, 25 TEXTBOX #w.208, 20 + 7*55, 50, 50, 25 TEXTBOX #w.209, 20 + 8*55, 50, 50, 25 TEXTBOX #w.210, 20 + 9*55, 50, 50, 25 TEXTBOX #w.211, 20 + 10*55, 50, 50, 25 TEXTBOX #w.301, 20 + 0*55, 80, 50, 25 TEXTBOX #w.302, 20 + 1*55, 80, 50, 25 TEXTBOX #w.303, 20 + 2*55, 80, 50, 25 TEXTBOX #w.304, 20 + 3*55, 80, 50, 25 TEXTBOX #w.305, 20 + 4*55, 80, 50, 25 TEXTBOX #w.306, 20 + 5*55, 80, 50, 25 TEXTBOX #w.307, 20 + 6*55, 80, 50, 25 TEXTBOX #w.308, 20 + 7*55, 80, 50, 25 TEXTBOX #w.309, 20 + 8*55, 80, 50, 25 TEXTBOX #w.310, 20 + 9*55, 80, 50, 25 TEXTBOX #w.311, 20 + 10*55, 80, 50, 25 TEXTBOX #w.401, 20 + 0*55, 110, 50, 25 TEXTBOX #w.402, 20 + 1*55, 110, 50, 25 TEXTBOX #w.403, 20 + 2*55, 110, 50, 25 TEXTBOX #w.404, 20 + 3*55, 110, 50, 25 TEXTBOX #w.405, 20 + 4*55, 110, 50, 25 TEXTBOX #w.406, 20 + 5*55, 110, 50, 25 TEXTBOX #w.407, 20 + 6*55, 110, 50, 25 TEXTBOX #w.408, 20 + 7*55, 110, 50, 25 TEXTBOX #w.409, 20 + 8*55, 110, 50, 25 TEXTBOX #w.410, 20 + 9*55, 110, 50, 25 TEXTBOX #w.411, 20 + 10*55, 110, 50, 25 TEXTBOX #w.501, 20 + 0*55, 140, 50, 25 TEXTBOX #w.502, 20 + 1*55, 140, 50, 25 TEXTBOX #w.503, 20 + 2*55, 140, 50, 25 TEXTBOX #w.504, 20 + 3*55, 140, 50, 25 TEXTBOX #w.505, 20 + 4*55, 140, 50, 25 TEXTBOX #w.506, 20 + 5*55, 140, 50, 25 TEXTBOX #w.507, 20 + 6*55, 140, 50, 25 TEXTBOX #w.508, 20 + 7*55, 140, 50, 25 TEXTBOX #w.509, 20 + 8*55, 140, 50, 25 TEXTBOX #w.510, 20 + 9*55, 140, 50, 25 TEXTBOX #w.511, 20 + 10*55, 140, 50, 25 TEXTBOX #w.601, 20 + 0*55, 170, 50, 25 TEXTBOX #w.602, 20 + 1*55, 170, 50, 25 TEXTBOX #w.603, 20 + 2*55, 170, 50, 25 TEXTBOX #w.604, 20 + 3*55, 170, 50, 25 TEXTBOX #w.605, 20 + 4*55, 170, 50, 25 TEXTBOX #w.606, 20 + 5*55, 170, 50, 25 TEXTBOX #w.607, 20 + 6*55, 170, 50, 25 TEXTBOX #w.608, 20 + 7*55, 170, 50, 25 TEXTBOX #w.609, 20 + 8*55, 170, 50, 25 TEXTBOX #w.610, 20 + 9*55, 170, 50, 25 TEXTBOX #w.611, 20 + 10*55, 170, 50, 25 TEXTBOX #w.701, 20 + 0*55, 200, 50, 25 TEXTBOX #w.702, 20 + 1*55, 200, 50, 25 TEXTBOX #w.703, 20 + 2*55, 200, 50, 25 TEXTBOX #w.704, 20 + 3*55, 200, 50, 25 TEXTBOX #w.705, 20 + 4*55, 200, 50, 25 TEXTBOX #w.706, 20 + 5*55, 200, 50, 25 TEXTBOX #w.707, 20 + 6*55, 200, 50, 25 TEXTBOX #w.708, 20 + 7*55, 200, 50, 25 TEXTBOX #w.709, 20 + 8*55, 200, 50, 25 TEXTBOX #w.710, 20 + 9*55, 200, 50, 25 TEXTBOX #w.711, 20 + 10*55, 200, 50, 25 TEXTBOX #w.801, 20 + 0*55, 230, 50, 25 TEXTBOX #w.802, 20 + 1*55, 230, 50, 25 TEXTBOX #w.803, 20 + 2*55, 230, 50, 25 TEXTBOX #w.804, 20 + 3*55, 230, 50, 25 TEXTBOX #w.805, 20 + 4*55, 230, 50, 25 TEXTBOX #w.806, 20 + 5*55, 230, 50, 25 TEXTBOX #w.807, 20 + 6*55, 230, 50, 25 TEXTBOX #w.808, 20 + 7*55, 230, 50, 25 TEXTBOX #w.809, 20 + 8*55, 230, 50, 25 TEXTBOX #w.810, 20 + 9*55, 230, 50, 25 TEXTBOX #w.811, 20 + 10*55, 230, 50, 25 TEXTBOX #w.901, 20 + 0*55, 260, 50, 25 TEXTBOX #w.902, 20 + 1*55, 260, 50, 25 TEXTBOX #w.903, 20 + 2*55, 260, 50, 25 TEXTBOX #w.904, 20 + 3*55, 260, 50, 25 TEXTBOX #w.905, 20 + 4*55, 260, 50, 25 TEXTBOX #w.906, 20 + 5*55, 260, 50, 25 TEXTBOX #w.907, 20 + 6*55, 260, 50, 25 TEXTBOX #w.908, 20 + 7*55, 260, 50, 25 TEXTBOX #w.909, 20 + 8*55, 260, 50, 25 TEXTBOX #w.910, 20 + 9*55, 260, 50, 25 TEXTBOX #w.911, 20 + 10*55, 260, 50, 25 TEXTBOX #w.1001, 20 + 0*55, 290, 50, 25 TEXTBOX #w.1002, 20 + 1*55, 290, 50, 25 TEXTBOX #w.1003, 20 + 2*55, 290, 50, 25 TEXTBOX #w.1004, 20 + 3*55, 290, 50, 25 TEXTBOX #w.1005, 20 + 4*55, 290, 50, 25 TEXTBOX #w.1006, 20 + 5*55, 290, 50, 25 TEXTBOX #w.1007, 20 + 6*55, 290, 50, 25 TEXTBOX #w.1008, 20 + 7*55, 290, 50, 25 TEXTBOX #w.1009, 20 + 8*55, 290, 50, 25 TEXTBOX #w.1010, 20 + 9*55, 290, 50, 25 TEXTBOX #w.1011, 20 + 10*55, 290, 50, 25 BUTTON #w.EX1, "diagonale", [diag], UL, 30, 330 BUTTON #w.EX2, "damier 1", [dam1], UL, 30, 370 BUTTON #w.EX2, "damier 2", [dam2], UL, 30, 410 BUTTON #w.Print, "aleatoire", [aleat], UL, 30, 450 BUTTON #w.EX3, "reorganise", [reorg], UL, 260, 350 BUTTON #w.Load, "Charger", [CHARGER], UL, 150, 350, 80, 30 BUTTON #w.Save, "Sauver", [SAUVER], UL, 150, 400, 80, 30 'BUTTON #w.REST, "RESTORE", [RESTAURER], UL, 295, 350, 75, 50 BUTTON #w.NEW, "NEW", RAZ, UL, 380, 350, 70, 50 BUTTON #w.CALC, "VALID 1°saisie", [CALC], UL, 380, 430', 70, 50 BUTTON #w.EXIT, "EXIT", [EXIT], UL, 540, 350, 70, 50 WindowHeight = 550 WindowWidth = 660 UpperLeftX = INT(DisplayWidth - WindowWidth) /2 'centrage UpperLeftY = INT(DisplayHeight - WindowHeight) /2 OPEN "Tableau d'essais" FOR GRAPHICS_nsb AS #w PRINT #w, "TrapClose [EXIT]" PRINT #w.vertical, "!font courrier_new 9" '* le tableau pour enregistrer les valeurs des 10 x 11 cellules DIM A(11, 12) '* le tableau pour sauvegarder les données de A( ) DIM B(11,12) '* le tableau pour FILES DIM Info$(10, 10) PRINT #w.101, "!setfocus" 'focus première cellule WAIT [CALC] j = 1 FOR i = 1 TO 10 'nombre lignes saisies(n) cell$ = "#w." + STR$(100 * i + j) 'créer un handle maniable PRINT #cell$, "!contents? var$" IF var$ = "" THEN n = i - 1 EXIT FOR ELSE n= i END IF NEXT i i = 1 FOR j = 1 TO 11 'nombre colonnes saisies(m) cell$ = "#w." + STR$(100 + j) PRINT #cell$, "!contents? var$" IF var$ = "" THEN m = j - 1 EXIT FOR ELSE m = j END IF NEXT j FOR i = 1 TO n FOR j = 1 TO m cell$ = "#w." + STR$(100 * i + j) PRINT #cell$, "!contents? var$" A(i, j) = VAL(var$) 'envoi données dans tableau A() B(i, j) = VAL(var$) 'et dans la copie de réserve B() NEXT j NEXT i [affiche] FOR i = 1 TO 10 FOR j = 1 TO 11 cell$ = "#w." + STR$(100 * i + j) x = A(i, j) x$ = STR$(x) PRINT #cell$, x$ 'afficher donnees cellules NEXT j NEXT i WAIT SUB RAZ handle$ FOR i = 1 TO 10 FOR j = 1 TO 11 cell$ = "#w." + STR$(100 * i + j) PRINT #cell$, "" 'effacer donnees NEXT j NEXT i PRINT #w.101, "!setfocus" END SUB [RESTAURER] FOR i = 1 TO n FOR j = 1 TO m A(i, j) = B(i, j) cell$ = "#w." + STR$(100 * i + j) var = A(i, j) PRINT #cell$, STR$(var) NEXT j NEXT i WAIT [CHARGER] prompt "Nom du fichier ?:"; in$ CALL RAZ "#w.RAZ" 'vider l'affichage OPEN in$ FOR INPUT AS #src INPUT #src, n 'nombre de lignes INPUT #src, m 'nombre de colonnes = n + 1 FOR i = 1 TO n INPUT #src, ligne$ FOR j = 1 TO m A(i, j) = VAL(WORD$(ligne$, j)) B(i, j) = A(i, j) NEXT j NEXT i CLOSE #src FOR i = 1 TO n 'répartir dans les cellules FOR j = 1 TO m cell$ = "#w." + STR$(100 * i + j) PRINT #cell$, STR$(A(i, j)) NEXT j NEXT i WAIT [SAUVER] prompt "Donner un nom, et s'en souvenir:"; out$ OPEN out$ FOR OUTPUT AS #dest PRINT #dest, n 'lignes PRINT #dest, m 'colonnes FOR i = 1 TO n ligne$ = "" FOR j = 1 TO m ligne$ = ligne$ + STR$(B(i, j)) + " " NEXT j PRINT #dest, ligne$ NEXT i CLOSE #dest WAIT [diag] C=5 FOR L = 10 TO 1 step -1 A(L,C) = 0 if C>=11 then exit for C=C+1 NEXT L C=5 FOR L = 10 TO 1 step -1 A(L,C) = 0 if C<=1 then exit for C=C-1 NEXT L goto [affiche] [dam1] FOR L = 1 TO 10 step 2 for C = 1 to 11 step 2 A(L,C) = 0 next next FOR L = 2 TO 10 step 2 for C = 2 to 11 step 2 A(L,C) = 0 next next goto [affiche] [dam2] FOR L = 10 TO 1 step -2 for C = 1 to 11 step 2 A(L,C) = 0 next next FOR L = 10 TO 1 step -2 for C = 5 to 1 step -2 A(L,C) = 0 next next goto [affiche] [aleat] for k = 1 to 10 for cc = 1 to 11 L = int(rnd(1)*10) + 1 C = int(rnd(1)*11) + 1 A(L,C)=0 next next goto [affiche] [reorg] C = 1 [suiv] for k= 10 to 2 step-1 if A(k,C)=0 and A(k-1,C)<>0 then A(k,C)=A(k-1,C) A(k-1,C)=0 end if next for k= 10 to 2 step-1 if A(k,C)=0 and A(k-1,C)<>0 then goto [suiv] end if next k C = C+1 if C <=11 then goto [suiv] end if goto [affiche] [EXIT] CLOSE #w END
____________________
Roro
Roro
Dès la page 2 de ce post Jagang et moi-même t'avions tout expliqué pour gérer entièrement ton jeu à la souris.
Dès ce moment là tu aurais dû nous écouter ainsi que pratiquement tous les intervenants sur le forum anglophone.
Maintenant que ton programme est très avancé en gestion des touches, j'ai peur que de tout modifier pour y jouer à la souris soit un travail qui risque bien de te paraitre trop important et te démotive
Il s'agit donc que tu créés (avec le code que je t'ai écrit en page 2) un fichier texte des limites pour chaque image (le tableau case(ncx,ncy). Ce fichier sera chargé en même temps que l'image qu'il gère. Il suffit ensuite de gérer ces limites du personnage quand le joueur clique avec la souris dans une direction pour le personnage.
J'avais écrit cette partie là aussi à l'époque.
Il manque juste sûrement la gestion du fichier fichier texte à charger pour une image.
Il serait possible de n'utiliser qu'un seul fichier texte pour toutes les images de terrain du jeu, mais il se pourrait bien qu'il soit un peu gros, et 1 fichier texte pour un fichier image me semble plus simple.
@+
Dès ce moment là tu aurais dû nous écouter ainsi que pratiquement tous les intervenants sur le forum anglophone.
Maintenant que ton programme est très avancé en gestion des touches, j'ai peur que de tout modifier pour y jouer à la souris soit un travail qui risque bien de te paraitre trop important et te démotive

Il s'agit donc que tu créés (avec le code que je t'ai écrit en page 2) un fichier texte des limites pour chaque image (le tableau case(ncx,ncy). Ce fichier sera chargé en même temps que l'image qu'il gère. Il suffit ensuite de gérer ces limites du personnage quand le joueur clique avec la souris dans une direction pour le personnage.
J'avais écrit cette partie là aussi à l'époque.
Il manque juste sûrement la gestion du fichier fichier texte à charger pour une image.
Il serait possible de n'utiliser qu'un seul fichier texte pour toutes les images de terrain du jeu, mais il se pourrait bien qu'il soit un peu gros, et 1 fichier texte pour un fichier image me semble plus simple.
@+
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Hum je suis daccord avec vous le problème n'est pas de créer le fichier texte, n'y de le lire je comprend ce que vous me dites depuis la page 2
!
Mon problème actuel et ce que vous n'avez peut etre pas compris c'est que vous m'avez dit comment "montrer" les limites avec les cases bleu et la grille. Vous m'avez dit de mettre ça dans un tableau. Certe je peut les tracer comme cela mais ensuite quoi ? je regarde le l'image avec la grille et les cases bleu
?
Ce que je vous demandais c'est de savoir comment à partir de ce moment (là ou je suis entrain de regarder mon écran avec la grille et les cases bleu) je peux enregistrer les valeurs de la grilles dans un fichier texte.
(avec un raccourcie ou même un bouton "enregistrer !")
Par ce que si je dois tapper moi même le tableu qui fait 20x60 (voir plus) pour chacune de mes cartes(1200) mes doigt vont me tomber avant la fin
.
Ma méthode de limite avec le clavier à évolué et ne compte plus que 30 lignes environs par carte, ce qui ne me prend pas énormément de temps a réaliser...
Et j'ai aussi un autre soucis, lorsque je met les valeurs du tableau (j'ai réussi a faire un tableau 30x20
) les valeurs ne correspondent pas... le tableau devrait couvrir 50% de la carte hors il ne couvre que moins d'1/4
!
De plus dés que l'on s'approche des limites de la carte il y a un crash avec cas() ....

Mon problème actuel et ce que vous n'avez peut etre pas compris c'est que vous m'avez dit comment "montrer" les limites avec les cases bleu et la grille. Vous m'avez dit de mettre ça dans un tableau. Certe je peut les tracer comme cela mais ensuite quoi ? je regarde le l'image avec la grille et les cases bleu

Ce que je vous demandais c'est de savoir comment à partir de ce moment (là ou je suis entrain de regarder mon écran avec la grille et les cases bleu) je peux enregistrer les valeurs de la grilles dans un fichier texte.
(avec un raccourcie ou même un bouton "enregistrer !")
Par ce que si je dois tapper moi même le tableu qui fait 20x60 (voir plus) pour chacune de mes cartes(1200) mes doigt vont me tomber avant la fin

Ma méthode de limite avec le clavier à évolué et ne compte plus que 30 lignes environs par carte, ce qui ne me prend pas énormément de temps a réaliser...
Et j'ai aussi un autre soucis, lorsque je met les valeurs du tableau (j'ai réussi a faire un tableau 30x20


De plus dés que l'on s'approche des limites de la carte il y a un crash avec cas() ....
tu voudrais simplement savoir comment enregistrer le tableau cas(ncx,ncy) dans un fichier, puis recharger cas(ncx,ncy) en chargeant le fichier ?
Dans les 1200 cartes, n'y aurait-il pas des cartes identiques à seulement 1 détail ou personnage près ?
Edité par cassiope01 Le 25/07/2012 à 09h28
Dans les 1200 cartes, n'y aurait-il pas des cartes identiques à seulement 1 détail ou personnage près ?
Edité par cassiope01 Le 25/07/2012 à 09h28
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Oui je voulais simplement savoir comment enregistrer le tableau cas(ncx,ncy) dans un fichier, puis recharger cas(ncx,ncy) en chargeant le fichier
....
Non les 1200 cartes ne seront pas identiques, aucunes. Elles seront divisées en 6 classes soit 200 cartes par campagne (race de personnage). Si je devais rajouter des détails je pense que je sprites conviendrons mieux.

Non les 1200 cartes ne seront pas identiques, aucunes. Elles seront divisées en 6 classes soit 200 cartes par campagne (race de personnage). Si je devais rajouter des détails je pense que je sprites conviendrons mieux.
Sachant que les cas(x,y) ne doivent contenir qu'un chiffre de 0 à 9.
Code VB :
Code VB :
Code VB :
Edité par cassiope01 Le 25/07/2012 à 18h59
Code VB :
[loadmap] if fileExists(DefaultDir$, "Map.txt") then open "Map.txt" for input as #grid for y=1 to ncy LINE INPUT #grid, grid$ for x=1 to ncx cas(x,y)=val(mid$(grid$,x,1)) next next close #grid else notice "No file 'Map.txt'...!" end if return
Code VB :
function fileExists(path$, filename$) 'DIM info$(10,10) 'must have been declared at the start of the code. files path$, filename$, info$() ' path$ = DefaultDir$ generally... fileExists = val(info$(0, 0)) '<> 0 if true end function
Code VB :
[savemap] open "Map.txt" for output as #grid for y=1 to ncy grid$="" for x=1 to ncx grid$ = grid$+str$(cas(x,y)) next #grid, grid$ next close #grid return
Edité par cassiope01 Le 25/07/2012 à 18h59
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Merci c'est parfait !
Je demandais ca depuis au moins 4 pages XD, peut être me suis-je mal fait comprendre =S .
Je commence a fusionné les codes (mon code clavier + code souris)
J'ai néanmoins un problème :
1° : Peut-on m'indiquer précisément sur le code que je vais poster ci dessous, la ligne qui dit "si cas(x,y) = 1 alors pas bougé ; si cas(x,y) = 0 alors bouge !". Cela pour la simple raison que j aimerais pouvoir mettre des 2, 3, etc... pour passer d'un map à l'autre. (je peux trouver une autre solution mais je suis curieux ^^).
Voici le code :
Code VB :
Je demandais ca depuis au moins 4 pages XD, peut être me suis-je mal fait comprendre =S .
Je commence a fusionné les codes (mon code clavier + code souris)
J'ai néanmoins un problème :
1° : Peut-on m'indiquer précisément sur le code que je vais poster ci dessous, la ligne qui dit "si cas(x,y) = 1 alors pas bougé ; si cas(x,y) = 0 alors bouge !". Cela pour la simple raison que j aimerais pouvoir mettre des 2, 3, etc... pour passer d'un map à l'autre. (je peux trouver une autre solution mais je suis curieux ^^).
Voici le code :
Code VB :
nomainwin WindowWidth = 1015 WindowHeight = 600 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) Global ncx, ncy, lc, SpriteCourant lc = 15 'dimension d'une case en pixels open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b #3b "trapclose Quit" #3b "font Comic_Sans_MS 8" #3b "home; posxy CenterX CenterY" #3b,"when characterInput [control_touche]" ncx = 68 'nbre de case en x ncy = 40 'nbre de case en y lc = 15 dim cas(ncx,ncy) 'variable tableau de toutes les limites de la map. goto [loadmap] [init] loadbmp "JB", "bmp\map\maphum2.bmp" sprites$ = "perso1d perso2d perso4d perso1s perso2s perso4s "+_ "perso1q perso2q perso4q perso1z perso2z perso4z" for s = 1 to 12 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next #3b "addsprite perso1 perso1z perso2z perso4z" 'création des 4 sprites pour chaque futures direction de déplacement... #3b "addsprite perso2 perso1d perso2d perso4d" #3b "addsprite perso3 perso1s perso2s perso4s" #3b "addsprite perso4 perso1q perso2q perso4q" #3b "drawbmp JB 0 0" #3b "down" #3b "background JB" for SpriteCourant = 1 to 4 #3b "spritexy perso";SpriteCourant;" ";12*lc;" ";24*lc 'place tous les sprites là. #3b "cyclesprite perso";SpriteCourant;" 1" #3b "spritevisible perso";SpriteCourant;" off" next SpriteCourant = 3 #3b "spritevisible perso";SpriteCourant;" on" #3b "drawsprites" 'affiche le sprite courant. #3b "when leftButtonMove SimpleClick" wait sub SimpleClick handle$, MouseX, MouseY 'double clic sur un point de destination... #3b "when leftButtonMove" dpx(1) = 0 :dpx(2) = 1 :dpx(3) = 0 :dpx(4) = -1 dpy(1) = -1 :dpy(2) = 0 :dpy(3) = 1 :dpy(4) = 0 ' incrément en case, de la variables tableau icp = 6 'incrément de déplacement en pixels. #3b "spritexy? perso";SpriteCourant;" cursX cursY" 'coordonnées actuelles du personnage <------ dirX = MouseX - cursX 'comparaison avec celle du clic de souris dirY = MouseY - cursY if abs(dirX) < abs(dirY) then sens = 1 else sens = 2 '1 = vertical 2 = horizontal select case case sens = 1 if dirY > 0 then dir = 3 else dir = 1 'direction à prendre: 1 = HAUT case sens = 2 ' 2 = DROITE if dirX > 0 then dir = 2 else dir = 4 ' 3 = BAS end select ' 4 = GAUCHE for s=1 to 4 #3b "spritevisible perso";s;" off" next SpriteCourant = dir #3b "spritexy perso";SpriteCourant;" ";cursX;" ";cursY #3b "spritevisible perso";SpriteCourant;" on" 'ne montre QUE le sprite concerné par la direction choisie. do #3b "spritexy? perso";SpriteCourant;" cursX cursY" cx = int(cursX/lc)+1 'position du sprite exprimé en n° de case pour la variable tableau cy = int(cursY/lc)+1 if cx+dpx(dir)>0 and cx+dpx(dir)<ncx and cy+dpy(dir)>0 and cy+dpy(dir)<ncy and cas(cx+dpx(dir),cy+dpy(dir)) = 0 and cas(cx+dpx(dir),cy+1+dpy(dir)) = 0 then 'reste dans la map et pas de mur... nx = cursX + dpx(dir)*icp ny = cursY + dpy(dir)*icp #3b "spritexy perso";SpriteCourant;" ";nx;" ";ny 'cheminement du sprite... tranquilou... #3b "drawsprites" call pause 90 else sortir = 1 end if if (dir = 2 and nx >= MouseX) or (dir = 4 and nx <= MouseX) or (dir = 1 and ny <= MouseY) or (dir = 3 and ny >= MouseY) then sortir = 1 loop until sortir #3b "when leftButtonMove SimpleClick" end sub sub pause temp timer temp, [suit] wait [suit] timer 0 end sub sub Quit handle$ unloadbmp "JB" sprites$ = "perso1d perso2d perso4d perso1s perso2s perso4s "+_ "perso1q perso2q perso4q perso1z perso2z perso4z" for s = 1 to 12 unloadbmp word$(sprites$,s) next close #3b END end sub function fileExist(path$,filename$) dim info$(10, 10) files path$,filename$, info$( if val(info$(0, 0)) > 0 then fileExist = 1 else fileExist = 0 end if end function [savemap] open "map1.txt" for output as #grid for y=1 to ncy grid$="" for x=1 to ncx grid$ = grid$+str$(cas(x,y)) next #grid, grid$ next close #grid return [loadmap] if fileExist(DefaultDir$, "map1.txt") then open "map1.txt" for input as #grid for y=1 to ncy LINE INPUT #grid, grid$ for x=1 to ncx cas(x,y)=val(mid$(grid$,x,1)) next next close #grid else notice "No file 'map1.txt'...!" end if goto [init]
atomose:
Ou plus sûrement ce serait plutôt toi qui ne cherche pas à comprendre ni ce qui t'est expliqué, ni JustBasic.
atomose:
Tient, qu'est-ce que je disais !
Tu veux dire que depuis tout ce temps tu ne sais toujours pas lire un code en JustBasic !
atomose:
Moi aussi je suis curieux
C'est vrai que pour passer à une autre carte tu pourrais par exemple mettre différentes valeurs dans cas(x,y) : 1 pour sortie par le Nord, 2 par l'Est, 3 par le Sud, 4 par l'Ouest, et il te resterait encore les valeurs 5,6,7,8,9 pour différentes actions à l'intérieur de chaque carte; associé au nom de la carte (que tu peux aussi enregistrer en tête du fichier du tableau) cela te ferait pas mal de combinaisons d'actions, et même la gestion entière de ton RPG !
Mais tout ça on te l'a déjà expliqué il y a longtemp.
Tu pourrais aussi enregistrer dans le fichier les 4 noms des 4 cartes à appeler en fonction de la sortie utilisée... il suffit alors de charger la carte en question et son fichier des limites et le tour est joué
Pas mal non
Je serais toi j'écrirais une procédure qui gère uniquement le déplacement du personnage et les évènements qu'il vit au sein d'une carte.
Il suffit de "donner à manger" à cette procédure une simple direction issue de 2 autres procédures : une pour capter la direction par la souris, une pour capter la direction donnée par une des touches de direction (pressée 1 seule fois ! ).
Dans ces 2 dernières procédures il y aurait aussi toute la gestion des menus puisqu'elle s'occupent de la souris et des touches pressées !!
@+
Edité par cassiope01 Le 28/07/2012 à 08h34
Je demandais ca depuis au moins 4 pages XD, peut être me suis-je mal fait comprendre =S .
Ou plus sûrement ce serait plutôt toi qui ne cherche pas à comprendre ni ce qui t'est expliqué, ni JustBasic.
atomose:
1° : Peut-on m'indiquer précisément sur le code que je vais poster ci dessous, la ligne qui dit "si cas(x,y) = 1 alors pas bougé ; si cas(x,y) = 0 alors bouge !". Cela pour la simple raison que j aimerais pouvoir mettre des 2, 3, etc... pour passer d'un map à l'autre.
Tient, qu'est-ce que je disais !

Tu veux dire que depuis tout ce temps tu ne sais toujours pas lire un code en JustBasic !
atomose:
(je peux trouver une autre solution mais je suis curieux ^^).
Moi aussi je suis curieux

C'est vrai que pour passer à une autre carte tu pourrais par exemple mettre différentes valeurs dans cas(x,y) : 1 pour sortie par le Nord, 2 par l'Est, 3 par le Sud, 4 par l'Ouest, et il te resterait encore les valeurs 5,6,7,8,9 pour différentes actions à l'intérieur de chaque carte; associé au nom de la carte (que tu peux aussi enregistrer en tête du fichier du tableau) cela te ferait pas mal de combinaisons d'actions, et même la gestion entière de ton RPG !
Mais tout ça on te l'a déjà expliqué il y a longtemp.
Tu pourrais aussi enregistrer dans le fichier les 4 noms des 4 cartes à appeler en fonction de la sortie utilisée... il suffit alors de charger la carte en question et son fichier des limites et le tour est joué

Pas mal non

Je serais toi j'écrirais une procédure qui gère uniquement le déplacement du personnage et les évènements qu'il vit au sein d'une carte.
Il suffit de "donner à manger" à cette procédure une simple direction issue de 2 autres procédures : une pour capter la direction par la souris, une pour capter la direction donnée par une des touches de direction (pressée 1 seule fois ! ).
Dans ces 2 dernières procédures il y aurait aussi toute la gestion des menus puisqu'elle s'occupent de la souris et des touches pressées !!
@+
Edité par cassiope01 Le 28/07/2012 à 08h34
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Citation:
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
Ou plus sûrement ce serait plutôt toi qui ne cherche pas à comprendre ni ce qui t'est expliqué, ni JustBasic.
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
____________________
Roro
Roro
Roland:
Tout ça n'a absolument rien à voir avec moi ni un quelconque pouvoir d'abstraction. Je ne suis pas le seul à avoir expliqué tout un tas de chose en francais et en anglais, pour les quelles atomose, soit ne répond carrément pas, soit dit qu'il préfère continuer tel quel plutôt que d'échanger sur les propositions et chercher à comprendre le bénéfice qu'il pourrait en tirer tout en apprenant JB, ou bien expliquer tout simplement pourquoi ça ne lui convient pas: pas de pb.
Seulement maintenant il est un peu tard pour tout réécrire...!
Cela ne m'empêche pas cependant de continuer à lui donner des idées, pistes, ou même bouts de codes utiles.
Comme tu l'as dit toi-même, avant de vouloir fabriquer une oeuvre d'art, mieux vaut savoir se servir des outils qu'on a choisit pour la fabriquer.
PS: même toi tu saurais voir où ce trouve ce qu'atomose veux savoir dans le bout de code
Edité par cassiope01 Le 28/07/2012 à 11h40
Citation:
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
Ou plus sûrement ce serait plutôt toi qui ne cherche pas à comprendre ni ce qui t'est expliqué, ni JustBasic.
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
Tout ça n'a absolument rien à voir avec moi ni un quelconque pouvoir d'abstraction. Je ne suis pas le seul à avoir expliqué tout un tas de chose en francais et en anglais, pour les quelles atomose, soit ne répond carrément pas, soit dit qu'il préfère continuer tel quel plutôt que d'échanger sur les propositions et chercher à comprendre le bénéfice qu'il pourrait en tirer tout en apprenant JB, ou bien expliquer tout simplement pourquoi ça ne lui convient pas: pas de pb.
Seulement maintenant il est un peu tard pour tout réécrire...!
Cela ne m'empêche pas cependant de continuer à lui donner des idées, pistes, ou même bouts de codes utiles.
Comme tu l'as dit toi-même, avant de vouloir fabriquer une oeuvre d'art, mieux vaut savoir se servir des outils qu'on a choisit pour la fabriquer.
PS: même toi tu saurais voir où ce trouve ce qu'atomose veux savoir dans le bout de code

Edité par cassiope01 Le 28/07/2012 à 11h40
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Le silence est parfois une façon de s'éviter l'humiliation de l'aveu de ne pas comprendre.
Quand au pouvoir d'abstraction....rien ne sert de nier....il faut partir à temps ....heu, non,..c'est rien ne sert de courir....
Quand au pouvoir d'abstraction....rien ne sert de nier....il faut partir à temps ....heu, non,..c'est rien ne sert de courir....

____________________
Roro
Roro
o_o
...
...
...
o_o
...
...
Hum en fait ce n'est pas que je ne répond pas ou que je fait comme bon me semble mais certaines de vos idées, bien que très utiles, ne sont pas compatible avec mon code (trop de changement à faire)...
Comme je l'ai déjà dit c'est mon premier programme avec JB (d'ailleurs un peu trop gros ^^") et je ne suis parti de rien. Je n'est pas l'occasion de passer 2 h sur mon PC a programmer, bien qu'il met déjà arrivé de le faire.
Le code n'a rien d'extraterrestre mais comme vous me lavez si souvent rappeler il est très dure de comprendre le code d'un autre.
Après il est vrai que j'ai parfois l'impression que je vous fait répéter, mais j'ai aussi l'impression que vous me parlé comme si je programmais depuis 10 ans
...
Mon code fait actuellement 1500 lignes. L'ajout du mode souris va provoquer une grosse "refonte" dont je ne pouvais pas m'occupé avant.
Pour ce qui est de la ligne en question pour le "1" pas bouger et "0" peut bouger je pense que ca ce situe dans "sub SimpleClick handle$" plus précisément "if cx+dpx(dir)>0 and cx+dpx(dir)<ncx and cy+dpy(dir)>0 and cy+dpy(dir)<ncy and cas(cx+dpx(dir),cy+dpy(dir)) = 0 and cas(cx+dpx(dir),cy+1+dpy(dir)) = 0 then ".
Mais je n'en suis pas sûre et d'ailleurs je ne comprend rien à cette ligne -_-"...
Merci a vous pour votre aide quand même
...
...
...
o_o
...
...
Hum en fait ce n'est pas que je ne répond pas ou que je fait comme bon me semble mais certaines de vos idées, bien que très utiles, ne sont pas compatible avec mon code (trop de changement à faire)...
Comme je l'ai déjà dit c'est mon premier programme avec JB (d'ailleurs un peu trop gros ^^") et je ne suis parti de rien. Je n'est pas l'occasion de passer 2 h sur mon PC a programmer, bien qu'il met déjà arrivé de le faire.
Le code n'a rien d'extraterrestre mais comme vous me lavez si souvent rappeler il est très dure de comprendre le code d'un autre.
Après il est vrai que j'ai parfois l'impression que je vous fait répéter, mais j'ai aussi l'impression que vous me parlé comme si je programmais depuis 10 ans

Mon code fait actuellement 1500 lignes. L'ajout du mode souris va provoquer une grosse "refonte" dont je ne pouvais pas m'occupé avant.
Pour ce qui est de la ligne en question pour le "1" pas bouger et "0" peut bouger je pense que ca ce situe dans "sub SimpleClick handle$" plus précisément "if cx+dpx(dir)>0 and cx+dpx(dir)<ncx and cy+dpy(dir)>0 and cy+dpy(dir)<ncy and cas(cx+dpx(dir),cy+dpy(dir)) = 0 and cas(cx+dpx(dir),cy+1+dpy(dir)) = 0 then ".
Mais je n'en suis pas sûre et d'ailleurs je ne comprend rien à cette ligne -_-"...
Merci a vous pour votre aide quand même

On n'est pas au tribunal. Pas d'humiliation à ressentir non plus. On est sur un forum de programmation loisir. Il faut relativiser.
Bien d'autre choses dans la vie sont mille fois plus importantes que tout ça.
Bien d'autre choses dans la vie sont mille fois plus importantes que tout ça.
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
gagné atomose.
Cette ligne controle simplement le contenu de la cas(x,y) suivante dans la direction en cour pour savoir si on reste dans la carte et si cette case est bien vide pour pouvoir y aller.
Je fais plus ou moins exactement ce genre de chose (controle de la souris, du clavier, et action qui en découlent) dans ce petit programme.
@+
Cette ligne controle simplement le contenu de la cas(x,y) suivante dans la direction en cour pour savoir si on reste dans la carte et si cette case est bien vide pour pouvoir y aller.
Je fais plus ou moins exactement ce genre de chose (controle de la souris, du clavier, et action qui en découlent) dans ce petit programme.
@+
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
J'ai trouvé comment faire ! Ça marche !!! Le code "souris" ce fusionne parfaitement avec mon code o_o !!!! je suis entrain de faire les cartes =) !
Je vous passe la version souris des que j'ai fini ^^ ! Merci pour l'aide !!!
ps : j'ai de gros problème a me connecter sur le forum, seulement sur le forum. Internet marche nickel mais des que je veux venir sur le forum ça crash =( . Un problème ?
Je vous passe la version souris des que j'ai fini ^^ ! Merci pour l'aide !!!
ps : j'ai de gros problème a me connecter sur le forum, seulement sur le forum. Internet marche nickel mais des que je veux venir sur le forum ça crash =( . Un problème ?
atomose:
Les 1200 cartes atomose
On verra cette dernière version à la souris peut-être en 2013
@+
je suis entrain de faire les cartes =) !
Je vous passe la version souris des que j'ai fini ^^ ! Merci pour l'aide !!!
Je vous passe la version souris des que j'ai fini ^^ ! Merci pour l'aide !!!
Les 1200 cartes atomose



On verra cette dernière version à la souris peut-être en 2013



@+
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Non les 5 premières ^^ !
Une fois que le système sera bien rodé ça ira vite
!
Une fois que le système sera bien rodé ça ira vite

Bonjour,
J'ai un assez gros soucis...
Le code pour les limites marche parfaitement mais il y a un problème avec une des directions. Lorsque je met par exemple 2222222 sur une ligne du bas et que je vais sur cette ligne rien ne ce passe o_o ! J'ai vérifié et ça marche pour la droite, la gauche et le haut mais le bas ya rien à faire ça ne veut pas =( ...
Voici la code avec lequel j'ai modifier mon code.
Si quelqu'un trouve la solution ça serait très sympa ^^
Code VB :
J'ai un assez gros soucis...
Le code pour les limites marche parfaitement mais il y a un problème avec une des directions. Lorsque je met par exemple 2222222 sur une ligne du bas et que je vais sur cette ligne rien ne ce passe o_o ! J'ai vérifié et ça marche pour la droite, la gauche et le haut mais le bas ya rien à faire ça ne veut pas =( ...
Voici la code avec lequel j'ai modifier mon code.
Si quelqu'un trouve la solution ça serait très sympa ^^
Code VB :
nomainwin WindowWidth = 1015 WindowHeight = 600 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) minimap1x=16:minimap1y=447:hb1x=-6:hb1y=422:curseurx=47:curseury=466 Global ncx, ncy, lc ncx = 68 'nbre de case en x ncy = 40 'nbre de case en y lc = 15 'dimension d'une case (carré) dim cas(ncx,ncy) 'déclaration de la variable tableau qui contiendra TOUTES les limites pour cette scène. open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b sprites$ = "minimap1 perso1d perso2d perso4d perso1s perso2s perso4s perso1q perso2q "+_ "perso4q perso1z perso2z perso4z hb1" for s = 1 to 14 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next loadbmp "JB", "bmp\map\maphum1.bmp" #3b "trapclose [quit]" #3b,"addsprite hb1 hb1" #3b,"spritexy hb1 ";hb1x;" ";hb1y #3b "drawbmp JB 0 0" #3b "down" #3b "background JB" unloadbmp "JB" #3b "color darkgray" for x = 1 to ncx 'dessin de la grille #3b "place ";x*lc;" 0" #3b "goto ";x*lc;" ";ncy*lc next for y = 1 to ncy #3b "place 0 ";y*lc #3b "goto ";ncx*lc;" ";y*lc next #3b "when leftButtonMove LeftButtonClick" 'clic gauche cliqué + mouvement de la souris #3b "drawsprites" wait sub LeftButtonClick handle$, MouseX, MouseY mx = int(MouseX / lc)+1 my = int(MouseY / lc)+1 if mx>1 and mx<ncx and my>1 and my<ncy then ' if cas(mx,my) = 0 then cas(mx,my) = 1 else cas(mx,my) = 0 cas(mx,my) = 1 '<------------------ c'est ici que la valeur de la case est mise à 1 call drawcell mx, my, cas(mx,my) end if end sub sub drawcell xx, yy, v if v then #3b "backcolor blue" #3b "place ";(xx-1)*lc+2;" ";(yy-1)*lc+2 #3b "boxfilled ";xx*lc-1;" ";yy*lc-1 ' option d'affichage valeur des cases... ' #3b "color black" ' #3b "place ";(xx-1)*lc+lc/3;" ";(yy-1)*lc+2*(lc/3)+2 ' #3b "|";v end sub [quit] close #3b open "map1.txt" for output as #grid for y=1 to ncy grid$="" for x=1 to ncx grid$ = grid$+str$(cas(x,y)) next #grid, grid$ next close #grid end
Salut atomose,
atomose:
Le code pour les limites marche parfaitement mais il y a un problème avec une des directions. Lorsque je met par exemple 2222222 sur une ligne du bas et que je vais sur cette ligne rien ne ce passe o_o ! J'ai vérifié et ça marche pour la droite, la gauche et le haut mais le bas ya rien à faire ça ne veut pas =( ...
Mon code fonctionne très bien, et de toute façon, tel qu'il est là, tu ne peux pas y rentrer une autre valeur que 1 et je suppose que tu as rentré les valeurs "2222222" à la main en éditant le fichier map1.txt !
J'en conclu donc que tu parles de l'exploitation du fichier map1.txt dans ton jeu !
Donc il faudrait que tu montres le bout de code de ton jeu qui exploite la valeur d'une case rencontrée dans les 4 directions pour voir où ça buggerait !?
Accessoirement, voici une légère modif de mon petit code, pour que tu puisses donner la valeur que tu veux (0 à 9 avec le pavé numérique) en temps réel, que la case prendra lors du traçé. Evidamment tu peux donner la valeur 0 qui joue donc le rôle de gomme !
Code VB :
atomose:
Le code pour les limites marche parfaitement mais il y a un problème avec une des directions. Lorsque je met par exemple 2222222 sur une ligne du bas et que je vais sur cette ligne rien ne ce passe o_o ! J'ai vérifié et ça marche pour la droite, la gauche et le haut mais le bas ya rien à faire ça ne veut pas =( ...
Mon code fonctionne très bien, et de toute façon, tel qu'il est là, tu ne peux pas y rentrer une autre valeur que 1 et je suppose que tu as rentré les valeurs "2222222" à la main en éditant le fichier map1.txt !
J'en conclu donc que tu parles de l'exploitation du fichier map1.txt dans ton jeu !
Donc il faudrait que tu montres le bout de code de ton jeu qui exploite la valeur d'une case rencontrée dans les 4 directions pour voir où ça buggerait !?
Accessoirement, voici une légère modif de mon petit code, pour que tu puisses donner la valeur que tu veux (0 à 9 avec le pavé numérique) en temps réel, que la case prendra lors du traçé. Evidamment tu peux donner la valeur 0 qui joue donc le rôle de gomme !

Code VB :
nomainwin WindowWidth = 1015 WindowHeight = 600 UpperLeftX=int((DisplayWidth-WindowWidth)/2) UpperLeftY=int((DisplayHeight-WindowHeight)/2) minimap1x=16:minimap1y=447:hb1x=-6:hb1y=422:curseurx=47:curseury=466 Global ncx, ncy, lc, valCase ncx = 68 'nbre de case en x ncy = 40 'nbre de case en y lc = 15 'dimension d'une case (carré) valCase = 1 'valeur de marquage à 1 par défaut dim cas(ncx,ncy) 'déclaration de la variable tableau qui contiendra TOUTES les limites pour cette scène. open "Le Donjon De Sheidra Map N°1" for graphics_nsb_nf as #3b sprites$ = "minimap1 perso1d perso2d perso4d perso1s perso2s perso4s perso1q perso2q "+_ "perso4q perso1z perso2z perso4z hb1" for s = 1 to 14 loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp" next loadbmp "JB", "bmp\map\maphum1.bmp" #3b "trapclose [quit]" #3b,"addsprite hb1 hb1" #3b,"spritexy hb1 ";hb1x;" ";hb1y #3b "drawbmp JB 0 0" #3b "down" #3b "background JB" unloadbmp "JB" #3b "color darkgray" for x = 1 to ncx 'dessin de la grille #3b "place ";x*lc;" 0" #3b "goto ";x*lc;" ";ncy*lc next for y = 1 to ncy #3b "place 0 ";y*lc #3b "goto ";ncx*lc;" ";y*lc next #3b "when leftButtonMove LeftButtonClick" 'clic gauche cliqué + mouvement de la souris #3b "when characterInput caseValue" ' pour donner à la case une nouvelle valeur de 0 à 9 avec le pavé numérique. #3b "drawsprites" wait sub caseValue handle$, key$ if instr("0123456789",key$) > 0 then valCase = val(key$) 'VALEUR que cette case prendra lorsqu'on trace les limites. end sub sub LeftButtonClick handle$, MouseX, MouseY mx = int(MouseX / lc)+1 my = int(MouseY / lc)+1 if mx>0 and mx<ncx and my>0 and my<ncy then 'if cas(mx,my) = 0 then cas(mx,my) = 1 else cas(mx,my) = 0 cas(mx,my) = valCase '<------------------ c'est ici que la valeur de la case est mise à 1 call drawcell mx, my, cas(mx,my) end if end sub sub drawcell xx, yy, v if v then #3b "backcolor blue" #3b "place ";(xx-1)*lc+2;" ";(yy-1)*lc+2 #3b "boxfilled ";xx*lc-1;" ";yy*lc-1 ' option d'affichage valeur des cases... #3b "color white" #3b "place ";(xx-1)*lc+lc/3;" ";(yy-1)*lc+2*(lc/3)+2 #3b "|";v end sub [quit] close #3b open "map1.txt" for output as #grid for y=1 to ncy grid$="" for x=1 to ncx grid$ = grid$+str$(cas(x,y)) next #grid, grid$ next close #grid end
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."
Web
Roland:
Là il a raison Roland : je me souvient lorsque j'ai commencé ( il n'y à pas longtemps de celà ) Tu me sortais des codes Casiope qui était vraiment très très hot et tu disais que c'était des codes "faciles"a pas chauffer
( print " salut " est un code facile )
Et je me souvient d'avoir était traité limite d'idiot ( et j'ai même été à la limite de me "casser" de ce forum à cause de tes messages po très simpas ) .
Certe c'est le passé mais s'il te plaie lorsque tu aides peux-tu expliquer à nous autres simples mortels tes codes de "BG" comme diraient les "jeunes" .
......Oulà j'aurais peux être pas du l'ouvrir là j'espère que sa ne va pas chauffer .......
Citation:
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
Ou plus sûrement ce serait plutôt toi qui ne cherche pas à comprendre ni ce qui t'est expliqué, ni JustBasic.
Cassiope. Il faudra que tu comprenne un jour que tout le monde ne possède pas ton pouvoir d'abstraction.
Qui est, SANS CONTESTATION possible, tout à fait HORS DU COMMUN.
Tu n'a pas à t'en défendre, puisque tu n'y est pour rien. Dame nature, donne aux uns et autres selon ses caprices.
Atomose et moi-meme, ne sommes ni des imbéciles, ni des désinvoltes. Nous avons juste un peu de mal avec tes codes d'extraterrestre, qui pour toi , sont d'une limpidité de crystal, et pour nous, des abymes.
....Cordial salut......
Là il a raison Roland : je me souvient lorsque j'ai commencé ( il n'y à pas longtemps de celà ) Tu me sortais des codes Casiope qui était vraiment très très hot et tu disais que c'était des codes "faciles"a pas chauffer
( print " salut " est un code facile )
Et je me souvient d'avoir était traité limite d'idiot ( et j'ai même été à la limite de me "casser" de ce forum à cause de tes messages po très simpas ) .
Certe c'est le passé mais s'il te plaie lorsque tu aides peux-tu expliquer à nous autres simples mortels tes codes de "BG" comme diraient les "jeunes" .
......Oulà j'aurais peux être pas du l'ouvrir là j'espère que sa ne va pas chauffer .......
____________________
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute
Si le meilleurs langage de programmation existe, alors le Just Basic est loin devant.
Ne me tappez pas dessus ! Je débute

Web
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie