Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 30.01.2006, 15:10 Titel: Aus dem Programm gehen ohne den Spielfortschritt zu verliern |
|
|
Ich habe ein Textadventure gemacht und wollte wissen wie man es schafft das der Spieler (Mit einer Taste,am besten ESC,muss aber nicht sein wenn es zu kompliziert ist) aus dem Programm rausgehen kann und dann beim nochmaligen öffnen des Programm genau an der selben Stelle des Spiels ist. _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.01.2006, 15:40 Titel: |
|
|
Hallo!
Wenn ich das jetzt richtig verstanden habe, könnte dir folgendes vllt. weiterhelfen:
Speichere den Raum in dem man ist, das Inventar und was es sonst noch in deinem Textadventure gibt ab.
Dass das Fenster nach dem Drücken der Escape-Taste schließt, könntest du hiermit erreichen:
Code: |
IF INKEY$=CHR$(27) THEN END ' 27 ist der ASCII-Code für Escape
|
Achja, zum speichern:
Code: |
OPEN "spielstand.dat" FOR OUTPUT AS #1
PRINT #1, Raum
FOR speichereInventar=0 TO 9
PRINT #1, Inventar(speichereInventar)
NEXT speichereInventar
|
Für's laden kannst du das nehmen:
Code: |
OPEN "spielstand.dat" FOR INPUT AS #1
INPUT #1, Raum
FOR ladeInventar=0 TO 9
INPUT #1, Inventar(ladeInventar)
NEXT ladeInventar
|
Das ganze könnte man noch dynamischer machen, sowohl von der Wahl des Dateinamens als auch mit dem Speicher und Laden des Inventars (unbegrenzt Inventar, durch dynamische Arrays und einer LOOP WHILE NOT EOF(1)-Schleife beim Laden, ...)
Hoffe das hilft
/edit: Das Inventar muss natürlich in einem Array gespeichert werden, die Werte dementsprechend auch... _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Odys
Anmeldungsdatum: 14.01.2006 Beiträge: 40
|
Verfasst am: 30.01.2006, 17:21 Titel: |
|
|
Erstmal danke an Mao und dreal.
Aber ich dachte mir es eigentlich so das ich das so einrichten kann das der Spieler einfach aus dem Spiel rausgehten kann und dann wenn er das Programm nochmal öffnet sofort schon an der Stelle ist wo er aufgehört hat.
(Ohne das er Spiel speichern und laden muss)
p.s. Wenn das nicht möglich ist dann habe ich noch da Problem das Maos Programmierung bei mir in Line 4 fehlerhaft ist _________________ Ich bin (noch) kein Profi, habt etwas Verständnis ! |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 30.01.2006, 17:45 Titel: |
|
|
Ähm..ja, du musst das Array namens "Inventar" natürlich auch dimensionieren.
Code: |
DIM SHARED Inventar (9) AS String
|
Das bietet Platz für 10 aufnehmbare Gegenstände, was reichen dürfte. Natürlich musst du bei "nehme Notebook" dann auch "Notebook" in die Liste einfügen. Am Besten machst du das mit einem 2. Array, welches einen Byte-Wert aufnehmen kann. Auch mit 10 Elementen, dort speicherst du jeweils was in dem Array "Inventar" frei ist, um somit in "Inventar" herrein schreiben zu können.
Mein Code kannst du doch direkt als SUB benutzen.
Dann nimmst du eben statt
Code: |
IF INKEY$=CHR$(27) THEN END
|
einfach
Code: |
IF INKEY$=CHR$(27) THEN Speichern: END
|
Nicht vergessen, dass dann ebend auch die SUB "Speichern" angelegt werden muss, in welcher sich die kleine Routine befindet.
Das gleiche kannst du auch mit dem Laden machen:
einfach beim Start des Programmes den Spielstand als erstes laden. Hierzu empfielt es sich, wieder eine SUB mit Namen "Laden" zu erstellen.
So, ich hoffe das geht so.
/edit: Ich hatte ein SHARED vergessen -> geändert! _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|