Afficher du texte coloré Hitskin_logo Hitskin.com

Ceci est une prévisualisation d'un thème de Hitskin.com
Installer le thèmeRetourner sur la fiche du thème



AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
-11%
Le deal à ne pas rater :
SAMSUNG 55Q70C – TV QLED 55″ (138 cm) 4K UHD 100Hz
549.99 € 619.99 €
Voir le deal

 

 Afficher du texte coloré

Aller en bas 
4 participants
AuteurMessage
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Afficher du texte coloré Empty
MessageSujet: Afficher du texte coloré   Afficher du texte coloré EmptySam 5 Déc 2009 - 20:14

Maj du script:

drawTextColored
Code:
var str, line, wid, s, e, part, col, draw, prevCol;
str = argument2
line = 0
wid = 0
s = 0
e = 0 // start - end balise
draw = true
prevCol = draw_get_color()

while(draw) {
    s = string_pos("<", str)
    e = string_pos(">", str)
    if(s == 1) {
        col = string_copy(str, s+1, e-s-1)
        if(col == "") col = "c_black"
        if(string_copy(col, 1, 2) == "c_" || string_copy(col, 1, 1) == '$')
            execute_string("draw_set_color(" + col + ")")
        else execute_string("draw_set_color(make_color("+col+"))")
        str = string_delete(str, 1, e)
        continue
    }
  
    if(string_copy(str, 1, 1) == '#') {
        line += 1
        wid = 0
        str = string_delete(str, 1, 1)
        continue
    }
  
    e = string_pos('#', str)
    if(e < s && e>0) s = e
    if(s == 0) {
        s = string_length(str)+1
        draw = false
    }
  
    part = string_copy(str, 1, s-1)
    draw_text(argument0 + wid, argument1 + line*16, part)
    wid += string_width(part)
    str = string_delete(str, 1, s-1)
}
draw_set_color(prevCol)

Code d'exemple (draw):
Code:
str = "Voici un <$53FF12>texte<> aux <255,0,0>couleurs<> multiples :p"
+"#<c_blue>Et en <c_aqua>plus<> il tient sur <20,100,50>plusieurs lignes hohoho"
drawTextColored(16, 16, str)


Edit: pour ceux sous GMS utiliser cette versions la:
Spoiler:


Dernière édition par onilink_ le Sam 12 Déc 2015 - 23:12, édité 10 fois
Revenir en haut Aller en bas
Playboy
Utilisateur confirmé: Rang ***
Playboy


Messages : 699
Localisation : Sur la lune
Projet Actuel : Sur le pont du Charles de Playboy

Afficher du texte coloré Empty
MessageSujet: Re: Afficher du texte coloré   Afficher du texte coloré EmptyDim 6 Déc 2009 - 0:16

Hum voyant le titre je suis venue me pencher sur ce script Smile

Vu que j'en ai fait un qui fait la même chose (disponible en téléchargeant mon rajout de fonction sur mon sujet) je viens apporter mes lumières Smile

Je trouve peu judicieux l'utilisation de la première boucle ....

Code:
for(i=0 ; i<string_length(str) ; i+=1)
c[i] = 0

Surtout que cette boucle n'est pas protégée .... Il faut savoir que GM ne permet que 32000 valeurs dans un array manuel (c'est à dire sans ds_create_list() (dont je ne sais pas si elle a les même contraintes :S) Donc 1 cela plantera et de 2 au final tu empêches un texte de plus de 32000 caractères.

Après pour le reste mon code est blindé pour pallier aux erreurs mais en enlevant les vérifications j'arrive à la même logique (temps d'exécution identique quoi) donc chapeau Smile J'ai mis aussi un peu plus d'arguments donc je peux te les suggérer : le alpha et les alignements. A voui j'ai aussi permis de faire différents formats de couleur ^^" (RGB ou couleur GM) mais c'est du chipottage là ^^".

Pour info voila ma fonction :

Code:

draw_string_color(x,y,halign,valign,alpha,"<r,g,b>str1<c_color>str2...")

Bonne chance si tu te penches dessus pour l'améliorer Smile
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Afficher du texte coloré Empty
MessageSujet: Re: Afficher du texte coloré   Afficher du texte coloré EmptyDim 6 Déc 2009 - 8:23

Ok merci pour ces infos ^^

Par contre y a quelqu'un qui utilise des textes a + de 32000 caractères ??
Ici c'est juste pour simplifier la coloration, en plus dans l'autre script on peu définir d'autres systèmes de lectures des balises donc....
Revenir en haut Aller en bas
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Afficher du texte coloré Empty
MessageSujet: Re: Afficher du texte coloré   Afficher du texte coloré EmptyDim 6 Déc 2009 - 12:28

Hum, à mon avis, un texte de 32000 caractères, colorisé ne rentrera pas dans une room standard (au max 1024 * 768) et si il est affiché dans une police plus petite, il ferra laggé le jeu comme pas possible.

En tout cas, c'est magnifiquement codé (comme Playboy sûrement noel ) !
Revenir en haut Aller en bas
Topaze22
*Excellent utilisateur*
Topaze22


Messages : 6213
Localisation : Sur la Lune
Projet Actuel : Projet HELLO/TOPAZE22 Mario Bros World

Afficher du texte coloré Empty
MessageSujet: Re: Afficher du texte coloré   Afficher du texte coloré EmptyDim 6 Déc 2009 - 15:34

onilink_ a écrit:
Ok merci pour ces infos ^^

Par contre y a quelqu'un qui utilise des textes a + de 32000 caractères ??
Ici c'est juste pour simplifier la coloration, en plus dans l'autre script on peu définir d'autres systèmes de lectures des balises donc....
Playboy oui
Revenir en haut Aller en bas
Contenu sponsorisé





Afficher du texte coloré Empty
MessageSujet: Re: Afficher du texte coloré   Afficher du texte coloré Empty

Revenir en haut Aller en bas
 
Afficher du texte coloré
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» afficher du texte
» comment afficher du texte?
» (Gm6)Nouvelle dll: Afficher un texte en dehors de la fenetre
» [Résolu] Afficher du texte dans un Step
» Texte dans du texte dans du texte

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: