Gamestudio Links
Zorro Links
Newest Posts
Blobsculptor tools and objects download here
by NeoDumont. 03/28/24 03:01
Issue with Multi-Core WFO Training
by aliswee. 03/24/24 20:20
Why Zorro supports up to 72 cores?
by Edgar_Herrera. 03/23/24 21:41
Zorro Trader GPT
by TipmyPip. 03/06/24 09:27
VSCode instead of SED
by 3run. 03/01/24 19:06
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
0 registered members (), 863 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
sakolin, rajesh7827, juergen_wue, NITRO_FOREVER, jack0roses
19043 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 3 of 5 1 2 3 4 5
Re: Dialog box darstellung? [Re: tagimbul] #466452
06/14/17 19:00
06/14/17 19:00
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
kopier die funktion nochmal neu. hab kurz nach dem posten meinen code editiert. das forum hier löscht backslashs. (um nen backslash zu schreiben muss man zwei machen: \\ -> \) der fehler ist das fehlende '\0'

Last edited by Kartoffel; 06/14/17 19:00.

POTATO-MAN saves the day! - Random
Re: Dialog box darstellung? [Re: Kartoffel] #466456
06/14/17 22:48
06/14/17 22:48
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
ja so hatte ich es aber es klapt nun ganz gut mit meiner variante.
bei deiner hatte ich pixel abweichungen bei arial20b


meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466461
06/15/17 07:20
06/15/17 07:20
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
kurze frage. ich bastle meinen code gerade dynamsich um.
jetzt bin ich bei alokieren nicht so ganz sicher ob ich das korregt mache
Code:
function string_array_initialisieren (var elements)
{
	STRING **	vararray = (STRING **)malloc(sizeof(STRING *));
	vararray = (STRING **)realloc(vararray, elements*sizeof(STRING *));
	return vararray;
}

var** var_array_initialisieren(var size)
{
	var **arr=malloc(sizeof(var *)*size);
	return arr;
}

.....

STRING **testarr = string_array_initialisieren(elements);
var* testarr = var_array_initialisieren(elements);



also wenn ich var* testarr so erstelle ist das richtig oder muss ich var ** testarr ?




Last edited by tagimbul; 06/15/17 07:20.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466462
06/15/17 08:45
06/15/17 08:45
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Hmm, okay. Warum's Abweichungen gibt, keine Ahnung confused

Zu den Arrays: Kommt drauf an, ob du einen Array aus VARs oder aus VAR-POINTERN willst. Normalerweise wenn man einen Array erstellen will nimmt man immer den Typ eines Elements (z.B. 'var') und hängt noch ein '*' an um daraus sozusagen eine indizierbare Liste aus den Elementen dieses Typs zu machen. ('var' -> 'var*', 'STRING*' -> 'STRING**').
Strings objekte werden in Acknex generell schon als Pointer verwendet, deshalb wird daraus ein 'STRING**'. Wichtig: immer str_create() & str_remove()/ptr_remove() richtig verwenden!

In deinem Beispiel erstellt die Funktion ein Array (var**) bestehend aus var-pointern (var*) (der Typ 'var*' im unteren Bereich passt nicht zu dem Rückgabewert der funktion 'var**'!). Falls du einen Array von var-objekten willst würdest du 'var * VarArray = sys_malloc(sizeof(var) * ArraySize);' verwenden (wie gerade beschrieben).

Aus Zufall würde dein Code oben auch mit dem Typ-Fehler funktionieren, weil in dem Fall (32bit Anwendung) ein Pointer genau die gleiche größe hat wie eine var. Also kann man ein 'var*' Array auch als 'var' Array "misbrauchen" (sollte man natürlich nicht).

Last edited by Kartoffel; 06/15/17 08:48.

POTATO-MAN saves the day! - Random
Re: Dialog box darstellung? [Re: Kartoffel] #466463
06/15/17 10:12
06/15/17 10:12
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
ah okey danke vielmal =) habs gecheckt ^^ bei STRINGS einfach ein * mehr ^^

Code:
function string_array_initialisieren (var elements)
{
	STRING ** vararray = sys_malloc(sizeof(STRING *) * elements);
	return vararray;
}
....

	STRING **zeilen = string_array_initialisieren(x);



nun habe ich ein anderes problem ^^"

ich definiere ein struct

Code:
typedef struct 
{ 
	var len; 
	VECTOR color; 
	STRING ** string;
	STRING* name;
} COLORSTYLES;



dann erstelle ich mit der funktion das struct als array
Code:
COLORSTYLES** colorstyle_initialisieren (var elements)
{
	COLORSTYLES **arr=sys_malloc(sizeof(COLORSTYLES * )*elements);
	return arr;
}

.....

	COLORSTYLES * colorstyles= colorstyle_initialisieren(colorstyles_summe);



und nun das problem. im struct habe ich einen STRING** vorbereitet den ich dann eigentlich ebenfalls so füllen wollte

Code:
colorstyles[0].string = string_array_initialisieren(10);



doch dann kommt als fehlermeldung "syntax error"


so erstelle ich den string array:
Code:
function string_array_initialisieren (var elements)
{
	STRING ** vararray = sys_malloc(sizeof(STRING *) * elements);
	return vararray;
}



ich versteh nicht wieso das nicht geht...
bei anderen aufrufungen von "string_array_initialisieren" ist es kein problem.
nur hier wenn ich in struct string pointer schreiben will...
kannst du mir da helfen?
mfg tom


edit:
witzigerweise geht das hier
Code:
colorstyles[0].string  = sys_malloc( sizeof(STRING*) * colorstyles[0].len );



edit2:
doch wenn colorstyles[0].len grösser ist als 5 dann crasht es o.O

Last edited by tagimbul; 06/15/17 10:37.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466464
06/15/17 10:41
06/15/17 10:41
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
Kartoffel Offline
Expert
Kartoffel  Offline
Expert

Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
1) In deinem 3. code (COLORSTYLES):
Erstmal stimmt wieder der typ nicht. Du erstellst einen array aus 'COLORSTYLES*' elementen (also ein 'COLORSTYLES**'), gibst das ganze zurück, aber weist es einer 'COLORSTYLES*' variablen zu.

Abgesehn davon hast du glaub ich ein * zu viel. Wenn ich das richtig versteh, willst du eine Liste an COLORSTYLES-elementen und nicht pointern machen. Das wäre:
Code:
COLORSTYLES ColStyles * = sys_malloc(sizeof(COLORSTYLES) * NumStyles);


2) STRING* array problem: wenn du in lite-c auf members von einem arrayelement zugreifen willst brauchst du klammern.
Code:
(ColStyle[0]).string = blabla;


3) will noch anmerken dass die strings zu dem zeitpunkt immernoch nicht vollständig initialisiert sind. dazu brauchst du noch ein str_create()

Allgemein würd ich dir empfehlen dich ein bisschen in die pointer/array geschichte einzulesen.


POTATO-MAN saves the day! - Random
Re: Dialog box darstellung? [Re: Kartoffel] #466466
06/15/17 11:05
06/15/17 11:05
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
bin im handbuch kurz über structs stöber gewesen.
nun mache ich es mal so wie es dort gezeigt wird.


ahh ja das mit dem struct string klammern hab ich vergessen ! thx!

Code:
COLORSTYLES * mycol = malloc(sizeof(COLORSTYLES)); // creates a new SPOT struct at runtime
	memset(mycol,0,sizeof(COLORSTYLES)); // set the struct content to zero (it's undefined after malloc)	
	COLORSTYLES* colstyles = malloc(colorstyles_summe*sizeof(COLORSTYLES)); // creates an array of colorstyles_summe SPOT structs



jetzt stürzt nichts mehr ab =)

jetzt kann ich auch den string im struct erstellen
Code:
(colstyles[i]).str  = sys_malloc( sizeof(STRING*) * colstyles[i].len );



und dann füllen und bearbeiten
Code:
((colstyles[0]).str)[0] = str_create(""); 
 	str_cpy(((colstyles[0]).str)[0], zeilen[0]);



geilo thx grin


meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466468
06/15/17 16:49
06/15/17 16:49
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212




HEUREKA !!!
JAAA grin geschaft ^^
und alles dynamisch. text dateien werden ausgelesen, speicher alloziiert und und und ^^
voll cool grin *freude*

jetzt muss ich es nurnoch mit den icons kombinieren dann hab ichs =)

ich hab 2 text dateien
dialog.txt und keywords.txt
beide werden ausgelesen und am ende alles voll automatisch in structs verpackt. bereit um von einem dialog system benutzt zu werden =)


meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466474
06/16/17 09:54
06/16/17 09:54
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
hey ich räume gerade den code auf und schreibe verschiedene funktionen
nun hab ich das problem das ich ein sehr chaotisches struct habe das ein array ist und ihn ihm selber sind weitere arrays
Code:
((colstyles[i]).str)[j]



wie kann ich eine "call by reference" funktion schreiben wo ich so ein struct array reingeben kann und auf die arrays im array schreiben kann?
is ein weilchen her seit ich das zuletzt gemacht habe ^^"


ah ok ich habs.
Code:
function call_by_ref_test (COLORSTYLES ** colstyles,var colorstyles_summe)
{
	var i;
	for (i=0; i<colorstyles_summe; i++)
	{
		(*colstyles)[i].name = str_create(""); 
		(*colstyles)[i].len = 0; 
	}	
}

......

	call_by_ref_test (&colstyles,colorstyles_summe);



Last edited by tagimbul; 06/16/17 10:09.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Dialog box darstellung? [Re: tagimbul] #466501
06/18/17 20:42
06/18/17 20:42
Joined: Jun 2010
Posts: 212
tagimbul Offline OP
Member
tagimbul  Offline OP
Member

Joined: Jun 2010
Posts: 212
hey =)
ich hab die tage viel am code rumgebastelt, er ist beinahe fertig =)
das dynamische erstellen von structs geht mittlerweile echt gut nur bei VECTOR hab ich ein problem.
ich hab schon etwas im forum rumgesucht wie man dynamisch einen vector erstellt aber nichts gefunden...

ich habe eine struct mit einem vector pointer und dann noch eine zeile fürs allokieren.

Code:
typedef struct 
{ 	
	VECTOR * color;
	var color_n; // sagt wieviel farben es braucht
} LINE_WORD_COLOR;

....

//ein array vom struct LINE_WORD_COLOR wurde erstellt

....

(line_word_color)[i].color_n  = 2;
(line_word_color)[i].color =  sys_malloc(sizeof(VECTOR*)*(line_word_color)[i].color_n );

 .....

((line_word_color)[i].color)[j].x = 255;


also strings und var's kann ich in struct array allokieren aber dann bei den vectoren geht eine menge schief :S
wie allokiert man VECTOR arrays richtig?
mfg tom


edit:

oh gott xd ich hab gerade versucht den fehler zu isolieren und es schmiert schon ab wenn ich nur eine einzige variable nutze ^^"
ufff

wenn ich mein struct...
Code:
typedef struct 
{ 	
	STRING ** str; // speichert die wörter ab die gefunden wurden
	var  color_n;
	var * color_nr; // sagt welche wort nummer welche farbe hat
	VECTOR * color;
	var len; //die summe der diggits, bzw die anzahl der strings in dieser zeile die benötigt werden
	
} LINE_WORD_COLOR;  // defines a struct type named "DIALOG"


...als array erzeuge...
Code:
LINE_WORD_COLOR * colors_in_zeilen = sys_malloc(sizeof(LINE_WORD_COLOR*) *  all_dialog_lines  );




....dann kann ich doch gleich in variablen reinschreiben oder?
Code:
(colors_in_zeilen)[i].color_n =0;



sieht das für euch korrekt aus? da sollten eig. keine fehler auftauchen oder?

Last edited by tagimbul; 06/18/17 21:44.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Page 3 of 5 1 2 3 4 5

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1