AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  
anipassion.com
Partagez | 
 

 stringResize

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: stringResize   Ven 19 Oct 2012 - 17:19

Code:
/*#########################################
Header(str Texte, int SizeMax);

Description:
Met des sauts de lignes dans le "Texte" si la ligne dépasse
la longeur en pixel indiqué par "SizeMax".

Note:
ne pas oublier d'attribuer la police d'écriture avant
d'appeler la fonction.

Arguments:
0 = Texte à traiter.
1 = largeur maximum en pixel des lignes du Texte.

#########################################*/

var str, index_pos, cursor_pos, save_pos;
    str = argument0;
    index_pos=0;
    cursor_pos=0;
    save_pos=0;

//Tant qu'on a pas vérifié tout les caractéres du texte.
while( cursor_pos<string_length(str) ){
   
    cursor_pos+=1;
       
    //Si le caractére est un espace.
    if( string_char_at(str, cursor_pos)==' ' )
        //On récupere le mot.
        if( string_width( string_copy(str,index_pos,cursor_pos-index_pos) ) < argument1 ){
            save_pos=cursor_pos+1;
        //si avec le mot on dépasse la limite.
        }else{
            //on saute une ligne et on redéfini les positions des curseurs.
            str=string_insert('#',str,save_pos);
            index_pos=save_pos;
            cursor_pos=save_pos;
        }
}

//Retourne le texte agencé.
return str;
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1608
Localisation : Montpellier

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 17:57

Mais... c'est pas ce que fait draw_text_ext() ?

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 17:58

Citation :
Mais... c'est pas ce que fait draw_text_ext() ?
Ok, je viens de perdre dix minutes de ma vie. mop
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 18:00

Nan, draw_text_ext permet de définir la largeur entre les lignes et les caractères ; ca c'est pour afficher du texte sur plusieurs lignes sans dépasser d'un cadre par exemple.

Edit : j'ai rien dit et je viens d'apprendre quelque chose...
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 18:03

Ahah :b
Mais bon ça te fait monter ton skill c'est toujours ça de gagné :p

_________________
                 
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1608
Localisation : Montpellier

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 18:55

Boh, on est bien en train de recoder des fonctions de parcours de liste nous... Ç'toujours rigolo de voir comment ça marche à l'intérieur :p

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
sachem
­Capitaine Star


Messages : 15489
Projet Actuel :


MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 18:56

On plus quand on comprend le mécanisme on peut toujours trouver un moyen de l'améliorer

_________________
Revenir en haut Aller en bas
http://host-a.net/u/shm31/
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1608
Localisation : Montpellier

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 19:07

De bien l'utiliser surtout. Genre, ne pas faire un parcours par index sur une liste chaînée...

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
avatar

Messages : 3325
Localisation : Dans une canonnière wookie.
Projet Actuel :
Things


MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 19:46

Oui mais là c'est pas compilé mop

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 20:17

Mmm le seul avantage c’est quand même que je peut stoker le texte formaté dans une variable (ce qui n'est pas d'une réelle nécessitée je l'admet).

Citation :
on est bien en train de recoder des fonctions de parcours de liste

Voici avec quoi je m'amuse aussi:
Code:
//Initialisation
    dsSetDefault('NC');
    dsSetSeparator(' :: ', '|');

//----- Inventaire.
    inventory=dsCreate("name|quantity|slot");


//----- Quêtes.
    quest=dsCreate("name");
        dsAddKey(quest, "active");
        dsAddKey(quest, "etape|money|xp");
               
        dsAddItem(quest,
            "money :: 150000");


//----- Challenges.
    challenge=dsCreate("name|status|description");

        dsAddItem(challenge, 
            "name :: Poing de fer|"+
            "status :: 0|"+
            "description :: Tuer 10 ennemies à main nue.|" );

        dsAddItem(challenge, 
            "name :: Main de velours|"+
            "status :: 0|"+
            'description :: Trouver 10 "Grande Bourses".|' );

        dsAddItem(challenge, 
            "name :: Griffes sanglantes|"+
            "status :: 0|"+
            "description :: Egorger 10 ennemies.|" );

        dsAddItem(challenge, 
            "name :: Doigts de fée|"+
            "status :: 0|"+
            "description :: Enchanter 10 armes blanches.|" );
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: stringResize   Ven 19 Oct 2012 - 20:35

Dommage qu'avec GM ce soit impossible de faire des listes :/

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: stringResize   Sam 20 Oct 2012 - 11:32

Tu veux dire quoi par listes?

Sinon je n'ai pas perdu mes dix minutes car si on affiche caractère par caractère (affichage d'un dialogue à la RPG) "draw_text_ext" cause un p'tit bug tout moche.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: stringResize   Sam 20 Oct 2012 - 11:47

Un liste (simplement chaînée la) c'est une structure : { Valeur, pointeur }
ou pointeur pointe sur la prochaine case. En gros comme les tableaux tu peut y mettre plusieurs éléments, mais tu ne peut pas connaitre un élément en fonction de son identifiant.
Il faut parcourir toute la liste pour trouver le dernier élément par exemple.
L’intérêt c'est que l’insertion et la suppression d'éléments est constant quelque soit la taille de la liste : O(1)

Pour la liste doublement chaînée t'as deux pointeurs, un pour la case d'avant et un pour la case d'après.


Sinon le seul moyen que je vois sous GM de faire une liste, ce serais de déclarer un énorme tableau et l'utiliser comme un buffer.
Pas très intéressant quoi...

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: stringResize   Sam 20 Oct 2012 - 17:38

Moi j'utilise une "Map" qui pointe vers des "List" niveau performance ça marche assez bien mais c'est réellement le bordel à mettre en place.
Mais bon GM n'intégrera jamais les pointeurs, déjà q'une gestion de la mémoire et du typage c'est au dessus de leurs projets...
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: stringResize   Sam 20 Oct 2012 - 17:43

Pas besoin de pointeurs de toute façon, suffit de faire un garbage collector et le tour est réglé :b

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: stringResize   Sam 20 Oct 2012 - 17:56

Bha les "list" de GM fonctionne avec un GC.
Vus que si tu as trois entrées et que tu supprime l'entrée 3 celle-ci deviens l'entrée deux. C'est d'ailleurs pour ça que j'utilise généralement les "list" plutôt que les tableaux.
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: stringResize   Ven 26 Oct 2012 - 19:28

neanmoins il n'y a pas de fonction toute faite en C/C++, ce script peut servir avec un petit remodelage
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Contenu sponsorisé




MessageSujet: Re: stringResize   

Revenir en haut Aller en bas
 
stringResize
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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