Aufgrund diesen Themas habe ich folgende Scripts erstellt:
[hide=array_create_numbers]
Alles anzeigen
[/hide]
[hide=array_create_strings]
Alles anzeigen
[/hide]
Es funktioniert folgendermaßen:
Als erstes Argument übergibt man den Namen des Arrays und als zweites Argument eine Folge von Zahlen bzw. Zeichenketten, die in einem String durch Kommata getrennt sind. Es wird ein Array mit dem gewählten Namen und den übergebenen Werten erstellt und man erhält die Länge des Arrays zurück.
Achtung: array_create_numbers(...); funktioniert nur mit reellen Zahlen und array_create_strings(...) nur mit Strings. Ein weiteres Problem ist, dass man kein Komma als Wert übergeben kann. Vielleicht werde ich das Problem noch fixen.
Hoffe jemand kann diese Scripts gebrauchen.
Edit: Vorschlag von Soul Reaver in die Tat umgesetzt.
MfG Trixt0r
[hide=array_create_numbers]
GML-Quellcode
- /*
- ** Usage:
- ** array_create_numbers(name,values);
- **
- ** Arguments:
- ** name name of the array (string)
- ** values values which have to be saved in the array (string with comma seperation)
- **
- ** Returns:
- ** length of the created array
- **
- ** Example:
- ** array_create_numbers("test_array","0,1,1,2,3,5,8,13");
- **
- ** By Trixt0r
- */
- var name,values,i,j,temp;
- name = argument0;
- values = argument1;
- j = 0;
- for(i = 1; i <= string_length(values); i+=1){
- temp = "";
- while(string_char_at(values,i) != "," && i <= string_length(values)){
- temp += string_char_at(values,i);
- i += 1;
- }
- if(temp != ""){
- variable_local_array_set(name,j,real(temp));
- j += 1;
- }
- }
- return j;
[hide=array_create_strings]
GML-Quellcode
- /*
- ** Usage:
- ** array_create_strings(name,values,seperator);
- **
- ** Arguments:
- ** name name of the array (string)
- ** values values which have to be saved in the array (string with comma seperation)
- ** seperator character which seperates the values (optional) default is ','
- **
- ** Returns:
- ** length of the created array
- **
- ** Example:
- ** array_create_strings("test_array","a,b,c,d,E,FGH,I,JK");
- **
- ** By Trixt0r
- */
- var name,values,i,j,temp,sep;
- name = argument0;
- values = argument1;
- if(string(argument2) != '0') sep = argument2;
- else sep = ',';
- j = 0;
- for(i = 1; i <= string_length(values); i+=1){
- temp = "";
- while(string_char_at(values,i) != sep && i <= string_length(values)){
- temp += string_char_at(values,i);
- i += 1;
- }
- if(temp != ""){
- variable_local_array_set(name,j,temp);
- j += 1;
- }
- }
- return j;
Es funktioniert folgendermaßen:
Als erstes Argument übergibt man den Namen des Arrays und als zweites Argument eine Folge von Zahlen bzw. Zeichenketten, die in einem String durch Kommata getrennt sind. Es wird ein Array mit dem gewählten Namen und den übergebenen Werten erstellt und man erhält die Länge des Arrays zurück.
Achtung: array_create_numbers(...); funktioniert nur mit reellen Zahlen und array_create_strings(...) nur mit Strings. Ein weiteres Problem ist, dass man kein Komma als Wert übergeben kann. Vielleicht werde ich das Problem noch fixen.
Hoffe jemand kann diese Scripts gebrauchen.
Edit: Vorschlag von Soul Reaver in die Tat umgesetzt.
MfG Trixt0r
Albert Einstein schrieb:
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Trixt0r ()