Forum Liberty Basic France
• Index
Reprise du message précédent
Christophe:
Petit edit du lendemain : je dis "je", mais on pourrait bien dire "maintenant que nous savons détecter la présence de la souris", si on peut étudier à fond les combobox pour voir si elles sont utilisables ici, allons-y...
Non non, tu peux dire "je" puisque Roland et moi savions déjà le faire
En y repensant je me demande si une LISTBOX ne serait-elle pas mieux appropriée ? mais bon, c'est presque pareil...
Je pense que la détection du passage de la souris ne devrait simplement QUE déterminer de nouvelles coordonnées au COMBOBOX ou à la LISTBOX:
- dès que de nouvelles coordonnées valident sont déterminées :
- on désactive la détection de la souris,
- on affiche la LISTBOX (après l'avoir mis à jour avec tous les paramètres liés à sa position dans la fable) tant que le joueur n'a pas sélectionné un mot dans la liste,
- puis on fait disparaitre la LISTBOX (en la positionnant en dehors de la fenêtre par exemple: voir mon dernier bout de code modifié... plus haut),
- on affiche le mot sélectionné,
- et on réactive la détection à la souris...
@Roland, je ne vois pas de différence de comportement entre la zone 3 et les autres ???
Roland:
Avec ma méthode des sprites il suffit de les compter à la lecture du fichier texte pour savoir le nombre de sprites à créer... On met leur n° dans leur nom et on connaitra ainsi leur n° avec SPRITECOLLIDE Curs,list$...
Ce nombre sera d'ailleurs essentiel à connaître car il conditionnera la taille de plusieures variables tableaux : les listes de mots, les coordonnées x,y de ces listes qui sont aussi celles des zones pour la souris, etc...
Bonne journée
Gilles.
Edité par cassiope01 Le 14/05/2015 à 10h50
Christophe:
Petit edit du lendemain : je dis "je", mais on pourrait bien dire "maintenant que nous savons détecter la présence de la souris", si on peut étudier à fond les combobox pour voir si elles sont utilisables ici, allons-y...
Non non, tu peux dire "je" puisque Roland et moi savions déjà le faire

En y repensant je me demande si une LISTBOX ne serait-elle pas mieux appropriée ? mais bon, c'est presque pareil...
Je pense que la détection du passage de la souris ne devrait simplement QUE déterminer de nouvelles coordonnées au COMBOBOX ou à la LISTBOX:
- dès que de nouvelles coordonnées valident sont déterminées :
- on désactive la détection de la souris,
- on affiche la LISTBOX (après l'avoir mis à jour avec tous les paramètres liés à sa position dans la fable) tant que le joueur n'a pas sélectionné un mot dans la liste,
- puis on fait disparaitre la LISTBOX (en la positionnant en dehors de la fenêtre par exemple: voir mon dernier bout de code modifié... plus haut),
- on affiche le mot sélectionné,
- et on réactive la détection à la souris...
@Roland, je ne vois pas de différence de comportement entre la zone 3 et les autres ???
Roland:
Mais ça ne va pas être simple de faire un nombre de zones variable.
Avec ma méthode des sprites il suffit de les compter à la lecture du fichier texte pour savoir le nombre de sprites à créer... On met leur n° dans leur nom et on connaitra ainsi leur n° avec SPRITECOLLIDE Curs,list$...
Ce nombre sera d'ailleurs essentiel à connaître car il conditionnera la taille de plusieures variables tableaux : les listes de mots, les coordonnées x,y de ces listes qui sont aussi celles des zones pour la souris, etc...
Bonne journée
Gilles.
Edité par cassiope01 Le 14/05/2015 à 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
C'est sûr qu'on va êtres obligés d'y passer à tes satanés sprites.
parce que je ne vois comment avec la méthode de détection actuelle on peut faire un nombre de détection variable.
J'ai largement élagué pour tenter l'aventure du nombre variable (que je vois se dresser comme un mur infranchissable)
Code VB :
parce que je ne vois comment avec la méthode de détection actuelle on peut faire un nombre de détection variable.
J'ai largement élagué pour tenter l'aventure du nombre variable (que je vois se dresser comme un mur infranchissable)

Code VB :
nomainwin WindowWidth = 300 WindowHeight = 300 UpperLeftX = 200 UpperLeftY = 20 aa=480 :bb=30 combobox #w.comb, array$(), [event], aa, bb, 100, 100 GRAPHICBOX #w.g 5, 5, 285, 260 OPEN "souris sur zone ?" FOR window_nf AS #w #w, "TRAPCLOSE [quit]" #w.g, "when mouseMove [souris_se_deplace]" #w.g, "when leftButtonDown ButtonLeftDown" #w.g, "when leftButtonUp [ButtonLeftUp]" [ButtonLeftUp] #w.g , "cls" #w.g , "down" #w.g , "fill darkgreen" #w.g, "color white; backcolor darkgreen" #w.g, "place 10 10" #w.g, "\Clic Gauche = pos souris" 'zone 1 #w.g, "color red; backcolor red" #w.g, "place 20 50" #w.g, "boxfilled 60 70" 'zone 2 #w.g, "color yellow; backcolor yellow" #w.g, "place 20 100" #w.g, "boxfilled 60 120" 'zone 3 #w.g, "color blue; backcolor blue" #w.g, "place 20 150" #w.g, "boxfilled 60 170" wait [souris_se_deplace] X = MouseX : Y = MouseY zone = 0 if X > 20 and X < 60 and Y > 50 and Y < 70 then zone = 1 if X > 20 and X < 60 and Y > 100 and Y < 120 then zone = 2 if X > 20 and X < 60 and Y > 150 and Y < 170 then zone = 3 select case zone case 0 aa=400:bb=0 case 1 aa=20:bb=50 case 2 aa=20:bb=100 case 3 aa=20:bb=150 end select #w "refresh" #w.g, "flush;discard" wait Sub ButtonLeftDown handle$, xClick, yClick 'prise de cotes #w.g, "color white; backcolor darkgreen" Print #w.g, "Place ";xClick;" ";yClick Print #w.g, "\x=";xClick Print #w.g, "\y=";yClick End Sub [quit] print "[quit]" close #w end
____________________
Roro
Roro
Je ne comprends pas ce que tu veux dire : ta détection variable fonctionne !!!
Essaye donc le bout de code que j'ai adapté plus haut...
Edité par cassiope01 Le 14/05/2015 à 11h21
Essaye donc le bout de code que j'ai adapté plus haut...
Edité par cassiope01 Le 14/05/2015 à 11h21
____________________
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:
J'ai largement élagué pour tenter l'aventure du nombre variable (que je vois se dresser comme un mur infranchissable)
C'est donc une sorte de mur du son appliqué à la programmation, notre combobox volante sera supersonique
Autrement je tente de concevoir une simili-combo. C'est beaucoup trop embryonnaire aujourd'hui pour fournir un code, mais je pense y arriver. Comme d'habitude, beaucoup d'inconnues à ce jour.
A+

C'est donc une sorte de mur du son appliqué à la programmation, notre combobox volante sera supersonique

Autrement je tente de concevoir une simili-combo. C'est beaucoup trop embryonnaire aujourd'hui pour fournir un code, mais je pense y arriver. Comme d'habitude, beaucoup d'inconnues à ce jour.
A+
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
Donc la devise de Christophe : "pourquoi faire simple quand on peux faire compliqué..." 
Je remet le bout de code dans ce post car je l'ai encore modifié...
(il faut cliquer 2 fois le mot choisi)
Code VB :
Edité par cassiope01 Le 14/05/2015 à 12h02

Je remet le bout de code dans ce post car je l'ai encore modifié...

Code VB :
'détection de souris sur plusieurs zones d'une fenêtre nomainwin 'définir la fenêtre ' (dimensions modifiées par des coefficients allant de 0 à 1 inclus) 'dimensions de la fenêtre WindowWidth = int(DisplayWidth * 0.6) WindowHeight = int(DisplayHeight * 0.6) 'position de l'angle supérieur gauche de la fenêtre sur l'écran UpperLeftX = int(DisplayWidth * 0.2) UpperLeftY = int(DisplayHeight * 0.2) 'position des écritures « position pointeur » XLigneAffichage = int(WindowWidth * 0.05) YLigneAffichage = int(WindowHeight * 0.05) 'position et dimension des zones dans lesquelles on devra détecter la souris ' on définit ici le point supérieur gauche et le point inférieur droit de la zone ' axes de référence : bords droit et haut de la fenêtre Zone1XHautGauche = int(WindowWidth * 0.3) Zone1YHautGauche = int(WindowHeight * 0.3) Zone1XBasDroite = Zone1XHautGauche + int(WindowWidth * 0.5) Zone1YBasDroite = Zone1YHautGauche + int(WindowHeight * 0.5) couleur1$ = "darkgreen" Zone2XHautGauche = int(WindowWidth * 0.15) Zone2YHautGauche = int(WindowHeight * 0.11) Zone2XBasDroite = Zone2XHautGauche + int(WindowWidth * 0.2) Zone2YBasDroite = Zone2YHautGauche + int(WindowHeight * 0.15) couleur2$ = "red" Zone3XHautGauche = int(WindowWidth * 0.09) Zone3YHautGauche = int(WindowHeight * 0.36) Zone3XBasDroite = Zone3XHautGauche + int(WindowWidth * 0.09) Zone3YBasDroite = Zone3YHautGauche + int(WindowHeight * 0.08) couleur3$ = "blue" 'ouvrir la fenêtre en mode graphique (la lecture de la souris ne marche pas en mode window 'il semblerait d'ailleurs qu'il y ait un monde entre ces deux univers) dim mots$(10,3), array$(10) aa=-480 :bb=30 graphicbox #fenetre1.gra, 20,20,WindowWidth-40,WindowHeight-60 listbox #fenetre1.ext, array$(), [valider], aa, bb, 100, 108 OPEN "souris sur zone ?" for window_nf as #fenetre1 #fenetre1 "trapclose [quit]" #fenetre1, "font Comic Sans MS 10 bold" #fenetre1.gra, "font Comic Sans MS 12 bold" 'affichage du texte "bougez la souris !" #fenetre1.gra, "color black" #fenetre1.gra, "down" #fenetre1.gra, "place ";XLigneAffichage;" ";YLigneAffichage #fenetre1.gra, "\Bougez la souris !" 'dessin des zones 'zone 1 #fenetre1.gra, "place ";Zone1XHautGauche;" ";Zone1YHautGauche #fenetre1.gra, "backcolor " + couleur1$ #fenetre1.gra, "boxfilled ";Zone1XBasDroite;" ";Zone1YBasDroite 'zone 2 #fenetre1.gra, "place ";Zone2XHautGauche;" ";Zone2YHautGauche #fenetre1.gra, "backcolor " + couleur2$ #fenetre1.gra, "boxfilled ";Zone2XBasDroite;" ";Zone2YBasDroite 'zone 3 #fenetre1.gra, "place ";Zone3XHautGauche;" ";Zone3YHautGauche #fenetre1.gra, "backcolor " + couleur3$ #fenetre1.gra, "boxfilled ";Zone3XBasDroite;" ";Zone3YBasDroite #fenetre1.gra, "backcolor white" #fenetre1.gra "flush : discard" #fenetre1.gra, "when mouseMove [souris_se_deplace]" mot$(1,1) = "Corbeau" mot$(2,1) = "Loup" mot$(3,1) = "Renard" mot$(4,1) = "Corbeau" mot$(5,1) = "Souriceau" mot$(6,1) = "Lion" mot$(1,2) = "perché" mot$(2,2) = "en fleur" mot$(3,2) = "déraciné" mot$(4,2) = "perché" mot$(5,2) = "feuillu" mot$(6,2) = "magnifique" mot$(1,3) = "alléchée" mot$(2,3) = "rouge vif" mot$(3,3) = "bleue" mot$(4,3) = "alléchée" mot$(5,3) = "puissante" mot$(6,3) = "sereine" 'attente… wait [valider] #fenetre1.ext "selection? mot$" #fenetre1.gra, "place ";XLigneAffichage;" ";YLigneAffichage #fenetre1.gra, "\Pos X = ";X;", Pos Y = ";Y;" Dernier mot choisi = "+mot$+" " aa=-480 :bb=30 #fenetre1 "refresh" wait '******** zone des sous-programmes ******** [quit] 'fermeture sans confirmation et par le gadget de fermeture de la fenetre print "[quit]" close #fenetre1 end [souris_se_deplace] X = MouseX : Y = MouseY aa=-480 :bb=30 'le pointeur est-il dans la zone ? zone = 0 if X > Zone1XHautGauche and X < Zone1XBasDroite and Y > Zone1YHautGauche and Y < Zone1YBasDroite then zone = 1 if X > Zone2XHautGauche and X < Zone2XBasDroite and Y > Zone2YHautGauche and Y < Zone2YBasDroite then zone = 2 if X > Zone3XHautGauche and X < Zone3XBasDroite and Y > Zone3YHautGauche and Y < Zone3YBasDroite then zone = 3 select case zone case 0 afficher$ = "La souris est hors-zone " couleur$ = "black" case 1 afficher$ = "La souris est dans la zone 1 " couleur$ = couleur1$ aa=Zone1XHautGauche+22 bb=Zone1YHautGauche+22 for m=1 to 6 array$(m) = mot$(m,1) next case 2 afficher$ = "La souris est dans la zone 2 " couleur$ = couleur2$ aa=Zone2XHautGauche+22 bb=Zone2YHautGauche+22 for m=1 to 6 array$(m) = mot$(m,2) next case 3 afficher$ = "La souris est dans la zone 3 " couleur$ = couleur3$ aa=Zone3XHautGauche+22 bb=Zone3YHautGauche+22 for m=1 to 6 array$(m) = mot$(m,3) next end select #fenetre1.ext "reload" #fenetre1 "refresh" 'affichage de la position du pointeur et de l'information "en/hors zone" #fenetre1.gra, "color black" #fenetre1.gra, "place ";XLigneAffichage;" ";YLigneAffichage #fenetre1.gra, "\Pos X = ";X;", Pos Y = ";Y;" " #fenetre1.gra, "place ";XLigneAffichage;" ";YLigneAffichage + 20 #fenetre1.gra, "color " + couleur$ #fenetre1.gra, "\" + afficher$ wait
Edité par cassiope01 Le 14/05/2015 à 12h02
____________________
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..Je ne peux pas deviner que tu a modifié le code sur place.
Le nombre de zones doit être variable
Dans le code suivant on défini le nombre de zones de 2 à 4 dans le textbox
Dans le prog de Christophe, il sera défini en entrée de prog
Je ne vois pas quelle modif tu a faite pour stabiliser les combo
Ni pour que les combos se présentent "ouvertes"
Code VB :
Le nombre de zones doit être variable
Dans le code suivant on défini le nombre de zones de 2 à 4 dans le textbox
Dans le prog de Christophe, il sera défini en entrée de prog
Je ne vois pas quelle modif tu a faite pour stabiliser les combo
Ni pour que les combos se présentent "ouvertes"
Code VB :
nomainwin WindowWidth = 300 WindowHeight = 300 UpperLeftX = 200 UpperLeftY = 20 aa=480 :bb=30 dim mots$(10,3), array$(10) TEXTBOX #w.entr, 240 , 10, 40, 20 BUTTON #w.ok, "Ok", [ok], UL, 250, 60, 30, 20 listbox #w.comb, array$(), [valider], aa, bb, 100, 100 GRAPHICBOX #w.g 5, 5, 285, 260 OPEN "souris sur zone ?" FOR window_nf AS #w #w, "TRAPCLOSE [quit]" #w.g, "when mouseMove [souris_se_deplace]" #w.g, "when leftButtonDown ButtonLeftDown" #w.g, "when leftButtonUp [ButtonLeftUp]" entr$="Corbeau Loup Renard Corbeau Souriceau Lion perché en.fleur déraciné perché feuillu magnifique "+_ "alléchée rouge.vif bleue alléchée puissante sereine rien nada nibe que.dalle nada keuts" jj=0 for i=1 to 4 for j=1 to 6 mot$(j,i)=word$(entr$, jj+j) next j jj=jj+6 next i [ButtonLeftUp] #w.g , "cls" #w.g , "down" #w.g , "fill darkgreen" #w.g, "color white; backcolor darkgreen" #w.g, "place 10 10": #w.g, "\Clic Gauche = pos souris" #w.g, "place 170 40": #w.g, "\Zones 1 < N < 5" wait [ok] #w.g , "cls" #w.g , "down" #w.g , "fill darkgreen" #w.g, "color white; backcolor darkgreen" #w.g, "place 10 10": #w.g, "\Clic Gauche = pos souris" #w.g, "place 170 40": #w.g, "\Zones 1 < N < 4" #w.entr, "!contents? var$": n=val(var$) if n < 2 then n=2: if n > 4 then n=4 'zone 1 #w.g, "color red; backcolor red" #w.g, "place 20 50" #w.g, "boxfilled 60 70" 'zone 2 #w.g, "color yellow; backcolor yellow" #w.g, "place 20 100" #w.g, "boxfilled 60 120" if n=2 then [saut1] 'zone 3 #w.g, "color blue; backcolor blue" #w.g, "place 20 150" #w.g, "boxfilled 60 170" if n=3 then [saut2] 'zone 4 #w.g, "color blue; backcolor green" #w.g, "place 150 150" #w.g, "boxfilled 190 170" wait [saut1] [saut2] [souris_se_deplace] X = MouseX : Y = MouseY zone = 0 if X > 20 and X < 60 and Y > 50 and Y < 70 then zone = 1 if X > 20 and X < 60 and Y > 100 and Y < 120 then zone = 2 if n=2 then [passe1] if X > 20 and X < 60 and Y > 150 and Y < 170 then zone = 3 if n=3 then [passe2] if X > 150 and X < 190 and Y > 150 and Y < 170 then zone = 4 [passe1] [passe2] select case zone case 0 aa=400:bb=0 case 1 aa=20:bb=50 for m=1 to 6 array$(m) = mot$(m,1) next case 2 aa=20:bb=100 for m=1 to 6 array$(m) = mot$(m,2) next case 3 aa=20:bb=150 for m=1 to 6 array$(m) = mot$(m,3) next case 4 aa=150:bb=150 for m=1 to 6 array$(m) = mot$(m,4) next end select #w.comb "reload" #w "refresh" #w.g, "flush;discard" wait [valider] #w.comb "selection? mot$" #w.g, "place 10 220" #w.g, "\ Dernier mot choisi = "+mot$+" " aa=-480 :bb=30 #w "refresh" wait wait Sub ButtonLeftDown handle$, xClick, yClick 'prise de cotes #w.g, "color white; backcolor darkgreen" Print #w.g, "Place ";xClick;" ";yClick Print #w.g, "\x=";xClick Print #w.g, "\y=";yClick End Sub [quit] print "[quit]" close #w end
____________________
Roro
Roro
Comme je l'ai dis plus haut... (pardon je parlais des mots à trouver
)
cassiope01:
Evidemment c'est à refaire à chaque chargement d'un nouveau fichier texte...
Edité par cassiope01 Le 14/05/2015 à 11h59

cassiope01:
Avec ma méthode des sprites il suffit de les compter à la lecture du fichier texte pour savoir le nombre de sprites à créer... On met leur n° dans leur nom et on connaitra ainsi leur n° avec SPRITECOLLIDE Curs,list$...
Ce nombre sera d'ailleurs essentiel à connaître car il conditionnera la taille de plusieures variables tableaux : les listes de mots, les coordonnées x,y de ces listes qui sont aussi celles des zones pour la souris, etc...
Bonne journée
Gilles.
Ce nombre sera d'ailleurs essentiel à connaître car il conditionnera la taille de plusieures variables tableaux : les listes de mots, les coordonnées x,y de ces listes qui sont aussi celles des zones pour la souris, etc...
Bonne journée
Gilles.
Evidemment c'est à refaire à chaque chargement d'un nouveau fichier texte...
Edité par cassiope01 Le 14/05/2015 à 11h59
____________________
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
Ah Ok. C'est la listbox à la place de la combo qui la présente ouverte.
J'ai modifié mon dernier code pour l'adapter au tiens
Comme ça Christophe aura le choix entre ma méthode (qui paraît jouable) et celle des sprites
Avec ma méthode, il faut faire un nombre supérieur au nombre max et sauter/passer les surnuméraires
Avec une flopée de variables
J'ai modifié mon dernier code pour l'adapter au tiens
Comme ça Christophe aura le choix entre ma méthode (qui paraît jouable) et celle des sprites
Avec ma méthode, il faut faire un nombre supérieur au nombre max et sauter/passer les surnuméraires
Avec une flopée de variables
____________________
Roro
Roro
Disons qu'avec les sprites il n'y a aucun select case à faire puisqu'on obtient directement le n° du sprite (zone) concerné, et donc sa position à l'écran.
Edité par cassiope01 Le 14/05/2015 à 12h56
Edité par cassiope01 Le 14/05/2015 à 12h56
____________________
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
C'est sûr que la méthode avec les sprites est alléchante
Mais si tu ne lui fait pas une "amorce", je doute qu'il s'en sorte.
C'est assez "velu" pour une première manip avec les sprites.
Je me suis moi-même pas mal pris la tête avec spritecollide
Et il y a aussi le background qui a ses spécificités.
Mais si tu ne lui fait pas une "amorce", je doute qu'il s'en sorte.
C'est assez "velu" pour une première manip avec les sprites.
Je me suis moi-même pas mal pris la tête avec spritecollide
Et il y a aussi le background qui a ses spécificités.
____________________
Roro
Roro
Il y a des avancées significatives
Cassiopee01:
"pourquoi faire simple quand on peux faire compliqué..."
Au delà de la plaisante complexification, c'est aussi pour l'exercice et la culture. Mais, devise adoptée, car c'est pas faux^^
Je comboboxe-experimentale pour le moment, car même si ça ne débouche sur rien aujourd'hui ce n'est pas du temps perdu, et je vais voir vos derniers codes car il faut maintenant pouvoir choisir une entrée dans la liste (et j'aurais aussi un aperçu du fonctionnement des sprites)
Bon, pour le moment, au dodo, y'a besoin. Bonne nuit !
Christophe.

Cassiopee01:
"pourquoi faire simple quand on peux faire compliqué..."
Au delà de la plaisante complexification, c'est aussi pour l'exercice et la culture. Mais, devise adoptée, car c'est pas faux^^
Je comboboxe-experimentale pour le moment, car même si ça ne débouche sur rien aujourd'hui ce n'est pas du temps perdu, et je vais voir vos derniers codes car il faut maintenant pouvoir choisir une entrée dans la liste (et j'aurais aussi un aperçu du fonctionnement des sprites)
Bon, pour le moment, au dodo, y'a besoin. Bonne nuit !
Christophe.
____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
C'est vrai qu'avec une "amorce" ça fonctionne beaucoup mieux
Code VB :
Edité par cassiope01 Le 16/05/2015 à 08h12

Code VB :
' http://libertybasic.fr/forum/topic-384+definir-des-combobox-quand-on-n-en-connait-pas-le-nombre.php ' http://libertybasic.fr/forum/topic-393-0-4259+detecter-si-la-souris-est-au-dessus-d-une-zone.php#m4259 nomainwin WindowWidth = 1000 WindowHeight = 600 UpperLeftX = (DisplayWidth-WindowWidth) / 3 UpperLeftY = (DisplayHeight-WindowHeight) / 2 mois$ = "Jan Fév Mar Avr Mai Jun Jui Aou Sep Oct Nov Déc" today$ = date$("mm/dd/yyyy") j = date$(today$) jsem$ = word$("Mar Mer Jeu x Ven Sam x Dim Lun",int((j/7-int(j/7))*10)+1) date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+left$(time$(),5)'right$(today$,4) GLOBAL textFont$, textColor$, bckColor$, Gwidth, Gheight, lbx, lby, nz, nm DIM info$(10,10), lrmat$(10), mt$(10), mots$(6), lf$(10) lbx = 0 lby = -200 textFont$ = "Comic_Sans_MS" ' "Times_New_Roman" textColor$ = "yellow" bckColor$ = "26 72 43" ' dark green ... ListboxColor$ = "cyan" statictext #w.debug "message de debug", 10, WindowHeight-60, 300, 40 graphicbox #w.gr, 0, 0, WindowWidth, WindowHeight-135 graphicbox #w.grtxt, 0, WindowHeight-136, WindowWidth, 65 listbox #w.lb, mots$(), [valider], lbx, lby, 130, 6*20 BUTTON #w.t1, "Nouveau fichier", Charge, UL, WindowWidth-480, WindowHeight-60 , 140, 25 BUTTON #w.t2, "recommencer", [rejoue], UL, WindowWidth-280, WindowHeight-60 , 100, 25 BUTTON #w.exit, "QUITTER", Quit, UL, WindowWidth-120, WindowHeight-60 , 100, 25 open " Mots à trouver..."+space$(20)+date$ for window_nf as #w ' graphics_nf_nsb #w "trapclose Quit" #w.gr "home; posxy CenterX CenterY" Gwidth = CenterX * 2 Gheight = CenterY * 2 #w "font ";textFont$;" 10 bold" #w.gr "font ";textFont$;" 14 bold" #w.gr "down" gosub [makeSprites] #w.grtxt "down; fill ";bckColor$ #w.debug "!font Times_New_Roman 12 bold" #w.lb "singleclickselect" 'pour ne cliquer qu'une fois dans la listbox pour valider un mot... call mep #w.gr "when mouseMove XY" WAIT sub mep ' -------------------- en principe : lecture du fichier texte ------------------- ' bien sûr il faut traiter le fichier texte correctement, avec gestion des positions des mots, etc... ' Là j'ai fais ça un peu à la louche ! for m=1 to 10 mt$(m) = "_____________" next lrmat$(1) = "Corbeau;Loup;Renard;Blaireau;Souriceau;Lion" lrmat$(2) = "perché;en fleur;déraciné;penché;feuillu;magnifique" lrmat$(3) = "alléchée;rouge vif;bleue;pourrie;puissante;sereine;assurée" lrmat$(4) = "Corbeau;Courneau;Blaireau;Bigorneau;Taureau;Cours d'Eau" #w.gr "backcolor ";bckColor$;"; fill ";bckColor$ #w.gr "color ";textColor$ #w.gr "place 100 40;|";upper$("Le Corbeau et le Renard") #w.gr "place 20 100;|Maître" #w.gr "place 100 100;|";mt$(1) #w.gr "spritexy zone1 100 80" #w.gr "place 275 100;|sur un arbre" #w.gr "place 400 100;|";mt$(2) #w.gr "spritexy zone2 400 80" #w.gr "place 580 100;|tenait en son bec un fromage." #w.gr "place 20 140;|Maître Renard, par l'odeur" #w.gr "place 290 140;|";mt$(3) #w.gr "spritexy zone3 300 120" #w.gr "place 460 140;|lui tint à peu près ce langage." #w.gr "place 20 180;|Hé ! bonjour, Monsieur du" #w.gr "place 280 180;|";mt$(4) #w.gr "spritexy zone4 280 160" #w.gr "place 460 180;|que vous êtes joli ! que vous me semblez beau !" nm = 4 #w.gr "flush" #w.gr "color green" end sub sub XY handle$, mx, my ' when mouseMove ... ' mx = MouseX ' my = MouseY #w.gr "spritexy Curs ";mx;" ";my #w.gr "spritecollides Curs list$" nz = val(right$(word$(list$,1),1)) if nz>0 and nz<=nm then #w.gr "spritexy? ";word$(list$,1);" x y" lbx = x lby = y for m=1 to 6 mots$(m) =word$(lrmat$(nz),m,";") 'charge la nouvelle liste de mots next for mel=1 to 30 ' mélange hz0 = int(rnd(1)*nm)+1 tmp$ = mots$(hz0) hz = int(rnd(1)*nm)+1 mots$(hz0) = mots$(hz) mots$(hz) = tmp$ next #w.lb "reload" #w "refresh" else lbx = 0 lby = -200 #w "refresh" end if end sub [rejoue] #w.debug "Effacement des mots trouvés..." call message 15,20,"" #w.gr "color yellow" for m=1 to nm mt$(m) = "_____________" #w.gr "spritexy? zone";str$(m);" x y" #w.gr "place ";x-5;" ";y+20;";|";mt$(m) next #w.gr "flush ;discard" #w.gr "color green" wait [valider] #w.gr "when mouseMove" #w.lb "selection? mot$" mt$(nz) = mot$ #w.gr "spritexy? zone";str$(nz);" x y" #w.gr "place ";x-5;" ";y+20;";| ";mt$(nz);" " #w.gr "flush ;discard" lbx = 0 lby = -200 #w "refresh" mc = 0 for m = 1 to nm if mt$(m) = word$(lrmat$(m),1,";") then mc = mc + 1 next if mc = nm then call message 15,20,"Bravo ! tout les mots sont justes !" end if #w.gr "when mouseMove XY" wait [makeSprites] #w.gr "backcolor black; place 0 0 ;boxfilled 1 1" #w.gr "place 0 1 ; box 1 2" #w.gr "getbmp Curseur 0 0 1 2" #w.gr "addsprite Curs Curseur" ' create sprite unloadbmp "Curseur" ' #w.gr "spritevisible Curs off" ' hide curs 'admettons qu'on prépare 10 sprites pour 10 mots a trouver maximum... #w.gr "place 0 10 ; boxfilled 130 30" #w.gr "place 0 30 ; box 130 50" #w.gr "getbmp zone 0 10 130 40" for nz = 1 to 10 #w.gr "addsprite zone";nz;" zone" ' #w.gr "spritevisible zone";nz;" off" next unloadbmp "zone" return sub message posY,fonte,txt$ #w.grtxt "font ";textFont$;" ";fonte #w.grtxt "fill ";bckColor$ #w.grtxt "backcolor ";bckColor$;" ; color ";textColor$ #w.grtxt "place 20 ";posY+26;" ;|";txt$ end sub FUNCTION fileExists(path$, filename$) 'DIM info$(10,10) must be declared at the start of the prog. files DefaultDir$, filename$, info$() ' path$ = 'DefaultDir$' generally. fileExists = val(info$(0, 0)) 'not zero if true END FUNCTION SUB Charge handle$ filedialog "Fichiers de données", "Fable*.txt", fileName$ if fileName$ <> "" then #w.debug "Bientôt sans doute..." open fileName$ for input as #show while eof(#show) = 0 ligne = ligne + 1 line input #show, lf$(ligne) wend lf$(ligne+1) = "" close #show call mep end if end sub sub Quit handle$ close #w END end sub
Edité par cassiope01 Le 16/05/2015 à 08h12
____________________
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
Houlà ! Je vois que tu n'a pas perdu la main
De la louche efficace, concise, élégante...Bref, la classe.
Christophe n'a plus qu'à assimiler le morceau (je prends les paris sur les sujets de questions).
C'est un démarrage sur les chapeaux de roues.
Edit: Ma petite vengeance:
Tu m'a tellement tuées de variables par le passé, que j'ai mis trois apostrophes dans [makesprites] sans nuire au fonctionnement.
' #w.gr "place 0 1 ; box 1 2"
' #w.gr "place 0 10 ; boxfilled 130 30"
' #w.gr "place 0 30 ; box 130 50"

De la louche efficace, concise, élégante...Bref, la classe.

Christophe n'a plus qu'à assimiler le morceau (je prends les paris sur les sujets de questions).
C'est un démarrage sur les chapeaux de roues.

Edit: Ma petite vengeance:
Tu m'a tellement tuées de variables par le passé, que j'ai mis trois apostrophes dans [makesprites] sans nuire au fonctionnement.
' #w.gr "place 0 1 ; box 1 2"
' #w.gr "place 0 10 ; boxfilled 130 30"
' #w.gr "place 0 30 ; box 130 50"
____________________
Roro
Roro
oui, c'est parce que j'étais parti pour fabriquer de "vrai" sprites... (j'aurai pu aussi utiliser de vrai fichier BMP) mais l'utilisation que j'en fais ici est relativement peu orthodoxe dirons-nous, et donc ne le nécessite pas forcément tant qu'on n'utilise pas DRAWSPRITE.
J'ai mis la création de l'affichage de la fable dans une Sub routine pour pouvoir l'appeler dans la Sub routine de Chargement d'un nouveau fichier...
Je l'ai nommée "mep" comme "Mise En Place". C'est un bon petit casse tête que je laisse à votre sagacité je pense...
Voici le fichier fable qui sert de base : à mettre dans un simple fichier texte nommé : "Fable01.txt"
Code VB :
Grace à la commande WORD$(string$,n,"-") qu'il faut utiliser ligne par ligne excepté la première qui est le titre (tout ça dans une jolie boucle bien sûr), on peut définir les lrmat$(), et afficher les textes (la largeur du mot à trouver étant bien entendu la largeur de la LISTBOX que j'ai fixé à 130 un peu arbitrairement), et ainsi positionner les sprites "zone1 zone2 zone3 zone4 etc..." et les mot$() à trouver...
Edité par cassiope01 Le 16/05/2015 à 10h41
J'ai mis la création de l'affichage de la fable dans une Sub routine pour pouvoir l'appeler dans la Sub routine de Chargement d'un nouveau fichier...
Je l'ai nommée "mep" comme "Mise En Place". C'est un bon petit casse tête que je laisse à votre sagacité je pense...

Voici le fichier fable qui sert de base : à mettre dans un simple fichier texte nommé : "Fable01.txt"
Code VB :
Le Corbeau et le Renard
Maître-Corbeau;Loup;Renard;Blaireau;Souriceau;Lion-sur un arbre-perché;en fleur;déraciné;penché;feuillu;magnifique-tenait en son bec un fromage.
Maître Renard, par l'odeur-alléchée;rouge vif;bleue;pourrie;puissante;sereine;assurée-lui tint à peu près ce langage.
Hé ! bonjour, Monsieur du-Corbeau;Courneau;Taureau;Blaireau;Bigorneau;Cours d'Eau-Que vous êtes joli ! que vous me semblez beau !
Grace à la commande WORD$(string$,n,"-") qu'il faut utiliser ligne par ligne excepté la première qui est le titre (tout ça dans une jolie boucle bien sûr), on peut définir les lrmat$(), et afficher les textes (la largeur du mot à trouver étant bien entendu la largeur de la LISTBOX que j'ai fixé à 130 un peu arbitrairement), et ainsi positionner les sprites "zone1 zone2 zone3 zone4 etc..." et les mot$() à trouver...
Edité par cassiope01 Le 16/05/2015 à 10h41
____________________
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:
Yes, il semble que tout se passe "en mémoire", il n'y a pas besoin ni de placer ni d'afficher.
J'ai aussi apostrophé ça:
' #w.gr "home; posxy CenterX CenterY"
' Gwidth = CenterX * 2
' Gheight = CenterY * 2
Et je pique la syntaxe exotique:
#w.grtxt "backcolor ";bckColor$;" ; color ";textColor$
Que je mets dans les "trucs" de la traduction
Il est bien "charnu" ton code; Christophe va y passer un moment.
c'est parce que j'étais parti pour fabriquer de "vrai" sprites.
Yes, il semble que tout se passe "en mémoire", il n'y a pas besoin ni de placer ni d'afficher.
J'ai aussi apostrophé ça:
' #w.gr "home; posxy CenterX CenterY"
' Gwidth = CenterX * 2
' Gheight = CenterY * 2
Et je pique la syntaxe exotique:
#w.grtxt "backcolor ";bckColor$;" ; color ";textColor$
Que je mets dans les "trucs" de la traduction
Il est bien "charnu" ton code; Christophe va y passer un moment.

____________________
Roro
Roro
Ben si bien sûr qu'il y a besoin de placer, sinon comment veux-tu que la détection à la souris fonctionne !!
Roland:
absolument pas : tu devrais ralentir sur des petites phrases comme ça qui n'aident sûrement pas Christophe à percevoir la facilité d'utilisation de JustBasic
Roland:
Il est bien "charnu" ton code; Christophe va y passer un moment.
absolument pas : tu devrais ralentir sur des petites phrases comme ça qui n'aident sûrement pas Christophe à percevoir la facilité d'utilisation de JustBasic

____________________
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
Bah, il fera la moyenne entre tes: "c'est très facile" et mes: "Houlà! ça décoiffe!".
Mais hum...Vu le rapport du nombre de posts au nombre d'inscrits (et de visiteurs: 40/J de moyenne avec des pointes à plus de 100) il semblerait que ça ne soit pas si facile pour tout le monde.
Ne r'ouvrons pas le vieux débat sur la modestie.
Mais hum...Vu le rapport du nombre de posts au nombre d'inscrits (et de visiteurs: 40/J de moyenne avec des pointes à plus de 100) il semblerait que ça ne soit pas si facile pour tout le monde.
Ne r'ouvrons pas le vieux débat sur la modestie.

____________________
Roro
Roro
Il serait plus constructif de s'intérresser à la SUB mep. C'est un sympa petit morceau à traiter... et le programme de Christophe serait terminé !
Edité par cassiope01 Le 15/05/2015 à 11h58
Edité par cassiope01 Le 15/05/2015 à 11h58
____________________
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:
Et ben oui, mais il faut le laisser cogiter, aussi.
Là, y a un gros morceau de fait. Mais il va falloir qu'il l'ingurgite (et le poisson comporte quelques arrêtes).
Comme il n'a pas l'air d'être à la retraite, y va falloir patienter.
Il serait plus constructif de s'intérresser à la SUB mep
Et ben oui, mais il faut le laisser cogiter, aussi.
Là, y a un gros morceau de fait. Mais il va falloir qu'il l'ingurgite (et le poisson comporte quelques arrêtes).
Comme il n'a pas l'air d'être à la retraite, y va falloir patienter.

____________________
Roro
Roro
Aucune arête : c'est du poisson carré surgelé

____________________
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
Manquerait plus que ce soit du (presque) tout cuit^^
Autrement je ne dirais qu'un mot : purée !
Je n'ai pas encore regardé vos productions que vous en êtes déjà à la version suivante ou à celle d'après, et fonctionnelle en plus : faut que je souffle un peu, là, j'arrive plus à suivre. En tout cas j'aurais de quoi étudier, c'est sûr. C'est peut-être même ce que je vais commencer par faire
Bon après-midi vous deux, et merci du coup de main... (je reste dans le secteur)
A+
Christophe, pas encore retraité
Autrement je ne dirais qu'un mot : purée !
Je n'ai pas encore regardé vos productions que vous en êtes déjà à la version suivante ou à celle d'après, et fonctionnelle en plus : faut que je souffle un peu, là, j'arrive plus à suivre. En tout cas j'aurais de quoi étudier, c'est sûr. C'est peut-être même ce que je vais commencer par faire

Bon après-midi vous deux, et merci du coup de main... (je reste dans le secteur)
A+
Christophe, pas encore retraité

____________________
Just BASIC v2.0 :
utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc
Just BASIC v2.0 :
• 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