AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu array

Ein Thema von ISAS · begonnen am 24. Jun 2004 · letzter Beitrag vom 24. Jun 2004
Antwort Antwort
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#1

Frage zu array

  Alt 24. Jun 2004, 17:14
Delphi-Quellcode:
var
Player:array[0..1] of TPlayer;
Enemy:array[0..1] og TEnemy;
Es handelt sich hier um ein Spiel , das hier is aber nur ein Beispiel.
Habe für das Spiel einen Lvl-editor gebastelt. Nun habe ich folgenden Code bei OnCreate:

for i:=0 to (sections.Count-1) do Vorher wurde aus einer Textdatei herausgelesen, wieviele sections sie beinhaltet. In diesem Fall wären es zB. 4.


Delphi-Quellcode:
  if typ=1 then begin
   with TPlayer.Create(DXSpriteEngine1.Engine) do
    begin
     Player[i] := TPlayer.Create(DXSpriteEngine1.Engine);
     Player[i].Image:=Form1.DXImageList1.Items[0];
     Player[i].x:=strtoint(s)*32;
     Player[i].y:=strtoint(t)*32;
    end;
   end;

  if typ=2 then begin
   with TEnemy.Create(DXSpriteEngine1.Engine) do
    begin
     Enemy[i] := ETnemy.Create(DXSpriteEngine1.Engine);
     Enemy[i].Image:=Form1.DXImageList1.Items[0];
     Enemy[i].x:=strtoint(s)*32;
     Enemy[i].y:=strtoint(t)*32;
    end;
   end;
(s und t sind für mein Problem nicht wichtig. Unschwer zu erkennen sind es die Koordinaten)

So, nun sollte er 2 Spieler und 2 Gegner kreiren. Macht aber aber deswegen nicht, da zB. die ersten 2 sections vom typ 1 sind und die nächsten 2 vom typ 2.

Das heisst nun:
Player[0]...
Player[1]...
Enemy[2]...
Enemy[3]...

Wie man nun unschwer erkennen kann, darf es ja kein Enemy 2 oder 3 geben. Richtig müsste es nämlich so lauten:

Player[0]...
Player[1]...
Enemy[0]...
Enemy[1]...

Wie kann ich dies nun machen??
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#2

Re: Frage zu array

  Alt 24. Jun 2004, 17:30
"i mod 2" gibt entweder 0 oder 1!
0 mod 2 = 0
1 mod 2 = 1
2 mod 2 = 0
3 mod 2 = 1
usw.
  Mit Zitat antworten Zitat
Benutzerbild von ISAS
ISAS

Registriert seit: 24. Sep 2003
Ort: Vietnam
205 Beiträge
 
Delphi 4 Standard
 
#3

Re: Frage zu array

  Alt 24. Jun 2004, 17:36
Und wenn da nun 20 Players und 50 Enemies sind?? Wie geht das dann?? Kann man das dann überhaupt verwenden??

PS: Das mit dem laden hab ich eigentlich schon geschafft, halt nur umständlich mit einigen Variablen. Falls es eine bessere Lösung gibt, immer her damit. Hab aber eine andere Frage. Wie kann man die Grösse eines arrays während dem Projekt festlegen?
Signatur wurde auf Wunsch geändert. Deswegen einfach hier drauf klicken-> www.geggi.at.gg
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Frage zu array

  Alt 24. Jun 2004, 18:16
Moin!

Verwende doch einfach nicht eine Variable (i) für beide Typen sondern 2 getrennte und zähle die getrennt hoch bzw. setze die eine dann immer wieder auf 0 zurück, wenn ein neuer "Block" kommt.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: Frage zu array

  Alt 24. Jun 2004, 19:28
also so in etwa:

Delphi-Quellcode:
//player
for i:=1 to PlayerAnzahl do
   with TPlayer.Create(DXSpriteEngine1.Engine) do
    begin
     Player[i] := TPlayer.Create(DXSpriteEngine1.Engine);
     Player[i].Image:=Form1.DXImageList1.Items[0];
     Player[i].x:=strtoint(s)*32;
     Player[i].y:=strtoint(t)*32;
    end;

for i:=1 to EnemyAnzahl do
   with TEnemy.Create(DXSpriteEngine1.Engine) do
    begin
     Enemy[i] := ETnemy.Create(DXSpriteEngine1.Engine);
     Enemy[i].Image:=Form1.DXImageList1.Items[0];
     Enemy[i].x:=strtoint(s)*32;
     Enemy[i].y:=strtoint(t)*32;
    end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
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