Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment :
Cdiscount : -20% sur 2 jouets, -30% sur 3 jouets, -40% ...
Voir le deal

 

 Module Bloc-Notes

Aller en bas 
4 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Baguettator
Cliqueur Amateur
Cliqueur Amateur



Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyDim 14 Nov 2021 - 11:50

Salut Kitai !

Je rencontre un petit problème avec ton module, qui par ailleurs est très pratique !!

Je crée un BlocNotes avec la couleur du texte blanche et le fond transparent.

Quand je sélectionne du texte dans ce bloc notes, la sélection est un rectangle noir, et le texte dedans reste blanc. Mais lorsque je relâche le bouton de la souris (donc quand je finis de sélectionner), le rectangle de sélection noir masque totalement le texte sélectionné. Ou alors, le texte sélectionné devient noir ? Bizarre...

Par ailleurs, après sélection du texte, si je réécris (ce qui efface la sélection et la remplace par le texte nouveau), le texte du bloc notes devient noir. Mais si je clique sur le bloc notes, le texte redevient blanc ! (et en fait, pas vraiment blanc : une sorte de blanc/gris).

C'est pas un énorme problème, mais j'imagine que c'est un petit souci dans ton code majestueux sourire

Une idée ?

EDIT : Je me rends compte que le truc du rectangle de sélection qui masque tout le texte, c'est si la souris, toujours en train de sélectionner du texte (donc bouton toujours enfoncé) sort du Bloc Notes. Sinon le texte est bien de la bonne couleur dans la sélection. Et après être sorti du bloc notes, la sélection est donc toute noire (on voit plus le texte), et si alors on réécrit, le nouveau texte devient noir ! Jusqu'à ce qu'on clique sur le bloc notes, ce qui rétablit la couleur voulue.
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue



Nombre de messages : 2904

Date d'inscription : 01/08/2006


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyLun 15 Nov 2021 - 17:57

J'ai plus trop moyen de lancer AGS ces jours-ci, mais si je regarde le code (version 2.0 bêta) je vois que y'a un repeatedly_execute en bas du script, et que y'a une condition sur IsButtonDown, c'est de ce côté là qu'il faudrait regarder. J'ai survolé rapidement et rien vu d'évident qui pourrait expliquer le problème que tu décris, il faudrait tester et déboguer par itérations, si t'es motivé
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyDim 21 Nov 2021 - 11:19

Salut Kitai !

J'ai un peu regardé, mais c'est très dur de comprendre ce qu'il se passe dans ton code. Je ne maîtrise pas encore assez AGS et certaines formulations de ton code me sont assez étrangères (mais m'intéressent car je ne savais pas qu'on pouvait formuler du code comme cela !).

J'ai aussi eu un petit "souci" où je sélectionnais un texte, puis cliquait sur un autre "bloc notes" et la sélection du texte (rectangle noir) restait sur l'autre bloc notes. ça aurait été cool que lorsqu'on sélectionne un autre bloc-notes (ou qu'on déselctionne tous les bloc notes, genre en cliquant dans le "vide") cela annule les sélections dans les bloc notes.

J'ai aussi eu des soucis bizarres où en faisant apparaître/disparaître certains bloc notes, leur texte changeait de couleur (couleur voulue blanche, mais lorsque je faisait BlocNotes.Activebutton=null et ben certains blocnotes sur lesquels j'avais pu cliquer auparavant avaient leur texte en noir... ?). Aucune idée d'où ça peut venir !

Si à l'occasion tu arrives à fouiller ton module, tiens-moi au jus clin d'oeil

En tous les cas merci pour ton travail et ton partage !
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyMer 19 Jan 2022 - 20:27

Salut Kitai !

Je sais pas si tu as le temps de te plonger dans AGS ces tyemps-ci, mais j'ai toujours pas trouvé le problème dans ton module (cf messages ci-dessus). Aussi j'ai remarqué que le module a une tendance à changer la couleur des textes des blocnotes de manière un peu spéciale. J'ai mis tous mes bloc notes en blanc, mais une fois qu'on les a utilisés une fois, ça passe en noir. Parfois ça revient en blanc, bon c'est un peu spécial quoi clin d'oeil

Aussi, j'ai l'impression que le blanc n'est pas le même. Il semble être un blanc un peu grisé, une fois qu'on a cliqué pour la première fois sur un bloc note.

Si jamais t'as des idées... ! sourire
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2904

Date d'inscription : 01/08/2006


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyMer 19 Jan 2022 - 23:15

Pour être honnête je pense pas m'y replonger tout de suite, étant donné que j'arrive plus à faire tourner l'éditeur d'AGS sous ubuntu. Et malheureusement, comme ça, je vois pas où est la cause des problèmes que tu décris dans mon code

Si quelqu'un d'autre a la patience de déboguer mon code...

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyVen 29 Avr 2022 - 14:07

Salut Kitai ! à tout hasard, tu peux désormais te replonger dans AGS ? J'ai toujours des soucis avec le module (texte qui change de couleur de manière intempestive, mais aussi le rectangle de sélection qui disparaît pas toujours).

J'essaye de corriger, mais j'avoue que j'y comprends pas grand chose, j'y vais en apprenti sorcier sourire
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2904

Date d'inscription : 01/08/2006


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptyVen 29 Avr 2022 - 20:13

Pour être encore plus honnête, je suis pas sûr de m'y replonger un jour. Ça demanderait d'y consacrer un certain temps que je suis pas prêt à dégager, désolé

Mais si t'as des pistes et des questions spécifiques hésite pas à les poser, et j'y répondrai si je peux

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptySam 25 Juin 2022 - 10:06

Trop dommage triste Mais je comprends sourire

J'essaye de corriger du coup ce problème. Je n'arrive pas à comprendre l'endroit du script qui gère la "sélection" du texte (l'apparition du cadre de sélection lorsqu'on maintient le bouton de la souris).

Tu aurais un coup de pouce à me donner là-dessus ? Voici le code du "repeatedly execute" :

Code:
function repeatedly_execute() {
 
  // Gestion du clignotement du curseur (tous les 20 cycles)
  if ((Bouton != null) && (!(a % 20))) {
   
    if (affcur) {
      DrawingSurface* surf = Bloc.GetDrawingSurface();
      surf.DrawSurface(surf_buffer);
      surf.DrawingColor = Bouton.TextColor;
      surf.DrawLine(x_curs-Decal_x, y_curs-Decal_y, x_curs-Decal_x, y_curs+Font_Height-Decal_y);
      surf.Release();
      Bouton.NormalGraphic = Bloc.Graphic;
    }
    else {
      DrawingSurface* surf = Bloc.GetDrawingSurface();
      surf.DrawSurface(surf_buffer);
      surf.Release();
      Bouton.NormalGraphic = Bloc.Graphic;
    }
    affcur = true - affcur;
    a = 1; // Retour à 1
  }
  else if (Bouton != null) a++;
 
  // On récupère le contrôle survolé
  GUIControl* control = GUIControl.GetAtScreenXY(mouse.x, mouse.y);
  // Et on regarde si c'est un bloc
  bool survolebloc = (control!=null)&&(control.AsButton!=null)&&(control.AsButton.InArray(buttons,buttons_size)>-1);

  // Si l'utilisateur a spécifié un curseur particulier
  if (MODE_CURSEUR > 0) {
    if (survolebloc) mouse.UseModeGraphic(MODE_CURSEUR);
    else mouse.UseDefaultGraphic();
  }
 
  // Si besoin, on redimensionne le bloc à la bonne taille
  if ((Bouton != null) && ((Bloc.Width != Bouton.Width) || (Bloc.Height != Bouton.Height))) {
    Bloc.Resize(Bouton.Width, Bouton.Height);
    DrawingSurface* surf = Bloc.GetDrawingSurface();
    surf.RemplitCadre(BlocTexte, Bouton.Font);
    surf.Ecrit(curs, Bouton.Font);
    Bouton.NormalGraphic = Bloc.Graphic;
  }

  // Gestion des clics
 
  // Si on ne clique sur rien
  if (!Mouse.IsButtonDown(eMouseLeft)) {
    // Si CLIQUE ne valait pas NULL, on relance le clignotement
    if (Clique != null) {
      a = 0;
      affcur = true;
    }
    Clique = null;  // CLIQUE vaut NULL
    CliqueHorsBloc = false; // On n'a pas cliqué hors d'un bloc
  }
  // Sinon, si on clique effectivement
  else {
    // Si on ne maintient pas un clic sur un bloc
    if ((Clique == null) || (Clique != Bouton)) {
      // Si on maintient un clic hors bloc ou si on ne survole aucun bloc
      if ((!survolebloc) || CliqueHorsBloc) {
        // On enlève l'éventuel focus
        if (Bouton != null) BlocNotes.set_ActiveButton(null);
        // On dit qu'on a cliqué hors d'un bloc
        CliqueHorsBloc = true;
        // Et on s'en va
        return;
      }
      // Si on clique sur un nouveau bloc : on convertit
      else if (survolebloc && control.AsButton != Bouton) BlocNotes.Convert(control.AsButton);
    }
   
    CursorDeterminesOffset = true;
   
    // On dit qu'on a cliqué sur un bloc
    CliqueHorsBloc = false;
   
    // On calcule la position X relative de la souris et le # de ligne où elle se trouve
    x_curs = mouse.x-(Bouton.OwningGUI.X+Bouton.X)+Decal_x;
    y_curs = (mouse.y-(Bouton.OwningGUI.Y+Bouton.Y)+Decal_y);
    // Puis on cherche le caractère le plus proche de cette position
    curs = CaractereProx(y_curs);
    // Si on ne maintient pas le clic : sel = curs
    if ((Clique == null) || (Clique.AsButton != Bouton)) sel = curs;
   
    // On affiche le cadre
    DrawingSurface* surf = Bloc.GetDrawingSurface();
    surf.Ecrit(curs, Bouton.Font);
    Bouton.NormalGraphic = Bloc.Graphic;
   
    if (Clique != Bouton) Clique = control;  // CLIQUE vaut le contrôle si on a changé de contrôle
 
  }
 
}
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 230

Date d'inscription : 21/05/2020


Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 EmptySam 25 Juin 2022 - 13:36

Ah, Kitai tu vas être fier de moi sourire

J'ai réussi à corriger quelques petits bugs !

J'ai déjà corrigé un crash qui arrivait si on sélectionnait du texte et qu'on faisait passer la souris au-dessus de la zone de saisie. J'ai rajouté une ligne au début de la fonction suivante :

Code:
function CaractereProx(int y) {
  
  int li = y/Font_Height;
  if (li >= LineCount) li = LineCount-1;
  ///////// J'ai rajouté ceci
  if (li < 0) li=0;
  /////////
  
  int c = 0;
  String ligne = Cadre[li], tmp = ligne.Substring(0, c);

//etc...

J'ai corrigé le bug qui faisait que si on sélectionnait un texte dans la zone de saisie, puis qu'on cliquait sur un autre Bloc Notes, le rectangle de sélection restait dans la première zone de saisie (ce qui fait qu'on a plusieurs rectangles de sélection à l'écran). J'ai rajouté deux lignes dans le repeatedly execute, là où tu gères les clics :

Code:
// Gestion des clics
  
  // Si on ne clique sur rien
  if (!Mouse.IsButtonDown(eMouseLeft)) {
    // Si CLIQUE ne valait pas NULL, on relance le clignotement
    if (Clique != null) {
      a = 0;
      affcur = true;
    }
    Clique = null;  // CLIQUE vaut NULL
    CliqueHorsBloc = false; // On n'a pas cliqué hors d'un bloc
  }
  // Sinon, si on clique effectivement
  else {
    // Si on ne maintient pas un clic sur un bloc
    if ((Clique == null) || (Clique != Bouton)) {
      // Si on maintient un clic hors bloc ou si on ne survole aucun bloc
      if ((!survolebloc) || CliqueHorsBloc) {
        // On enlève l'éventuel focus
        if (Bouton != null) BlocNotes.set_ActiveButton(null);
        // On dit qu'on a cliqué hors d'un bloc
        CliqueHorsBloc = true;
        // Et on s'en va
        return;
      }
      // Si on clique sur un nouveau bloc : on convertit
      else if (survolebloc && control.AsButton != Bouton)
      {
        /////// CES DEUX-là
        sel=0;
        curs=0;
       //////// ça permet d'annuler la sélection lorsqu'on rappelle la fonction "Ecrit"
        BlocNotes.Convert(control.AsButton);
      }
    }
    
    CursorDeterminesOffset = true;

// etc...

Le problème des textes qui changeaient de couleur, c'est de mon côté, ça vient pas de ton module sourire

Là j'ai juste un problème, le curseur apparaît mais ne clignote pas (pourtant, le décompte de la variable a fonctionne comme il faut). Du coup, je sais pas trop ce qu'il se passe...


Dernière édition par Kitai le Mar 28 Juin 2022 - 13:28, édité 1 fois (Raison : ajout d'espaces pour pas perturber le colorisateur synaxique)
Revenir en haut Aller en bas
Contenu sponsorisé





Module Bloc-Notes - Page 2 Empty
MessageSujet: Re: Module Bloc-Notes   Module Bloc-Notes - Page 2 Empty

Revenir en haut Aller en bas
 
Module Bloc-Notes
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» Comment créer un bloc-note??? [Résolu]
» [Module] ShowInteractiveAreas
» Module Jeu de Plateforme
» Module InfoBulles
» Module Jeux de Tir

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Modules et plugins-
Sauter vers: