Forum Liberty Basic France

Le 05/09/2012 à 15h03

Libertynaute Avancé

Groupe: Membre

Inscrit le: 08/06/2012
Messages: 270
Reprise du message précédent

Roland:
Citation:
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 :D

Web    
Le 05/09/2012 à 20h48

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
C'est surtout que je ne vois pas ce que tes remarques viennent faire ici comme un cheveux sur la soupe ?
Ici c'est le post d'Atomose pour la mise au point de son programme.

Moi c'est les post que je fais pour aider et qui ne sont même pas lu qui aurait tendance à me faire fuir, ou encore les dialogues de sourd stériles, ou encore les gens qui demandent plein de choses sans avoir seulement pris la peine de parcourir l'aide ou le tuto très bien fait de ce forum.

Lorsqu'elles sont constructives et intelligentes, les critiques ne me dérangent absolument pas, et j'ai plutôt tendance à penser qu'il n'y a que du respect à avoir pour les gens qui aident et partagent.
____________________
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 14/09/2012 à 15h07

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 437
Salut a tous !

Me revoilà avec mes problèmes XD !

Bon puisque vous ne comprenez pas ce que je veux vous dire je vous est fabriquer une réplique du jeu mais avec une seule map et très allégé (1.1Mo) .

Vous pourrez voir si le fichier .txt que les limites sont en 2 et 3. La limite avec 3 marche, celle avec 2 ne marche pas. J'ai testé en mettant des deux en ordonné et la ça marche . J'ai aussi essayé de mettre en abscisse mais au dessus du personnage et la ça marche aussi. Donc le problème vient de la direction qui va vers le bas. en effet que ça soit 1-2-3-4-etc.. la limite ne marche pas. Le personnage s’arrête certes mais l'action demandé ne suit pas =(.

Voici le lien du fichier : 2.5 test.zip



Edité par atomose Le 14/09/2012 à 15h08
____________________
Yo !

MSN Web    
Le 14/09/2012 à 17h22

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Salut, si j'étais toi, je ferais afficher sur la carte la valeur des cases sur clic droit..
ça permettrait de vérifier la validité du fichier txt
____________________
Roro

   
Le 14/09/2012 à 17h51

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
ça fonctionne plutôt bien, à condition que tu bouges la souris avec le bouton gauche appuyé, car tu utilises "when leftButtonMove SimpleClic"
Dans ton cas il serait préférable d'utiliser plutôt "when leftButtonDown SimpleClic".

Désactiver le "when ..." dans la sub SimpleClic n'est pas spécialement nécessaire.

Comment as-tu créé le fichier map2.txt ?
Il n'est pas nécessaire que toutes les cases soit implémentées, seulement les limites suffisent, les autres peuvent rester à zéro.

J'ai "retouché" très légèrement le code pour y ajouter l'appui sur quelques touches...

Presse "m" par exemple...

Code VB :
    nomainwin
    WindowWidth = 1015
    WindowHeight = 600
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
    Global ncx, ncy, lc, SpriteCourant
    hb1x=-6
    hb1y=422
    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 ; color white ; backcolor black"
    #3b "home; posxy CenterX CenterY"
    Gwidth = CenterX * 2
    Gheight = CenterY * 2
    ncx = int(Gwidth/lc)   'nbre de case en x
    ncy = int(Gheight/lc)   'nbre de case en y

   ' ncx = 68   'nbre de case en x
   ' ncy = 40   'nbre de case en y
    lc = 15
    ncx = int(Gwidth/lc)   'nbre de case en x
    ncy = int(Gheight/lc)   'nbre de case en y

    dim cas(ncx,ncy)  'variable tableau de toutes les limites de la map.

      if fileExist2(DefaultDir$, "map2.txt") then
        open "map2.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 'map2.txt'...!"
      end if
 
    loadbmp "JB", "bmp\map\maphum2.bmp"
    sprites$ = "perso1d perso2d perso4d perso1s perso2s perso4s "+_
               "perso1q perso2q perso4q perso1z perso2z perso4z hb1"
    for s = 1 to 13
        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"
    #3b,"addsprite hb1 hb1"
    #3b,"spritexy hb1 ";hb1x;" ";hb1y
 
    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 "setfocus"
    #3b "when leftButtonDown SimpleClick"
    #3b "when characterInput Touches"
 
WAIT
 
sub Touches handle$, Inkey$
    key$ = Inkey$
    select case
    case lower$(key$) = "e"
        open "LastMap.txt" for output as #grid
        for y = 1 to ncy
            case$ = ""
            for x = 1 to ncx
                case$ = case$ + str$(cas(x,y))
            next
            #grid, case$
        next
        close #grid
        notice "Enregistrement"+chr$(13)+"limites de la carte enregistrées dans le fichier"+chr$(13)+"LastMap.txt"
    case lower$(key$) = "m"
        for y = 1 to ncy
            for x = 1 to ncx
                if cas(x,y) then #3b "place ";(x*lc)-lc/2;" ";y*lc;" ;|";cas(x,y)
            next
        next
    end select
end sub
 
sub SimpleClick handle$, MouseX, MouseY    'clic sur un point de destination...
    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 cas(cx+dpx(dir),cy+dpy(dir)) = 2 then notice "aller map 1"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 3 then notice "aller map 3"
        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
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 hb1"
    for s = 1 to 13
        unloadbmp word$(sprites$,s)
    next
    close #3b
    END
end sub
 
function fileExist2(path$,filename$)
    dim info$(10, 10)
    files path$,filename$, info$(
    fileExist2 = val(info$(0, 0))
   ' if val(info$(0, 0)) > 0 then
   '     fileExist2 = 1
   ' else
   '     fileExist2 = 0
   ' end if
end function
 



@+



Edité par cassiope01 Le 16/09/2012 à 06h54
____________________
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 14/09/2012 à 20h12

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Et moi, j'ai trouvé à la quatrième ligne aprés le "do" un "+1" (au fond à droite :lol au dernier "and")
Si j'enlève le +1 le bonhomme demande la map1 quand il se presente à la porte du bas



Edité par Roland Le 14/09/2012 à 20h21
____________________
Roro

   
Le 15/09/2012 à 08h46

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
les 2 derniers "and" de cette ligne servent à ce que le personnage anticipe les limites (ne les dépasse pas), sinon il risque de se retrouver bloqué car entouré de limites !

Si tu presses la touche "m" tu comprendras mieux ;)

@+
____________________
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 15/09/2012 à 10h09

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Dans ce code, et sauf erreur de ma part, les and vivent en couples (se qui se passe pour x doit aussi se passer pour y ) or, et c'est ce qui a attiré mon attention, le "+1" du dernier and est tout seul.
J'en ai conclu que: soit il manquait un "+1" à l'avant dernier, soit: ce "°1" était de trop.
J'ai commencé par le suprimmer, et j'ai constaté que le mal dont se plaint Atomose ( non détection du "2" lors du déplacement vers le bas ), avait disparu.
J'ai alors disposé d'autres limites, avec d'autres conséquences. Tout fonctionne ok

Par contre, en bidouillant, ( et dans le seul but de mieux comprendre les sprites,), j'ai fait ce qui suit.
Le but: faire danser sur place un clone du bonhomme, pendant que celui-ci est arreté.
Ce que je ne comprend pas: pendant que le clone danse, l'original piétinne sur place, alors que sa boucle de fonctionnement s'est arrété au "until' Je doit commettre une erreur.
'§§§§§§ ---> Lignes ajoutées ou modifiées

Code JB :
 
 
    nomainwin
    WindowWidth = 1015
    WindowHeight = 600
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
    Global ncx, ncy, lc, SpriteCourant
    Global sortir  '§§§§§§§§§§§§
    hb1x=-6:hb1y=422
    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]"
    #3b "when rightButtonDown [valeur]"  '§§§§§§§§§§§§§§
 
    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.
 
      if fileExist2(DefaultDir$, "map2.txt") then
        open "map2.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 'map2.txt'...!"
      end if
 
    loadbmp "JB", "bmp\map\maphum2.bmp"
    sprites$ = "perso1d perso2d perso4d perso1s perso2s perso4s "+_
               "perso1q perso2q perso4q perso1z perso2z perso4z hb1"
    for s = 1 to 13
        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 "addsprite persou1 perso1s"  '§§§§§§§§
    #3b "addsprite persou2 perso4d"  '§§§§§§§§§
    #3b "addsprite persou3 perso4q"  '§§§§§
    #3b "addsprite persou4 perso4s" '§§§§§
 
    #3b "down"
    #3b "background JB"
    '#3b,"addsprite hb1 hb1"  '§§§§§
    '#3b,"spritexy hb1 ";hb1x;" ";hb1y  '§§§§§§
 
    for SpriteCourant = 1 to 4
        #3b "spritexy perso";SpriteCourant;" ";500;" ";200   'place tous les sprites là.
        #3b "cyclesprite perso";SpriteCourant;" 1"
        #3b "spritevisible perso";SpriteCourant;" off"
    next
 
    SpriteCourant = 4
    #3b "spritevisible perso";SpriteCourant;" on"
    #3b "drawsprites"                      'affiche le sprite courant.
    #3b "when leftButtonMove SimpleClick"
 
wait
 
sub SimpleClick handle$, MouseX, MouseY    '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+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 cas(cx+dpx(dir),cy+dpy(dir)) = 2 then notice "aller map 1"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 3 then notice "aller map 3"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 6 then notice "ça marche"
        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=1
    #3b "when leftButtonMove SimpleClick"
         if sortir=1 then call freredanse  '§§§§§§§§§§§
end sub
 
  [valeur]   '§§§§§§§§§§§+++++++
      Print #3b, "Place ";MouseX-30;" ";MouseY-50    'a suprimer
      #3b "color white"
      #3b "backcolor black"
      Print #3b, "\";cas(cx+dpx(dir),cy+dpy(dir))
  wait     '§§§§§§§§§§§§§§§§------------
  sub freredanse    '§§§§§§§§+++++++++
   while sortir=1
     #3b "spritexy persou1 500 200"
     #3b "spritevisible persou1 on"
     #3b "drawsprites"
     call pause 200
     #3b "spritevisible persou1 off"
     #3b "spritexy persou2 500 200"
     #3b "spritevisible persou2 on"
     #3b "drawsprites"
     call pause 200
     #3b "spritevisible persou2 off"
     #3b "spritexy persou3 500 200"
     #3b "spritevisible persou3 on"
     #3b "drawsprites"
     call pause 200
          #3b "spritevisible persou2 off"
     #3b "spritexy persou1 500 200"
     #3b "spritevisible persou1 on"
     #3b "drawsprites"
     call pause 200
     #3b "spritevisible persou3 off"
     #3b "spritexy persou4 500 200"
     #3b "spritevisible persou4 on"
     #3b "drawsprites"
     call pause 200
     #3b "spritevisible persou4 off"
     wend
  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 fileExist2(path$,filename$)
    dim info$(10, 10)
    files path$,filename$, info$(
    if val(info$(0, 0)) > 0 then
        fileExist2 = 1
    else
        fileExist2 = 0
    end if
end function
 
 




Edité par Roland Le 15/09/2012 à 10h24
____________________
Roro

   
Le 15/09/2012 à 12h19

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
c'est vrai qu'en définitive, il vaut mieux retirer le dernier "and"... ça ne colle plus trop avec les contrôles qui suivent !

@+
____________________
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 15/09/2012 à 23h20

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 437
Roland ... Je TAIME O_O !!!!
....
....
.... =)
____________________
Yo !

MSN Web    
Le 16/09/2012 à 10h23

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Ne parle pas trop vite Atomose !.... Si tu savais ce que je lui fais à ton code. :miam :miam :miam
....... Bidooouuillaahache !!!
____________________
Roro

   
Le 17/09/2012 à 09h53

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Atomose, comment as-tu créé le fichier map2.txt ?

@+
____________________
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 17/09/2012 à 10h29

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 437
Hum oui pk ?
____________________
Yo !

MSN Web    
Le 19/09/2012 à 09h17

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
pk koa ???

Comme tu le sais il y a vraiment peu de monde pour t'aider sur ce forum.
Si tu ne prends pas la peine de lire les posts avant d'y répondre, il va y en avoir encore moins.



Edité par cassiope01 Le 19/09/2012 à 09h24
____________________
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 19/09/2012 à 10h43

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Hé, Cassiope, à voir l'éppaisseur de la barrière de "2", d'aprés moi, il a du les mettre à la main dans le fichier, suite à une crise de désespoir ( ou de colère), comme j'en fais moi-mème de temps à autres, quand JB fait la sourde oreille.
Cela a pu lui causer une disjonction neuronale de type: pk ,( bénigne ) Il faut attendre que toutes les bulles soient remontées à la surface. :hehe
____________________
Roro

   
Le 19/09/2012 à 11h00

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
J'étais justement prêt à lui re-proposer le code amélioré qui lui permettrait de tout gérer sans avoir besoin d'éditer le fichier txt (ce qui me semble compliqué pour bien faire correspondre les limites à la carte), mais là... :@

@+



Edité par cassiope01 Le 19/09/2012 à 11h01
____________________
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 19/09/2012 à 15h00

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2489
Hey ! mais moi ça m'interresse. Le bonhomme est un peu petit, mais il peut se passer beaucoup de chose dans cette foret. ( si Atomose vaut bien nous refiler ses autres maps, qu'on voie si il n'y aurait pas du foncier libre )
De plus, cette technique de detection de limites peut etre exploitée pour bien d'autres choses, et me parait digne d'attention.
____________________
Roro

   
Le 06/10/2012 à 00h12

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 437
Dsl j'avais compris "as tu créé le fichier map2.txt" d'ou ma réponse "hum oui pk? " ^^.

Je travail toujours dessus, mais je dois réécrire tout le code puisque je passe du mode clavier au mode sourie. De plus j'ai pas mal de taf avec les cours donc moins de temps à consacrer sur JB =( ! Ha et je programme aussi en BASIC sur iphone ^^ donc ca me prend encore du temps.

Bref, ca avance mais lentement. Je n'est plus aucuns problèmes maintenant. Je vous poste la version stable dès que j'aurai eu le temps de la finir.
Je suis pas contre un code "amélioré" pour le déplacement du personnage =) ! j'ai vu quelques bugs de déplacement dés fois (lorsqu'il rencontre des limites) mais rien de grave.

Pour la ligne de 2, oui je l'ai fai a la main. Simplement par ce que c'est plus rapide qu'avec l'éditeur de limite ^^.

Merci à vous pour votre aide ;) !

____________________
Yo !

MSN Web    
Le 06/10/2012 à 10h22

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Déplacement du personnage à la souris ET au clavier :

Je me suis basé sur ton "2.5 test.zip"

Tu dois renommer ton fichier "map2.txt" en "maphum2.txt" et le mettre sous /bmp/map en compagnie du fichier image de la carte "maphum2.bmp".

En appuyant une deuxième fois sur la même touche de direction : le personnage s'arrête.

Code VB :
' http://libertybasic.fr/forum/topic.php?id=39&pt=0&idm=2286&quote=#m2286
    nomainwin
    WindowWidth = 1015
    WindowHeight = 600
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
    GLOBAL ncx, ncy, lc, SpriteCourant, dir
    hb1x=-6
    hb1y=422
    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 ; color white ; backcolor black"
    #3b "home; posxy CenterX CenterY"
    Gwidth = CenterX * 2
    Gheight = CenterY * 2
    ncx = int(Gwidth/lc)   'nbre de case en x
    ncy = int(Gheight/lc)   'nbre de case en y
    lc = 15
    dir = 2
    ncx = int(Gwidth/lc)   'nbre de case en x
    ncy = int(Gheight/lc)   'nbre de case en y
    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 de direction (en case), de la variables tableau

    dim info$(1,1)
    dim cas(ncx,ncy)  'variable tableau de toutes les limites de la map.

    if fileExist2(DefaultDir$, "bmp\map\maphum2.txt") then
        open "bmp\map\maphum2.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 'bmp\map\maphum2.txt'...!"
    end if
 
    loadbmp "JB", "bmp\map\maphum2.bmp"
    sprites$ = "perso1d perso2d perso4d perso1s perso2s perso4s "+_
               "perso1q perso2q perso4q perso1z perso2z perso4z hb1"
    for s = 1 to 13
        loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp"
    next
    #3b "addsprite perso1 perso1z perso2z perso4z"  'création des 4 sprites du personnage
    #3b "addsprite perso2 perso1d perso2d perso4d"  '   pour chaque future direction de déplacement...
    #3b "addsprite perso3 perso1s perso2s perso4s"
    #3b "addsprite perso4 perso1q perso2q perso4q"
    #3b "drawbmp JB 0 0"
    #3b "down"
    #3b "background JB"
    #3b,"addsprite hb1 hb1"
    #3b,"spritexy hb1 ";hb1x;" ";hb1y
 
    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 "setfocus"
    #3b "when leftButtonDown SimpleClick"
    #3b "when characterInput Touches"
 
WAIT
 
sub Touches handle$, Inkey$
    key$ = right$(Inkey$,1)
    select case
    case key$ = chr$(27) :call Quit "#3b"  'ESC
    case key$ = chr$(_VK_UP)    : if dir=1 then dir=0 else dir=1   ' si même flêche que précédemment : dir=0 : le personnage s'arrête.
    case key$ = chr$(_VK_RIGHT) : if dir=2 then dir=0 else dir=2   '
    case key$ = chr$(_VK_DOWN)  : if dir=3 then dir=0 else dir=3   '
    case key$ = chr$(_VK_LEFT)  : if dir=4 then dir=0 else dir=4   '
    case lower$(key$) = "m"    ' juste pour visualiser les limites de la carte actuelle pour la mise au point.
        for y = 1 to ncy
            for x = 1 to ncx
                if cas(x,y) then #3b "place ";(x*lc)-lc/2;" ";y*lc;" ;|";cas(x,y)
            next
        next
        exit sub
    case else
        exit sub
    end select
    call action 0, 0
end sub
 
sub SimpleClick handle$, MouseX, MouseY    'clic sur un point de destination...
    #3b "spritexy? perso";SpriteCourant;" cursX cursY"   'coordonnées actuelles du personnage   <------
    mX = MouseX
    mY = MouseY
    dir = direction(cursX, cursY, mX, mY)  'donne la direction du déplacement... destiné à utiliser le sprite adéquat.
    call action mX, mY
end sub
 
sub action destX, destY
    icp = 6   'incrément de déplacement en pixels.
    #3b "spritexy? perso";SpriteCourant;" cursX cursY"   'coordonnées actuelles du personnage   <------
    for s=1 to 4
        #3b "spritevisible perso";s;" off"
    next
    if dir then SpriteCourant = dir   ' si nouvelle direction -> sprite du personnage pour cette direction.
    #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 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 cas(cx+dpx(dir),cy+dpy(dir)) = 2 then notice "aller map 1"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 3 then notice "aller map 3"
 
        if destX then   ' si utisation de la souris.
            if (dir = 2 and nx >= destX) or (dir = 4 and nx <= destX) or (dir = 1 and ny <= destY) or (dir = 3 and ny >= destY) then sortir = 1
        end if
    loop until sortir or dir = 0
end sub
 
function direction(dx,dy,ax,ay)    'fonction qui donne la direction du déplacement... destinée à utiliser le sprite adéquat.
    dirX = ax - dx
    dirY = ay - dy
    if abs(dirX) < abs(dirY) then sens = 1 else sens = 2   '1 = vertical  2 = horizontal
    select case
    case sens = 1 : if dirY > 0 then direction = 3 else direction = 1   'direction à prendre: 1 = HAUT,   3 = BAS
    case sens = 2 : if dirX > 0 then direction = 2 else direction = 4   '                     2 = DROITE, 4 = GAUCHE
    end select
end function
 
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 hb1"
    for s = 1 to 13
        unloadbmp word$(sprites$,s)
    next
    close #3b
    END
end sub
 
function fileExist2(path$,filename$)
   ' dim info$(10, 10)  'doit avoir été déclarée en début de code
    files path$,filename$, info$(   ' en général path$ = DefaultDir$
    fileExist2 = val(info$(0, 0))
end function




Edité par cassiope01 Le 06/10/2012 à 10h46
____________________
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 06/10/2012 à 10h32

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Editeur de carte :

La carte "maphum2.bmp" est sous \bmp (tu peux changer ça dans le code ! )
Le fichier édité s'appelle "LastMap.txt", et doit être au même endroit que ce code.

LastMap.txt (fait "enregistrer la cible du lien sous" pour le récupérer)

Quand tu quitteras l'éditeur et si tu as modifié et enregistré les limites, tu devras ensuite renommer le fichier "LastMap.txt" en "maphum2.txt" et replacer tout ça au bon endroit dans l'arborescence de ton jeu...

Code VB :
 
nomainwin
 
    WindowWidth = 880
    WindowHeight = 538
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
 
    Global ncx, ncy, lc, SpriteCourant, caseValue
 
    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"
    Gwidth = CenterX * 2
    Gheight = CenterY * 2
    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 de direction , pour la variables tableau
    ncx = int(Gwidth/lc)+1   'nbre de case en x
    ncy = int(Gheight/lc)+1   'nbre de case en y
    dim cas(ncx,ncy)  'variable tableau de toutes la map.
    dim info$(1,1)
    caseValue = 1   ' valeur de la limite par défaut = mur.

    loadbmp "MAP", "bmp\maphum2.bmp"  ' LA CARTE à éditer.

    sprites$ = "perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s "+_
               "perso1q perso2q perso3q perso4q perso1z perso2z perso3z perso4z"
    for s = 1 to 16
        loadbmp word$(sprites$,s), "bmp\"+word$(sprites$,s)+".bmp"
    next
    #3b "addsprite perso1 perso1z perso2z perso3z perso4z"  'création des 4 sprites pour chaque futures direction de déplacement...
    #3b "addsprite perso2 perso1d perso2d perso3d perso4d"
    #3b "addsprite perso3 perso1s perso2s perso3s perso4s"
    #3b "addsprite perso4 perso1q perso2q perso3q perso4q"
 
    #3b "down"
    #3b "drawbmp MAP 0 0"
    #3b "color darkgray"
    for x = 1 to ncx
        #3b "place ";x*lc;" 0"
        #3b "goto ";x*lc;" ";ncy*lc  'traits verticaux de la grille
    next
    for y = 1 to ncy
        #3b "place 0 ";y*lc
        #3b "goto ";ncx*lc;" ";y*lc  'traits horizontaux de la grille
    next
 
    #3b "getbmp bckgrd1 0 0 ";Gwidth;" ";Gheight   'mémorise la grille pour servir de background au sprite "curs"
    #3b "background bckgrd1"
 
    pCX = 14  ' position initiale du personnage (en cases)
    pCY = 18
 
    for SpriteCourant = 1 to 4
        #3b "spritexy perso";SpriteCourant;" ";pCX*lc;" ";pCY*lc   'place tous les sprites du personnage 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 "setfocus"
 
    if fileExist(DefaultDir$, "LastMap.txt") then         ' vérifie l'existance d'un fichier des limites.
        open "LastMap.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 " "+chr$(13)+"Pas de fichier 'LastMap.txt'...!"+chr$(13)+"Il faut donc traçer les limites de cette carte..."
    end if
    call montreLimites
    call aide
 
    #3b "when leftButtonMove SimpleClick"    'pour tracer et enregistrer les limites.
    #3b "when leftButtonDouble DoubleClick"    'pour déplacer le personnage à la souris...
    #3b "when characterInput Touches"        'pour déplacer le personnage avec les flêches. la même flêche l'arrête.

wait
 
sub Touches handle$, Inkey$
    key$ = right$(Inkey$,1)
    select case
    case key$ = chr$(27) : call Quit "#3b"  'ESC
    case key$ = chr$(32) : #3b "background MAP ; drawsprites"   ' ESPACE
    case instr("0123456789",key$) > 0 : caseValue = val(key$)   'VALEUR que cette case prendra lorsqu'on trace les limites.
    case lower$(key$) = "g" : #3b "background bckgrd1 ; drawsprites"
    case lower$(key$) = "h" : call aide
    case lower$(key$) = "m" : call montreLimites
    case lower$(key$) = "e"
        confirm "Enregistrer les limites de cette carte ?"; answer$
        if answer$ = "yes" then
            ' le fichier des limites actuelles est créé.
            open "LastMap.txt" for output as #grid
            for y = 1 to ncy
                case$ = ""
                for x = 1 to ncx
                    case$ = case$ + str$(cas(x,y))
                next
                #grid, case$
            next
            close #grid
            notice "Enregistrement"+chr$(13)+"limites de la carte enregistrées dans le fichier"+chr$(13)+"LastMap.txt"
        end if
    end select
end sub
 
sub montreLimites
    #3b "backcolor blue; color yellow"
    for y = 1 to ncy
        for x = 1 to ncx
            if cas(x,y) then #3b "place ";(x*lc)-lc/2-2;" ";y*lc-3;" ;|";cas(x,y)
        next
    next
end sub
 
sub aide
    WindowWidth = 660
    WindowHeight = 390
    UpperLeftX=int((DisplayWidth-WindowWidth)/10)
    UpperLeftY=int((DisplayHeight-WindowHeight)/10)
    statictext #help.1 "TOUCHES UTILES :",                                                                    10, 25, WindowWidth, 25
    statictext #help.2 "-  m   =   affiche les limites (le contenu du fichier .txt).",                        10, 65, WindowWidth, 25
    statictext #help.3 "-  Espace   =   ne montre que la carte.",                                             10, 95, WindowWidth, 25
    statictext #help.4 "-  0123456789  =   pavé numérique -> valeur de la case lors du traçage des limites.", 10, 125, WindowWidth, 25
    statictext #help.5 "-  e   =   Enregistre les limites actuelles dans le fichier LastMap.txt.",            10, 155, WindowWidth, 25
    statictext #help.6 "Esc   =   quitter sans rien modifier (= croix de la fenêtre en haut à gauche).",      10, 185, WindowWidth, 25
    statictext #help.7 "Pour TRACER une limite : maintient du clic gauche + déplacer la souris.",             10, 215, WindowWidth, 25
    statictext #help.8 "Pour déplacer le personnage : Double-clic sur la destination voulue.",                10, 245, WindowWidth, 25
    statictext #help.9 "-  g   =   grille.",                                                                  10, 275, WindowWidth, 25
    statictext #help.10 "-  h   =   cette aide.",                                                             10, 325, WindowWidth, 25
    open "Aide" for dialog_nf_modal as #help
    #help "trapclose [QuitAide]"
    #help.1 "!font Courrier_New 12 bold underscore"
    for t = 2 to 10 : win$ = "#help.";t : #win$ "!font Courrier_New 12 bold" : next
    wait
    [QuitAide]
    close #help
    WindowWidth = 880     ' redonne les valeurs d'origine à la fenêtre principale.
    WindowHeight = 538
    UpperLeftX=int((DisplayWidth-WindowWidth)/2)
    UpperLeftY=int((DisplayHeight-WindowHeight)/2)
end sub
 
sub SimpleClick handle$, MouseX, MouseY
    mx = int(MouseX / lc)+1
    my = int(MouseY / lc)+1
    #3b "spritevisible perso";SpriteCourant;" off; drawsprites"
    if mx>0 and mx<ncx and my>0 and my<ncy then
        cas(mx,my) = caseValue
        call drawcell mx, my, cas(mx,my)
    end if
    unloadbmp "bckgrd1"   'décharge la RAM de l'image...
    #3b "getbmp bckgrd1 0 0 ";WindowWidth;" ";WindowHeight   'mémorise la grille pour servir de background au sprite
    #3b "background bckgrd1"
    #3b "spritevisible perso";SpriteCourant;" on; drawsprites"
end sub
 
sub DoubleClick handle$, MouseX, MouseY    'double clic sur un point de destination...
    #3b "when leftButtonMove"
    mX = MouseX
    mY = MouseY
    icp = 6   'incrément de déplacement en pixels.
    #3b "spritexy? perso";SpriteCourant;" cursX cursY"   'coordonnées actuelles du personnage   <------
    dir = direction(cursX,cursY,mX,mY)    'fonction qui donne la direction du déplacement... destinée à utiliser le sprite adéquat.
    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 then '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 cas(cx+dpx(dir),cy+dpy(dir)) = 2 then notice "aller map 1"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 3 then notice "aller map 3"
        if cas(cx+dpx(dir),cy+dpy(dir)) = 4 then notice "Aie ! c'est des cailloux !!"
 
        if (dir = 2 and nx >= mX) or (dir = 4 and nx <= mX) or (dir = 1 and ny <= mY) or (dir = 3 and ny >= mY) then sortir = 1  'on est arrivé en l'endroit du clic de souris...
    loop until sortir
    #3b "when leftButtonMove SimpleClick"
end sub
 
function direction(dx,dy,ax,ay)    'fonction qui donne la direction du déplacement... destinée à utiliser le sprite adéquat.
    dirX = ax - dx
    dirY = ay - dy
    if abs(dirX) < abs(dirY) then sens = 1 else sens = 2   '1 = vertical  2 = horizontal
    select case
    case sens = 1 : if dirY > 0 then direction = 3 else direction = 1   'direction à prendre: 1 = HAUT,   3 = BAS
    case sens = 2 : if dirX > 0 then direction = 2 else direction = 4   '                     2 = DROITE, 4 = GAUCHE
    end select
end function
 
sub drawcell xx, yy, v      'montre le contenu d'une case
    #3b "backcolor blue; color 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 yellow"
    #3b "place ";(xx*lc)-lc/2-2;" ";yy*lc-3;" ;|";v
end sub
 
sub pause temp
    timer temp, [suit]
    wait
    [suit]
    timer 0
end sub
 
function fileExist(path$,filename$)
    files path$,filename$, info$(
    fileExist = val(info$(0, 0))
end function
 
sub Quit handle$
    unloadbmp "MAP"
    sprites$ = "perso1d perso2d perso3d perso4d perso1s perso2s perso3s perso4s "+_
               "perso1q perso2q perso3q perso4q perso1z perso2z perso3z perso4z"
    for s = 1 to 16
        unloadbmp word$(sprites$,s)
    next
    close #3b
    END
end sub
 


Il sera très facile de modifier cet éditeur pour que tu puisses choisir au départ dans une boite de dialogue la carte à éditer dans le répertoire des cartes, puis d'enregistrer les modif du fichier txt correspondant.

--



Edité par cassiope01 Le 06/10/2012 à 10h50
____________________
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 21/12/2012 à 21h27

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 437
Salut a tous !

Bonnes fêtes à tous, petite question tout de même ^^ !

peut-on "rafraichir" un bouton ?

voici le sujet :

test1 = 125
button #Era.text10, "";test1, [nf], LR, 403, 23,30,15

le but étant que avec timer, test1 change de valeur et que le bouton suive (parce que pour le moment il faut fermer la fenêtre et la ré-ouvrir pour que cela change la valeur.

Etant donné le nombre important de génie de BASIC sur ce site je me demande si quelqu'un pourrait avoir la gentillesse de me donner la solution =) !

____________________
Yo !

MSN Web    

 |  |

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