Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   RPG Spiel ''Book of Secrets'' (https://www.delphipraxis.net/173133-rpg-spiel-book-secrets.html)

pustekuchen 12. Feb 2013 10:41

AW: RPG Spiel ''Book of Secrets''
 
Zitat:

Zitat von Pryoxer (Beitrag 1203026)
Für das Inventar hab ich's schon Arrays verwendet (war eine heidenarbeit bei insgesamt 50 Slots ) hab jetzt aber ehrlich gesagt keine Lust das nochmal neu zu machen da bei mir alles funktioniert aber trotzdem danke :D

Das klingt nicht sehr gut. Die Anzahl der Slots sollten keine Rolle spielen. Du arbeist aber schon mit schleifen?

Puke 12. Feb 2013 10:48

AW: RPG Spiel ''Book of Secrets''
 
Hi,
meiner Meinung nach, kannst du unendlich viele Slots haben, trotzdem werden dir Arrays deswegen nicht mehr Arbeit machen. Allerdings muss man dazu natürlich auch Schleifen verwenden:o. Allerdings ohne Schleifen stellt sich die Frage, wie hast du die ganzen Images auf die Formen gebracht:shock:?

Schönen DienstagsGruß
Puke

Pryoxer 12. Feb 2013 10:52

AW: RPG Spiel ''Book of Secrets''
 
Ok kann's mir voraussichtlich aber erst morgen oder übermorgen ansehen weil wir noch weg fahren aber dann Schau ich's mir an :D

Pryoxer 12. Feb 2013 10:57

AW: RPG Spiel ''Book of Secrets''
 
@Pustekuchen und puke
Ja Schleifen verwende ich schon aber wie soll ich die Schleifen und Arrays kombinieren damit ich theoretisch unendlich viele Slots habe ?
(Sry hab davon leider noch nix gehört aber liegt auch daran das ich mir einiges selbstbeibringen musste weil in der Schule sind wir eigentlich noch nicht mal bei den Arrays angelangt :D )

Puke 12. Feb 2013 11:28

AW: RPG Spiel ''Book of Secrets''
 
Kenn ich,
also eigentlich haben mich die DP und Delphi-Treff mich gelehrt Delphi zu benutzen.

Theoretisch geht es so:

Code:
var
zaehler: Integer

begin
array(Gegenstände)-> tlabel(Namen im Inventar)

schleife (zaehler< anzahlderslots):
begin

 tlabel[zaehler]:= array(Gegenstände)[zaehler];
 zaheler:= zaehler+1;

end;
end;
Damit wären auf deinen 50 Slots oder mehr, überall im Inventar Namen angegeben die alle im Array stehen. (Dies jetzt nicht nach Delphi kopieren, musst es halt nach Pascal übersetzen)

Gruß und viel Erfolg
Puke

divBy0 12. Feb 2013 13:16

AW: RPG Spiel ''Book of Secrets''
 
Zeig doch mal wie du es mit Arrays gelöst hast.

Puke 12. Feb 2013 13:54

AW: RPG Spiel ''Book of Secrets''
 
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

lbccaleb 12. Feb 2013 13:58

AW: RPG Spiel ''Book of Secrets''
 
Zitat:

Zitat von Pryoxer (Beitrag 1203063)
@Pustekuchen und puke
Ja Schleifen verwende ich schon aber wie soll ich die Schleifen und Arrays kombinieren damit ich theoretisch unendlich viele Slots habe ?
(Sry hab davon leider noch nix gehört aber liegt auch daran das ich mir einiges selbstbeibringen musste weil in der Schule sind wir eigentlich noch nicht mal bei den Arrays angelangt :D )

Dynamische Array Längen kannst du mit SetLength bestimmen.
Dazu sollte es hier und mit Google mehr als genügend Hinweise geben wie das funktioniert ;)

Puke 12. Feb 2013 14:00

AW: RPG Spiel ''Book of Secrets''
 
Meins war jetzt die simpelste Idee überhaupt.:-D
Damit kann und muss jeder klar kommen.8-)

Allerdings mit SetLength geht vieles viel Einfacher.

Gruß Puke

nuclearping 12. Feb 2013 15:22

AW: RPG Spiel ''Book of Secrets''
 
Zitat:

Zitat von Pryoxer (Beitrag 1203063)
@Pustekuchen und puke
Ja Schleifen verwende ich schon aber wie soll ich die Schleifen und Arrays kombinieren damit ich theoretisch unendlich viele Slots habe ?

Delphi-Quellcode:
type
  TInventoryItem = record
    ID: Integer;
    Name: String;
    ItemType: ...
    ...
  end;
  TInventoryArray = Array of TInventoryItem;

var
  InvArr: TInventoryArray;
  I: Integer;
begin
  SetLength(InvArr, 50);
  for I := 0 to Length(InvArr) - 1 do
    begin
      ...
    end;
  ...
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz