RMEx / RME

Extension tool for RPGMaker VXAce
http://rmex.github.io/
MIT License
40 stars 10 forks source link

Modifier l'espacement entre deux lignes (text_show) #470

Open YendaHusk opened 4 years ago

YendaHusk commented 4 years ago

Problème lié à une commande

Configuration (lorsque le bug a été rencontré)


Description du bug

Hello ! Je travail sur un système de dialogue custom via la commande text_show et text_progressive. J'aimerais pouvoir stocké mes dialogues en une seul ligne dans un fichier texte. Ça fonctionne sans aucun souci de ce côté. Par contre, pour faire des dialogues plus long j'aimerais utilisé le retour à la ligne. Ce que je fait via la commande \n Le problème que je rencontre, c'est l'espacement entre les deux lignes qui est beaucoup trop grand. Du coup je me demander si il été possible de configuré ça, ou alors de le forcer d'une manière ou d'une autre ? image

BilouMaster commented 4 years ago

Ca peut être une forme de conflit entre les deux scripts (ORMS / RME, les deux manipulent la valeur d'espacement du texte) puisque l'espacement attendu devrait être égal à celui d'un texte normal (Commande événement > Message) avec ou sans ORMS.

Je suis un peu occupé là... (comme toujours) alors si tu veux tordre un peu (provisoirement) les paramètres de ORMS pour comparer la différence entre text_show et la commande événement habituelle, ça pourrait déjà t'aider à mieux préciser les paramètres qui entrent en jeux.

Sinon un petit patch et on n'en parle plus. ;)

j.🌸

YendaHusk commented 4 years ago

"Malheureusement" le problème ne viens pas d'Orms, même sans, le décalage est toujours présent. J'ai essayer de jouer un peu avec les valeurs de Orms, notamment FONT_HEIGHT et LINE_HEIGHT La première ne donne évidemment rien de bon et la deuxième change effectivement les espacements entre les lignes, mais pour les menus uniquement, ça n'affecte pas les retours à la ligne. =/ image

xvw commented 4 years ago

C'est un bug. L'espacement entre les textes n'est pas calculé de la même manière que les messages.

YendaHusk commented 4 years ago

Il y aurait un moyen de remédier à ça temporairement avec un patch ou autres ?

BilouMaster commented 4 years ago

Bien sûr, mais @xvw semble occupé. J'allais chercher la ligne où était calculé ce fameux espacement pour comprendre sur quoi xvw s'était basé (si ce n'est pas celui par défaut, j'imagine un espacement configuré dans le profil de la font)... Mais finalement je dois reconfigurer mon PC avant, je l'ai réinitialisé il y a pas longtemps.

Si j'y pense, je verrais pour bricoler un patch demain, sinon si tu trouve toi-même, n'hésite pas à patcher toi-même et partager ici la manière dont tu as patché... C'est bon d'avoir une certaine vision de comment fonctionnent les scripts que tu ajoutes à ton projet et de savoir les patcher toi-même si besoin. (Et encore plus cool de partager tes patchs qui pourraient inspirer des corrections, ajouts ou modifications pour la prochaine MàJ si le projet est encore maintenu.)

YendaHusk commented 4 years ago

Du coup j'ai chercher dans les 6800 lignes de codes d'rme, j'ai pas réussi à trouver (ou à comprendre) la ligne qui gère ça. Si vous savez comment la trouver je veux bien essayez par moi-même de bidouiller ça. Même si je doute d'en avoir les compétences.. :D

gr-im commented 4 years ago

6800 ? RME fait ~17400 lignes (sans la documentation) ! La méthode qui gère les textes se trouve ici : https://github.com/RMEx/RME/blob/master/src/EvEx.rb#L3455

Je pense que ici : https://github.com/RMEx/RME/blob/master/src/EvEx.rb#L3467 :

width, height = widths.max + font.size, heights.max + font.size

le dernier +font.size semble être de trop.

Quoi qu'il en soit, je pense qu'il faudrait réécrire "un peu" le support de textes et sortir l'attribut size du profil.

YendaHusk commented 4 years ago

Ah oui effectivement, j'avais pas fait attention qu'une fois rendu à 9999, le compteur reprenait à 0. Du coup merci beaucoup ! Le + font.size était effectivement en trop. J'ai également modifié la ligne du dessous pour qu'une nouvelle ligne fasse remonté le texte plutôt que d'afficher les lignes suivantes en dessous.

    width, height = widths.max + font.size, heights.max
    total_height = height * lines.length + (font.size * lines.length)

Merci de votre aide à tous ! :) Et vive RME ! :D

xvw commented 4 years ago

Merci @pytre ! Effectivement, je corrigerai ça dans la version 2.2.0. Je suis aussi d'accord sur le fait de retirer la taille des profiles (et d'ajouter un interligne).