 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 02.09.2002, 10:02 Titel: Funktionen... |
|
|
Wie kann ich eine Funktionschreiben, die unendlich Parameter aufnehmen kann und wie greife ich dann auf die einzelnen Parameter zu...gibt es dann eine Funktion die sagen kann parameter[0] , parameter[1],... und so in der ARt.
Ich brauche es für eine Funktion, mit der man die Tastaturbelegung flexibel ändern kann...
Code: |
//Aktionen festlegen
//AB = AktionButton
In_Datei_abspeichern(
int AB_FORWARD= GetButton(),
int AB_BACKWARD= GetButton(),
int AB_LEFT= GetButton(),
int AB_RIGHT= GetButton(),
int AB_FIRE= GetButton(),
int AB_EXIT= GetButton(),
);
//....
|
GetButton() erzeugt eine Texteingabe drücke eine Taste und liefert den Wert für die Taste zurück der dann in AB_FORWARD, ABD_BACKWARD,... gespeichert wird.
Ich möchte also alle Variablen die da oben mit AB_ beginnen in eine Textdatei speichern und am Anfang soll das Programm dann alle Belegungen auslesen...
Cu TheMillenium _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 02.09.2002, 11:53 Titel: |
|
|
Dein Problem kann man auch ohne Unendlich Parameter lösen. Aber trotsdem, es gibt mehrere Möglichkeiten, Unendlich Parameter zu übergeben, aber immer müssen sie von einem (immer gleichbleibenden) Typ sein.
Variante 1: Über einen Pointer, der als Array fungiert. Ein zweiter Parameter sollte dann noch die Länge des Array's übergeben.
Variante 2: Genau so, wie printf, scanf und ähnliche Funktionen aufgebaut sind. Ich weiß, das man in der Funktionsdeklaration einfach ... angibt, als letzten Parameter. Wie diese Variablen dann auszulesen sind, weiß ich leider nicht genau, schau dir doch einfach mal den Quelltext zu printf an.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 02.09.2002, 13:59 Titel: |
|
|
Hallo,
mir ist nicht klar, warum du sowas bei deinem Problem brauchst, warum brauchst du "unendlich" viele Parameter?
Christian |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 03.09.2002, 02:59 Titel: ... |
|
|
Ich weiß nicht, ob ich sie wirklich brauche...
...aber ich möchte die Funktion so schreiben, dass ich eine neue Funktion(wie Springen,Kriechen,...) mit 1 oder 2 Zeilen Code Änderung einbauen kann...und das auch nur an einer Stelle...wenn ihr jetzt versteht, was ich meine?
Printf Funktion anschauen...aber wie? Ich habe mit der Windows-Suche im C++ Include Verzeichnis nach printf im Volltext Modus gesucht...hab auch einige gefunden...doch ich sehe bei printf nie den Funktionsrumpf...
Kann mir da einer helfen???
Cu TheMillenium _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 03.09.2002, 07:06 Titel: |
|
|
Hallo,
ich denke, es geht einfacher ohne, aber suche in der MSDN mal nach Ellipse und va_arg, va_end, va_start. Ellipse wir folgende Konstruktion (wie bei printf genannt):
int func( int first, ... ) // ellipse
Jetzt nochmal zu deinem Problem. Warum änderst du die Funktion nicht so, dass GetButton() ein Argument (die Taste) und true oder false zurückgibt, wenn der Knopf/Taste gedrückt wurde? Z.B.:
AB_FORWARD = GetButton(BN_FORWARD);
AB_BACKWARD = GetButton(BN_BACKWARD)
usw.
Christian |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 03.09.2002, 08:46 Titel: ... |
|
|
Scheint so als ob ihr mich nicht richtig versteht...
Ich meinte dass so am Anfang vom Spiel werden die Tastaturbelegungen aus einer Textdatei ausgelesen...
Wenn man aber ne andere Tastenbelegung haben will...klickt man in nem Menü auf Tastaturbelegung ändern...
dann kommt wie auch bei etwas älteren Spielen... Taste für Richtung Links, Recht, Oben, Unten...Springen, Schießen,...
und damm werden die neuen Tastaturbelegungen in die Textdatei geschrieben...also die alte Textdatei überschrieben...
So will ich das machen...
Cu TheMillenium _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Sören JLI Master Trainee

Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 03.09.2002, 12:32 Titel: |
|
|
Hi!
Guck doch mal nach Action Mapping in der DX Doku(es gibt auch ein Beispiel dazu!)! |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 04.09.2002, 11:57 Titel: ... |
|
|
...als ob ich nicht darauf gekommen wäre!!!
Na klar geht das ..ist halt alles auf Englisch...komme jetzt halt nur in die 9. Klasse da hat man die ganzen Wörter noch nicht...außerdem lernt man da eh fast keine aus dem Computerbereich...DirectPlay und so...da kapier ich ja alles noch...aber ACtion MApping...Mmmh...ja wenn du nen Flugsimulator hast..mach das Mal so...wenn du ein AUtoRennspiel hast dann so,...
Also wirklich!!!
Deshalb wollt ich's selber machen DeusEx hat ja auch alles in ner Datei abgespeichert und da gab's ja noch gar nicht ActionMapping...
Cu TheMillenium _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|