AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-20%
Le deal à ne pas rater :
-20% Récupérateur à eau mural 300 litres (Anthracite)
79 € 99 €
Voir le deal
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 stringResize

Aller en bas 
+2
D-z
Caly
6 participants
AuteurMessage
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
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.

stringResize Empty
MessageSujet: stringResize   stringResize EmptyVen 19 Oct 2012 - 19: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 *****
D-z


Messages : 1611
Localisation : Montpellier

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 19: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 ****
Caly


Messages : 1285
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.

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 19: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 *****
Térence


Messages : 2213
Localisation : Oui

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 20: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
onilink_


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

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 20:03

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

_________________
stringResize Runningpotato1stringResize TvF6GED stringResize MdetltS
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 20: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
Invité
Invité




stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 20: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
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 21: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*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 21:46

Oui mais là c'est pas compilé mop

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


Messages : 1285
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.

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 22: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
onilink_


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

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 19 Oct 2012 - 22:35

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

_________________
stringResize Runningpotato1stringResize TvF6GED stringResize MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
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.

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptySam 20 Oct 2012 - 13: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
onilink_


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

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptySam 20 Oct 2012 - 13: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...

_________________
stringResize Runningpotato1stringResize TvF6GED stringResize MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
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.

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptySam 20 Oct 2012 - 19: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
onilink_


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

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptySam 20 Oct 2012 - 19:43

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

_________________
stringResize Runningpotato1stringResize TvF6GED stringResize MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
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.

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptySam 20 Oct 2012 - 19: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 *****
glcraft


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

stringResize Empty
MessageSujet: Re: stringResize   stringResize EmptyVen 26 Oct 2012 - 21: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é





stringResize Empty
MessageSujet: Re: stringResize   stringResize Empty

Revenir en haut Aller en bas
 
stringResize
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: