Autor Beitrag
Ironwulf
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Mo 26.12.05 16:18 
Ich hab da ne Procedure die macht mir weng kummer ;D

Player1Unit ist die varible die mir sagt wieviel Spielfiguren Spieler 1 besitzt
UNitINdex ist ne art Zählvariable mit der ich die Sprites weiter zähle
Sel ist das gewählte Sprite (TSprite)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var k: Integer;
begin
  k:= 0;
  UnitIndex:= -1;
  Repeat
    Inc(UnitIndex);
    if UnitIndex < Player1Unit Then
    begin
      Sel:= Form1.DXSpriteEngine1.Engine.Items[UnitIndex];
      If Sel is Tunit Then
      If (TUnit(Sel).Spieler = 1And (TUnit(Sel).Bewegung > 0Then exit;
    end
    else
    begin
      UnitIndex:= -1;
      inc(k);
    end;
  Until k = 2;
end;


wenn ich jetz statt exit, Showmessage('') schreib funktioniert das so wie ichs mir vorstelle, schreibe ich aber was anderes sinnloses rein wie Label1.Caption:= IntToStr(k) funktioniert das ganze wieder rum nicht mehr

Und das ganze soll halt bewirkungen das wenn ich eine Figur verliere das die nächste angewählt wird, und man dann durch eine andere prozedur die nächste figur munter weiter bewegen kann


Zuletzt bearbeitet von Ironwulf am Mo 26.12.05 19:04, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 26.12.05 17:15 
Vielleicht würde ein aussagekräftier Titel mir helfen, das Problem zu verstehen. ;-) Denn so wirklich kapiert habe ich nicht, was Du machen willst :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ironwulf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Mo 26.12.05 17:31 
also ich entferne ein spite mit Dead,

ausblenden Delphi-Quelltext
1:
2:
3:
TUnit(Sel).Dead;
  Player1Unit:= Player1Unit - 1;
  Select.NachGruendung;             //obige Procedure


und dann soll das nächste sprite ausgewählt werden, welches dem Spieler1 gehört und noch bewegungen machen kann
ausblenden Delphi-Quelltext
1:
If (TUnit(Sel).Spieler = 1And (TUnit(Sel).Bewegung > 0Then exit;					


und auch genau in der zeile liegt auch das problem wenn ich dort anstatt exit mir eine showmessage('') anzeigen lasse funktioniert das ganze, aber mit exit nunmal nicht, und wenn ich statt exit gar nichts rein schreib gehts auch nich irgendwie nur mit der showmessage
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 26.12.05 17:34 
Naja, der Unterschied zwischen ShowMessage und Exit sollte schon irgendwie klar sein, oder? Bei Exit verlässt Du die Prozedur ja komplett, bei ShowMessage bleibste drin.

Den Unterschied zwischen ShowMessage und anderen Anweisungen kann ich mir momentan nicht erlären.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ironwulf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 733
Erhaltene Danke: 2



BeitragVerfasst: Mo 26.12.05 19:03 
so ich habs jetz für mich zufriedenstellend gelöst ;D

Ich hab vor den Aufruf der Prozedur noch eine form die mir gezeigt wird
ausblenden Delphi-Quelltext
1:
2:
3:
4:
TUnit(Sel).Dead;
Player1Unit:= Player1Unit - 1;
Form3.ShowModal;
Select.NachGruendung;


Das Problem liegt wahrscheinlich daran das die .Dead Prozedur zu langsam ist da mir aufgefallen ist das während "Select.NachGruendung;" ein Sprite mehr existiert als wenn ich danach auf nen button drücke

Ich würd trotzdem gern wissen wie man das umgehn kann
ich hab da an sleep oder so gedacht aber das scheints in meniem Delphi3 nit zugeben...
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 26.12.05 19:07 
aus dem grund benutze ich die sprite engine auch nicht, damit hat man später nur probleme, für allem wenn man die sprites dann nach dem dead neu initialisieren will, ich mach das alles per image list, da hab ich zwar keine kollisionsabfrage, aber das sollte man auch so irgendwie gebacken kriegen ;)