Einzelnen Beitrag anzeigen

Benutzerbild von Puke
Puke

Registriert seit: 7. Nov 2012
123 Beiträge
 
Delphi XE5 Architect
 
#37

AW: RPG Spiel ''Book of Secrets''

  Alt 12. Feb 2013, 13:54
Moin,
ich hab mal nen Delphi-Beispiel für dich:

Delphi-Quellcode:
unit Mainform;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  Items: array [0..49] of String=('Wurst','Käse','Brot','Axt','Joghurt','Apfel','Schinken','10','11','12',
                                  '13','14','15','16','17','18','19','20','21','22',
                                  '23','24','25','26','27','28','29','30','31','32',
                                  '33','34','35','36','37','38','39','40','41','42',
                                  '43','44','45','46','47','48','49','50','51','52'); //Alle Items die es gibt

var
  Form1: TForm1;
  Inventar: array [0..49] of Integer; // Die Items die im Inventar liegen (in Zahlen -> Bsp. Item 5 oder Item 27)
  Anzahl: array [0..49] of Integer; // Anzahl der Items
  Itemfield: array [0..49] of TLabel; // Labels in die die Daten übertragen werden

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  x,y: Integer;
  zaehler: Integer;
begin
  x:=0; // Left-Angabe für Labels
  y:=0; // Top-Angabe für Labels
  zaehler:=0; // Zaehler -> benötigt für Schleife
  Randomize; // Weglassen

  while zaehler<50 do
  begin
    // Der Teil ist unwichtig (ich muss irgenwelche Daten haben) -> Weglassen
    Inventar[zaehler]:= random(49);
    Anzahl[zaehler]:= random(100);

    //Hier wird übertragen
    Itemfield[zaehler]:= tlabel.Create(self);
    with Itemfield[zaehler] do
    begin
      Parent:= Form1;
      Visible:=true;
      left:=x;
      top:=y;
    end;

    Itemfield[zaehler].Caption:= items[(Inventar[zaehler])]+' - '+inttostr(anzahl[zaehler]);

    //Variablen werden erhöht für Anordnung
    x:= x+100;
    if x=1000
    then begin
      y:= y+100;
      x:=0;
    end;

    zaehler:=zaehler+1;

  end;
end;

end.
Das Ganze entscheidet per Zufall was du im Inventar hast und gibt es dir mit Hilfe von Labels aus. Viel Spaß damit.

Gruß Puke
Gruß Puke
  Mit Zitat antworten Zitat