Verbesserung meines Textspieles

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Gawayn
Beiträge: 4
Registriert: Sa 28. Feb 2015, 10:00

Verbesserung meines Textspieles

Beitrag von Gawayn »

Hallo ich bin dabei mich gerade ein bisschen in Lazarus einzufuchsen.
Ich habe nun damit angefangen eine Art Textadventure zu erstellen und so wie ich es probiert habe funktioniert es auch, wird aber, denke ich, wenn man es erweitert zu umständlich.
So habe ich mir das erstmal zum Anfang gedacht
So habe ich mir das erstmal zum Anfang gedacht
Plan.png (8.93 KiB) 1561 mal betrachtet
So zieht es gerade aus.

Code: Alles auswählen

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button2.visible:=false;
  Button3.visible:=false;
  Button4.visible:=false;
  Button5.visible:=false;
  Button6.visible:=false;
end;
 
procedure TForm1.Button1Click(Sender: TObject);   //Start
begin
  Button2.visible:=true;
  Button3.visible:=true;
  Button1.visible:=false;
  Label1.Caption:='Flur';
end;
 
procedure TForm1.Button2Click(Sender: TObject);  //W. Raum
begin
  Button2.visible:=false;
  Button3.visible:=false;
  Button6.visible:=true;
  Button4.visible:=true;
  Button5.visible:=false;
  Label1.Caption:='W. Raum';
 
end;
 
procedure TForm1.Button3Click(Sender: TObject);    //Raum
begin
  Button2.visible:=false;
  Button3.visible:=false;
  Button6.visible:=true;
  Button4.visible:=false;
  Button5.visible:=true;
  Label1.Caption:='Raum';
end;
 
procedure TForm1.Button4Click(Sender: TObject);  //Garten
begin
  Button2.visible:=true;
  Button3.visible:=false;
  Button4.visible:=false;
  Button5.visible:=true;
  Button6.visible:=false;
  Label1.Caption:='Garten';
end;
 
procedure TForm1.Button5Click(Sender: TObject);  //Küche
begin
  Button1.visible:=false;
  Button2.visible:=false;
  Button3.visible:=true;
  Button4.visible:=true;
  Button5.visible:=false;
  Button6.visible:=false;
  Label1.Caption:='Küche';
end;
 
procedure TForm1.Button6Click(Sender: TObject); //Flur
begin
  Button2.visible:=true;
  Button3.visible:=true;
  Button1.visible:=false;
  Button4.Visible:=false;
  Button5.visible:=false;
  Label1.Caption:='Flur';
end;
 
procedure TForm1.Button7Click(Sender: TObject);       //close
begin
  close;
end;
 
end.
 
Also jetzt zu meinen Probleme oder Fragen :oops:

1. Ich würde gerne für jeden Raum eine Klasse erstellen, wo dann jeder Raum eigene Buttons erzeugt und wieder entfernt.
2.Würde ich gerne ein Inventar.

Leider weiß ich nicht wie das funktioniert und hoffe nun auf tatkräftige Unterstützung des Forums :oops:

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Verbesserung meines Textspieles

Beitrag von theo »

Guten Tag
Gawayn hat geschrieben: 1. Ich würde gerne für jeden Raum eine Klasse erstellen, wo dann jeder Raum eigene Buttons erzeugt und wieder entfernt.
Schon wieder ein "ich muss" alias "ich würde gerne" der hofft, dass das Forum ihm die Hausaufgaben löst, weil er sich eigentlich kein bisschen für das Programmieren interessiert. :wink:
Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Was heißt das?

BeniBela
Beiträge: 320
Registriert: Sa 21. Mär 2009, 17:31
OS, Lazarus, FPC: Linux (Lazarus SVN, FPC 2.4)
CPU-Target: 64 Bit

Re: Verbesserung meines Textspieles

Beitrag von BeniBela »

Gawayn hat geschrieben: wo dann jeder Raum eigene Buttons erzeugt und wieder entfernt.
Buttons?

Warum kein old-school-Spiel, wo man nur Text hat?
Dann gibt man in einem Textfeld ein, was man tut, und das Spiel parst den deutschen Satz

Die Düsseldorfer Stadtbibliothek hatte ein super, tolles Buch, das beschreibt, wie man sowas programmiert.
Aber sie scheinen es weggeworfen/verloren zu haben. Idioten, diese Bibliothekare. Allesamt.

Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Das geht mit einem Array

Oder einer TList.

Was auch immer man bevorzugt

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verbesserung meines Textspieles

Beitrag von Komoluna »

BeniBela hat geschrieben:
Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Das geht mit einem Array

Oder einer TList.

Was auch immer man bevorzugt
Das haben wir ja in einem anderen Thread schon groß ausdiskutiert...

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Gawayn
Beiträge: 4
Registriert: Sa 28. Feb 2015, 10:00

Re: Verbesserung meines Textspieles

Beitrag von Gawayn »

theo hat geschrieben:Guten Tag
Gawayn hat geschrieben: 1. Ich würde gerne für jeden Raum eine Klasse erstellen, wo dann jeder Raum eigene Buttons erzeugt und wieder entfernt.
Schon wieder ein "ich muss" alias "ich würde gerne" der hofft, dass das Forum ihm die Hausaufgaben löst, weil er sich eigentlich kein bisschen für das Programmieren interessiert. :wink:
Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Was heißt das?
zu 1. nein das ist keine Hausaufgabe!
Ich habe zwar im Untterricht Lazarus haben damit aber auch erst vor zwei Wochen angefangen.
Und wenn es ne Hausaufgabe wäre könnte ich ja auch mein jetztigen Stand abgeben :P


2.Da habe ich wohl ein Wort vergessen :D
Also ich hätte gerne ein Inventar wo zum Beispiel ein Schlüssel reinkommt den man später um eine Tür zu öffnen reinkommt
BeniBela hat geschrieben:
Gawayn hat geschrieben: wo dann jeder Raum eigene Buttons erzeugt und wieder entfernt.
Buttons?

Warum kein old-school-Spiel, wo man nur Text hat?
Dann gibt man in einem Textfeld ein, was man tut, und das Spiel parst den deutschen Satz

Die Düsseldorfer Stadtbibliothek hatte ein super, tolles Buch, das beschreibt, wie man sowas programmiert.
Aber sie scheinen es weggeworfen/verloren zu haben. Idioten, diese Bibliothekare. Allesamt.

Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Das geht mit einem Array

Oder einer TList.

Was auch immer man bevorzugt
Die Möglichkeit mit Buttons ist mir als erstes in den Sinn gekommen und hat mir gefallen.

Kannst du mir vllt beide Möglichkeiten erklären? Also Array und Tlist?

Gawayn
Beiträge: 4
Registriert: Sa 28. Feb 2015, 10:00

Re: Verbesserung meines Textspieles

Beitrag von Gawayn »

Komoluna hat geschrieben:
BeniBela hat geschrieben:
Gawayn hat geschrieben: 2.Würde ich gerne ein Inventar.
Das geht mit einem Array

Oder einer TList.

Was auch immer man bevorzugt
Das haben wir ja in einem anderen Thread schon groß ausdiskutiert...

MFG

Komoluna
Könntest du dann vllt bitte den Link dazu posten?

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verbesserung meines Textspieles

Beitrag von Komoluna »

Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Gawayn
Beiträge: 4
Registriert: Sa 28. Feb 2015, 10:00

Re: Verbesserung meines Textspieles

Beitrag von Gawayn »

Komoluna hat geschrieben:Gerne:
http://www.lazarusforum.de/viewtopic.php?f=10&t=8559

MFG

Komoluna
Gut da wird die Frage gelöst was besser von den beiden Sachen ist.
Aber erklärt wird das nicht.

aber danke


mfg

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Verbesserung meines Textspieles

Beitrag von Komoluna »

Für arrays gibt es ein gutest Tutorial hier: http://www.delphi-treff.de/tipps-tricks ... he-arrays/
TList wird hier durchgenommen: http://www.delphi-treff.de/tutorials/vcl/tlist/

(is beides eigentlich für delphi, aber lässt sich genauso gut in Lazarus/FPC anwenden)

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

mintpc
Beiträge: 124
Registriert: Mo 6. Sep 2010, 18:39
OS, Lazarus, FPC: Win 7 (L 1.6 FPC 3.0.0)
CPU-Target: Win 7
Wohnort: Mailand

Re: Verbesserung meines Textspieles

Beitrag von mintpc »

Am besten geht das objektorientiert:

http://www.martinjakobs.de/pages/objekt ... ierung.php --> Modul 1 - Grundlagen der OOP (Das Textadventure)

Gruß
mintpc

Antworten