Forum Liberty Basic France
• Index
Reprise du message précédent
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 .......
Roland:
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
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.
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."
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 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
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
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
ça permettrait de vérifier la validité du fichier txt
____________________
Roro
Roro
ç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 :
@+
Edité par cassiope01 Le 16/09/2012 à 06h54
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."
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
____________________
Roro
Roro
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
@+
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."
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
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 :
Edité par Roland Le 15/09/2012 à 10h24
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
Roro
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."
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 ... Je TAIME O_O !!!!
....
....
.... =)
....
....
.... =)
Ne parle pas trop vite Atomose !.... Si tu savais ce que je lui fais à ton code.
....... Bidooouuillaahache !!!



....... Bidooouuillaahache !!!
____________________
Roro
Roro
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."
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 oui pk ?
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
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."
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
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.
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.

____________________
Roro
Roro
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

@+
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."
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
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.
De plus, cette technique de detection de limites peut etre exploitée pour bien d'autres choses, et me parait digne d'attention.
____________________
Roro
Roro
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
!
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

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 :
Edité par cassiope01 Le 06/10/2012 à 10h46
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"e=#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."
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
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 :
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
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."
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 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 =) !
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 =) !
• 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