grille est fonction sur les string

Il faudrait que la grille soit adapter au zoom
exemple, le zoom est a 100 %, la grille est de 16 x 16
ensuite je met le zoom a 50 %, la grille doit
s’auto adapter suivent le zoom donc ici la grille ferais 8 x 8
si le zoom est de 300 %, ici la grille ferais 48 x 48


Pourais t-on avoir plus de fonctions pour les chaines ?
je propose: (certain y sont peut être déjà !) (inspirer de la documentation de pure basic)

les plus:

CountString
FindString
InsertString
LCase
LSet
LTrim
Left
Len
Mid
RSet
RTrim
RemoveString
ReplaceString
ReverseString
Right
Space
StringByteLength
StringField
Trim
UCase
Val

les moins:

Asc
Bin
Chr
Hex
Str
StrD
StrF
StrU
ValD
ValF
ValQ

Pour plus d’imformation, regarder la documentation de pure basic


sa vaut ce que sa vaut, je propose des functions sur le presse papier:

mettre un texte
prendre le texte
y mettre un fichier (enfin sont adresse)
prendre un fichier (idem)
mettre une image
prendre une image

Hey je vois pas l’intérêt pour la grille !
Si je fais par exemple une grille de 5050, c’est pour pouvoir mapper avec des tiles de 5050, c’est l’intérêt de la grille quoi.
Pourquoi redimensionner la grille en fonction du zoom ? pour ne plus pouvoir placer ses objets ? :open_mouth:

L’idée de la grille est mauvaise, et pour tes fonctions, faudrait préciser a quoi elles servent, et de quels langage elles sont a la base…

Essayez et vous conprendrez

Tu pourrais pas mettre une petite description/documentation de toutes ces fonctions ? Ou au moins mettre un lien vers la doc ?
Ca aurait été sympa aussi de regarder si certains ne sont pas déjà dans GD, histoire que je me tape pas des pages de doc pour voir que ça existe déjà dans GD. :wink:
( Par exemple, FindString existe déjà dans GD, sous un autre nom ).

On doit ainsi pouvoir recréer nombres de ces fonctions en se débrouillant avec les expressions dans la catégorie Manipulation de Texte dans les éditeurs de texte/expression dans Game Develop.

Je veut bien mais je fait pas sa pour que tu me dise a la fin
Ouais, c’est nul , sa sert a rien :wink:

Moi je veut bien te faire un truc bien complet mais pas pour rien hein :wink: :slight_smile:
moi j’ai pas envie de perdre mon temps pour rien :wink:
je veut bien t’aider, pas de problème et avec joie mais pas pour rien :smiley:

Apres si ya des truc inutile ok (j’éspère juste que tous sera pas inutile :frowning: )
Ok je te fait sa des que je peut :stuck_out_tongue:

Une petit réponce aurais été bien :wink:

Pourquoi je dit sa:

Vous travaillez sur la scéne et vouler faire une grande zone
mais c’est pas pratique de déplacer tous le temps les barre de défillement
donc vous vous dite que zoomer à 50 % par exemple vous laisserais plus
de vision pour travailler, mais problème, en fesans cella
les objets retrecise mais pas la grille donc vous êtes perdus
car vous ne pouvez plus placez les objets sur la même échelle de grille
a moin de modifier la grille et de la mètre deux fois plus petite qu’avent !

Pour les fonction string:

[code]La bibliothèque String vous permet d’effectuer des opérations courantes sur des chaînes de caractères.

ValeurASCII = Asc(Chaine$) = Renvoie la valeur ASCII du premier caractère de la chaîne.

Texte$ = Chr(ValeurASCII) = Renvoie la caractère correspondant à la valeur de ValeurASCII.

Resultat = CountString(Chaine$, ChaineATrouver$) = Renvoie le nombre d’occurences de la ‘ChaineATrouver$’ comptabilisées dans la ‘Chaine$’. Cette fonction ne raisonne pas sur des mots, donc si la ‘ChaineATrouver$’ se trouve à l’intérieur d’un mot, elle sera comptabilisée quand même, comme le prouve l’exemple suivant.

Position = FindString(Chaine$, ChaineCherchee$, PositionDepart, PositionFin, Option) Essaie de trouver la ‘ChaineCherchee$’ dans la chaîne ‘Chaine$’, à partir de la position ‘PositionDepart’ jusqu’a la position de fin, une fois la position fin rencontrer, la recherche s’arrette, Option permet de specifier un masque de recherche: 1 = tien compte de la case, 2 = mot entier uniquement, 3 Igniore les chaines de caractères, les options peuvent être multiple, exemple: 1|2|3

Resultat$ = InsertString(Chaine$, ChaineAInserer$, Position) = Insère la ‘ChaineAInserer$’ dans la ‘Chaine$’ à la ‘Position’ spécifiée

Resultat$ = LCase(Chaine$) = Renvoie dans Resultat$ la chaîne Chaine$ convertie en lettres minuscules (quand c’est possible). Cette commande accepte les caractères accentués. Si un ‘É’ majuscule est trouvé, il sera transformé en un ‘é’ minuscule.

Resultat$ = LSet(Chaine$, Longueur, Caractere$) = Ajuste la longueur de la chaîne de caractères en y ajoutant des caractères en fin de chaîne si nécessaire pour atteindre la longueur spécifiée.Le paramètre ‘Caractere$’ est facultatif et peut être utilisé en lieu et place du caractère d’espacement qui est la valeur par défaut. Si la chaîne est plus longue que la longueur spécifiée, elle sera tronquée à partir du début de la chaîne.

Resultat$ = LTrim(Chaine$, Caractere$) = Supprime tous les espaces situés au début de la chaîne de caractères. Si le paramètre facultatif ‘Caractere$’ est spécifié, cela supprimera tous les ‘Caractere$’ situés au début de la chaîne. ‘Caractere$’ doit être une chaine contenant seulement un caratère.

Resultat$ = ReverseString(Chaine$, Mode) = Inverse tous les caractères de la ‘Chaine$’. Mode 1 = Le dernier caractère devient le premier caractère et ainsi de suite. Mode 2 = Pareil sauf que les caractères ne sont pas inversser, exemple: “Abc def ghi” donnera “ghi def Abc”

Resultat$ = Left(Chaine$, Longueur) = Renvoie les caractères de la partie gauche de la ‘Chaine$’. Le nombre de caractères renvoyés est déterminé par ‘Longueur’. Cette fonction renverra toute la chaîne si la longueur est supérieure à la taille de la chaîne de caractères.

Longueur = Len(Chaine$) = Renvoie la longueur en caractères de la chaîne.

Resultat$ = Mid(Chaine$, PositionDepart, Longueur) = Extrait une chaîne de longueur ‘Longueur’, extraite de la chaîne ‘Chaine$’, à partir du caractère situé à la position ‘PositionDepart’ (la position démarre à 1). Le paramètre ‘Longueur’ est facultatif, et précise combien de caractères seront extraits. Si le paramètre ‘Longueur’ est omis, les caractères sont extraits jusqu’à la fin de la chaîne ‘Chaine$’.

Resultat$ = RSet(Chaine$, Longueur, Caractere$) = Ajuste la longueur de la chaîne de caractères en y ajoutant des caractères en début de chaîne si nécessaire pour atteindre la longueur spécifiée. Le paramètre ‘Caractere$’ est facultatif et peut être utilisé en lieu et place du caractère d’espacement qui est la valeur par défaut. Si la chaîne est plus longue que la longueur spécifiée, elle sera tronquée à partir du début de la chaîne.

Resultat$ = RTrim(Chaine$ [, Caractere$]) = Supprime tous les espaces situés à la fin de la chaîne de caractères. Si le paramètre facultatif ‘Caractere$’ est spécifié, cela supprimera tous les ‘Caractere$’ situés à la fin de la chaîne. ‘Caractere$’ doit être une chaine contenant seulement un caratère.

Chaine$ = RemoveString(Chaine$, ChaineASupprimer$, Position, NbOccurences, Option) = Trouve toutes les occurrences de ChaineASupprimer$ dans Chaine$ et les supprime. ‘Position’ est l’index premier caractère à partir duquel la suppression s’effectue. La position du premier caractère est 1. Si le paramètre optionnel ‘NbOccurences’ est spécifié, la suppression s’arretera une fois ‘NbOccurences’ atteint. Option permet de specifier un masque de recherche: 1 = tien compte de la case, 2 = mot entier uniquement, 3 Igniore les chaines de caractères, les options peuvent être multiple, exemple: 1|2|3

String$ = ReplaceString(Chaine$, ChaineCherchee$, ChaineRemplacee$, PositionDepart, PositionDFin, Option) = Substitue toutes les occurrences de ‘ChaineCherchee$’ trouvées dans ‘Chaine$’ par ‘ChaineRemplacee$’. Le paramètre ‘PositionDepart’ est facultatif et permet de spécifier à partir de quel caractère le remplacement doit être effectué. Sa valeur minimale est 1. quand au paramètre optionnel PositionFin, il permet d’arreter le remplacement une fois cette position atteinte. Option permet de specifier un masque de recherche: 1 = tien compte de la case, 2 = mot entier uniquement, 3 Igniore les chaines de caractères, les options peuvent être multiple, exemple: 1|2|3

Resultat$ = Right(Chaine$, Longueur) = Renvoie les caractères de la partie droite de la chaîne Chaine$. Le nombre de caractères renvoyés est déterminé par Longueur. Cette fonction renverra toute la chaîne si la longueur est supérieure à la taille de la chaîne de caractères.

Resultat$ = Space(Longueur) = Créé une chaîne de caractères de longueur ‘Longueur’ et contenant que des espaces.

Resultat$ = Str(Valeur) = Convertit une valeur numérique de type quad en une chaîne de caractères.

Resultat = StringByteLength(Chaine$, Format) = Renvoie le nombre d’octet nécessaire pour stocker la chaîne de caractères en mémoire en fonction du ‘Format’ spécifié. Le paramètre ‘Format’ peut prendre l’une des valeurs suivantes: #PB_Ascii : La chaine est considérée comme une chaine ASCII, #PB_UTF8 : La chaine est considérée comme une chaine UTF-8, #PB_Unicode: La chaine est considérée comme une chaine unicode, Note: le nombre d’octets renvoyé n’inclus pas le caractère ‘nul’ de fin de chaîne. La taille du caractère nul est de 1 octet en mode ASCII et UTF-8 et de 2 octets en mode unicode.

Resultat$ = StringField(Chaine$, Index, Delimiteur$) = Renvoie un champ d’une chaîne à l’index spécifié. ‘Delimiteur$’ est le caractère choisi comme séparateur des champs de la chaîne (un seul caractère de longueur autorisée). La première position de ‘Index’ est 1.

Resultat$ = Trim(Chaine$, Caractere$) = Supprime tous les espaces situés au début et à la fin de la chaîne de caractères. Si le paramètre facultatif ‘Caractere$’ est spécifié, cela supprimera tous les ‘Caractere$’ situés au début et à la fin de la chaîne. ‘Caractere$’ doit être une chaine contenant seulement un caratère.

Resultat$ = UCase(Chaine$) = Renvoie dans Resultat$ la chaîne Chaine$ convertie en lettres majuscules (quand c’est possible). Cette commande accepte les caractères accentués. Si un ‘é’ minuscule est trouvé, il sera transformé en un ‘É’ majuscule.

Resultat = Val(Chaine$) = Convertit une chaîne en une valeur numérique. La chaîne doit représenter un entier au format décimal, hexadécimal (avec le préfixe ‘$’) ou binaire (avec le préfixe ‘%’).
[/code]

Je vais regarder chacune des fonctions pour voir si il y a l’équivalent, et si non, si ça veut le coup de l’intégrer.

J’ai r’ajouté des choses 4ian que je trouvais utile (positionfin)
dans findstring et replace string je croix

et cher plus si j’ai ajouté d’autre choses, a toi de voir :wink:

Quelle utilité ?

Conditions : Aucune
Actions : Faire =StrFind(Variable(MaVariable), “ChaineCherchee”, Position) à la variable Position
Faire =0 à Count

Tant que Position < StrLen(Variable(MaVariable))
Conditions : Aucune
Actions : Faire +1 la variable count
Faire =StrFind(Variable(MaVariable), “ChaineCherchee”, Position) à la variable Position

->StrFind(“Chaine”, “ChaineCherchee”, PositionDepart)

→ SubStr(“MaChaine”, 0, position)+“ChaineAInserer”+SubStr(“MaChaine”, position, StrLen(“MaChaine”))

Pourquoi pas.

→ Tant que StrLen(VariableString(MaVariable))<LongueurVoulue
Conditions : Aucune
Actions : Faire +" " à la variable MaVariable

→ Tant que StrAt(Variable(MaVariable), 0) = " "
Conditions : Aucune
Actions : Faire =SubStr(VariableString(MaVariable), 1, StrLen(VariableString(MaVariable))) à la variable MaVariable

Roo, quel intêret ?

Conditions : Aucune
Actions : Faire =0 à la variable Position

Tant que Position < StrLen(MaVariable)
Conditions : Aucune
Actions : Faire +StrAt(VariableString(MaVariable), Variable(Position)) à la variable VariableRenversée
Faire +1 à la variable Position

→ SubStr(“MaChaine”, 0, Longueur)

→ StrLen(“MaChaine”)

→ SubStr(“Chaine”, PositionDepart, Longueur)

→ Tant que StrLen(VariableString(MaVariable))<LongueurVoulue
Conditions : Aucune
Actions : Faire =" "+VariableString(MaVariable) à la variable MaVariable

→ Tant que StrAt(Variable(MaVariable), StrLen(Variable(MaVariable))-1) = " "
Conditions : Aucune
Actions : Faire =SubStr(VariableString(MaVariable), 0, StrLen(VariableString(MaVariable))-1) à la variable MaVariable

compilgames.net/dl/StrReplace.gdg

Il s’agit d’une fonction, le premier paramètre est le texte à modifier, le second le texte à chercher, le troisième le texte à mettre à la place. Le résultat est dans la variable StrReplaceResult ( visible au debugger ).

Pareil qu’au dessus en remplacant la chaine à remplacer par une chaine vide ( “” ).

→ SubStr(“Chaine”, StrLen(“Chaine”)-Longueur, StrLen(“Chaine”))

→ Répéter Longueur fois
Actions : Faire +" " à la variable MaVariableAvecDesSupersEspacesBonSang

→ ToString(Valeur)

Quel interêt ?

→ Appeler RTrim et LTrim sur la chaine.

→ ToNumber(“MaChaine”)

Je pense avoir fait le tour.
Ce que je fait pourrait d’ailleurs être rajouté en modèle d’évènement, en mettant tout ça dans des fonctions.

Bonjour 4ian !

Superbe dit moi t’es exemples :mrgreen:
donc ont peut déjà tous faire avec game develop :slight_smile:

Dic donc, mais c’est que t’es douer toi et j’en est jamais douté :wink:

StringField(Chaine$, Index, Delimiteur$) 

Je pense que c’est utile ça pour extraire les chaines entre un séparateur, exemple

Chaine$ = "Ceci | est | une |chaine| de |caractères |

donnera je crois un truc du genre: ‘Ceci est une chaine de caractères’

éxcelente idée 4ian :mrgreen:

Même avis, ajoute les models dans GD, ça sera donc encore plus simple de l’utiliser :slight_smile:

Pour la grille, tu en pense quoi 4ian