|
Re: Lite-C wirklich besser?
[Re: MasterQ32]
#337636
08/12/10 09:54
08/12/10 09:54
|
Joined: Jan 2009
Posts: 18
Unknow
OP
Newbie
|
OP
Newbie
Joined: Jan 2009
Posts: 18
|
Aber das geht doch nur wenn im Hauptordner das Mainscript/Level drin ist. Meine Struktur sieht aber so aus:
----------------------------- [Gameordner](ohne Scripts drinnen) ------------------------------------------------------------------------- ----------------| Level | Modelle | Script | Bilder |---------------
Und so weiter.Aber das Main Script ist im Levelordner und die anderen im ScriptOrdner.
Achja und damit ich nich extra einen neuen Therad Ordner aufmachen muss.Wie ist das mit der "temp" variable in C-lite ich kriege immer eine Meldung, "undeclaired Identifier"(hoffe jetzt hab das richtig geschrieben :D) Muss ich die neu definieren?
Last edited by Unknow; 08/12/10 09:57.
|
|
|
Re: Lite-C wirklich besser?
[Re: Unknow]
#337664
08/12/10 11:56
08/12/10 11:56
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Ich verstehe deine Grafik nicht. Du kannst auf beliebige Ordnerstrukturen zugreifen. Das war in CScript schon so und das ist in LiteC nicht anders. Betrachte von der Hauptdatei ausgehend dein ganzes Spiel in Form von relativen Pfadangaben. Schreib doch mal auf, wie du das meinst. Ich hab mir ja Mühe gegeben, aber so ganz habe ich dein Problem nicht verstanden. Mach für temporäre Variablen einfach lokale Variablen auf.
void meineFunktion ()
{
float meineTemporaereVariable;
meineTemporaereVariable = ...
}
|
|
|
Re: Lite-C wirklich besser?
[Re: MasterQ32]
#337682
08/12/10 14:01
08/12/10 14:01
|
Joined: Jan 2009
Posts: 18
Unknow
OP
Newbie
|
OP
Newbie
Joined: Jan 2009
Posts: 18
|
Ich meinte damit kurz und doof gesagt.Es hat nicht funktioniert bei mir weil mein Main script in einem Unterordner war. Ich kann das mit dem Path immoment nicht testen weil ich gerade dabei bin alles wieder auseinander zu tun.Ich war nämlich so doof ohne eine Sicherung alles aus allen Ordnern in einen zu haun und die alten dann zu löschen ^^" Wegen dem mit temp: Beides will klappt nicht weil temp ja kein Vector ist/war und auch keine einfache Variable.Mit temp konnte ich immer sowohl sowas:
temp = str_cmp(save_dir, "\\Save");
als auch sowas machen Auch im Handbuch steht: Die temp-Variable wird von vielen Funktionen für Zwischenergebnisse benutzt. All diese anderen Funktionen laufen währen der wait-Zeit. Beim Erreichen des ersten wait(1) hat temp einen Wert von 1 - aber nach dem wait(1) kann temp alle möglichen Werte haben. Das ist davon abhängig, was die anderen Funktionen damit getan haben.
Merke: Betrachten Sie wait als eine Anweisung, die definitiv alle globalen Variablen und Pointer ändern kann. Nur der MY- und der you-Pointer sowie lokale Variablen behalten garantiert ihre Werte innerhalb einer Funktion.
|
|
|
Re: Lite-C wirklich besser?
[Re: Unknow]
#337685
08/12/10 14:41
08/12/10 14:41
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Dein main-Script ist in einem Unterordner? Ja und? ^^ dann mach doch sowas wie
#define PRAGMA_PATH ".\\..\\models"
oder
#define PRAGMA_PATH ".\\..\\data\\textures"
oder sowas... ich sehe das Problem nicht. Du musst einfach nur deine Ordnerstruktur abbilden. Das war in C-Script NICHT anders! Es wäre einfacher für uns, dir zu helfen, wenn du mal konkret sagen würdest was du (ausgehend von deinem top-level-folder) für eine Ordnerstruktur hast, wo dein main-Script sitzt und in welchen Ordner bei dir was sitzt...
Ja, wenn du temporäre Vektoren brauchst, mach das doch auch einfach über lokale Variablen:
VECTOR meinTemporaererVektor; vec_set(&meinTemporaererVektor, vector(1,2,3)); ...
Das "temp" so gesehen nicht mehr existiert, liegt daran, dass man nicht
float temp;
und
int temp;
und
VECTOR temp;
haben kann, da du dann ja temp auf drei verschiedene Weisen deklarierst. Früher in CScript war ja alles numerische eine var-Variable. temp war früher also ein vector, bzw. ein 3-er Array, also sowas wie
var[3] temp;
und wenn du einfach temp verwendet hast, hast du damit implizit auf das erste Element zugegriffen. Konntest aber temp auch in den Vektor-Anweisungen verwenden, da es ja ein 3er Array war. Zusätzlich wurde unter C-Script alle Objekt-Pointer und deren Adressen auf var abgebildet, da eine var ja eh 4 Byte groß war, sodass du auch Strings in vars oder auch Panels speichern konntest.
In C ist aber alles typisiert! - Da geht das dann nicht.
Last edited by HeelX; 08/12/10 14:42.
|
|
|
Re: Lite-C wirklich besser?
[Re: HeelX]
#337701
08/12/10 16:29
08/12/10 16:29
|
Joined: Jan 2009
Posts: 18
Unknow
OP
Newbie
|
OP
Newbie
Joined: Jan 2009
Posts: 18
|
Die struktur hab ich ja oben versucht zu erklären  Aber kann sein das es jetzt klappt werde es gleich dann testen. Woran es liegen könnte ist das ich in lite-c bei PRAGMA_PATH anstatt // nur/ gemacht habe also Praktisch : #define PRAGMA_PATH ".\..\models" Wiso eigentlich auf 3 Weisen also ehrlich gesagt habe ich das immer nur so verstanden das Sachen wie float,int,var einfach nur variablen sind mit anderer Größenordnungen haben.Und das Lite-C sie sowieso automatisch "umwandelt". Aber im Grunde heißt das doch für mich ich muss mir meine eigenen definieren muss.Einfach float temp; int temp; VECTOR temp; oder var[3] temp; geht ja nicht,oder? wenn nicht dann muss ich doch nur float temp_1; int temp_2; VECTOR temp_vec; machen und das dann in meinem alten Script jeweils austauschen,oder?
Last edited by Unknow; 08/12/10 16:30.
|
|
|
Re: Lite-C wirklich besser?
[Re: HeelX]
#337752
08/13/10 00:32
08/13/10 00:32
|
Joined: Jan 2009
Posts: 18
Unknow
OP
Newbie
|
OP
Newbie
Joined: Jan 2009
Posts: 18
|
Ja das war aber auch nur ein Beispiel  Alo das mit dem PATH klappt jetzt,danke vielmals! Das einzige was ich immernoch nicht verstanden hab wiso float und int und wann soll ich welches einsetzen? geht nicht auch einfach var vtemp; ? EDIT: Ok bei VECTOR temp_vec; gibt es immernoch ein Problem ich kann bei ihm schließlich nur die x,y,z Werte bestimmen und nicht pan,tilt,roll.Kann ich dies nicht irgendwie verbinden?So das ich mit einem vector sowohl temp_vec.pan als auch temp_vec.x machen kann? Sonst kriege ich immer: "PAN" is not a member of "VECTOR"
Last edited by Unknow; 08/13/10 04:59.
|
|
|
Re: Lite-C wirklich besser?
[Re: Unknow]
#337761
08/13/10 07:16
08/13/10 07:16
|
Joined: Jul 2001
Posts: 6,904
HeelX
Senior Expert
|
Senior Expert
Joined: Jul 2001
Posts: 6,904
|
Du kannst natürlich auch weiterhin var nutzen, es zwingt dich ja niemand float, int, double usw. zu verwenden.
Wegen der Vektor-Geschichte: für Winkel benutzt du ANGLE, aber du kannst auch in die Vektoren Winkel reinschreiben, basiert ja immer noch auf var. Also sowas wie
vec_set(my->pan, vector(0,45,90));
funktioniert weiterhin.
Wenn du explizit mit pan, tilt und roll arbeiten willst, musst du das über ANGLE lösen.
float ist ein Gleitkommaformat, also sowas wie 3.2123. Double ist dasselbe nur mit doppelter Genauigkeit. Int speichert nur ganzahlige Werte, also -1, 4, 2, 0... wenn du eine Gleitkommazahl in eine int schreibst, wird der Nachkommateil abgeschnitten. Also sowas wie
int eineZahl; eineZahl = 3.71025;
ergibt dann 3 (gerundet wird nicht!)
long ist dasselbe wie double für float, also int's mit erweitertem Zahlenbereich.
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|