Thema: In click

Einzelnen Beitrag anzeigen

Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: In click

  Alt 26. Jan 2017, 00:33
Du könntest dir eine Basisklasse für deine Fragen erstellen:

Delphi-Quellcode:
TQuestion = Class
private
  fId: Integer;
  fText: String;
  fYesId: Integer;
  fNoId: Integer;
  ...
public
  construcor create(AId: Integer; const AText: String; YesID, NoID: Integer);
end;
Hier könnten dann auch weitere Daten abgelegt werden (etwa Erfahrungspunkte die man für eine Antwort bekommt, oder Geld, usw...
Natürlich könnten dann auch weiter Klassen abgeleitet werden die nicht nur ja/nein als Antwort bedingen...

Dann benötigst du eine Liste mit der du deine Geschichte verwalten kannst. Mit einem aktuellen Delphi etwa

fStory: TObjectList<TQuestion> TList geht natürlich auch, dann muss die Objektverwaltung selbst gemacht werden.

Die Geschichte baust du dann z.B. im FormCreate deiner Mainform auf:

Delphi-Quellcode:
begin
  fStory := TObjectList<TQuestion>.Create;
  fStory.Add(TQuestion.Create(1, 'Das Auto bremst kurz ab und du hast die Gelegenheit herauszuspringen. Wagst du es?', 2,3));
  fStory.Add(TQuestion.Create(2, 'Gerade so geschafft, das Fahrzeug reißt aus und kracht gegen eine Mauer. Gehst du hin und siehst nach ob jemand überlebt hat?', 3, 4));
  fStory.Add(TQuestion.Create(3, 'Sorry du bist tod!, -1, -1));
...
Natürlich muss TQuestion einen passenden Constructor dafür haben.

Das eigentliche Spiel beginnt immer mit Item 0 deiner Story. Du zeigst den Text an und der Anwender kann dann mit Ja oder Nein antworten. Entsprechend seiner Wahl nimmst du dann die fYesId oder fNoId und durchsuchst die Liste nach dieser fId. Das ensprechende Item enthält dann die nächste Frage (oder beendet die Geschichte).
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat