Problem mit Types
Übersicht

schalliBetreff: Problem mit Types |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Type TFigur
Field x,y,art Field umkr,atkr,live End Type For i = 1 To 20 Figur.TFigur = New TFigur Next For Figur.TFigur = Each TFigur XF = Figur\x : YF = Figur\y : art = Figur\art : umkr = Figur\umkr : atkr = Figur\atkr For Figur.TFigur = Each TFigur If Figur\art <> art Then If Abs(XF-Figur\x) <= umkr Then If YF-Figur\y <=umkr Then Figur\live = Figur\live - atkr : Exit EndIf EndIf EndIf Next Next Erklärungen: art: Ist Figur lieb/böse umkr: alles in diesem Umkreis wird angegriffen atkr: Kraft der Attacken live: Leben der Figur Frage: Ich will prüfen ob eine Figur eine andere angreifen muss. So schmeißt mich BB aber immer raus. Ich weiß auch, dass es an den zwei verschachtelten For-Each schleifen liegt, aber nicht wie ich's besser machen kann. ![]() ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die zweite For-Schleife muß logischer Weise einen anderen Variablennamen haben.
BeispielCode: [AUSKLAPPEN] For Figur2.TFigur = Each TFigur
|
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
schalli |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Verstehe ich das richtig:
Ich müsste die gesamten Daten über die Figuren kopieren und bei jeder änderung es in beide Instanzen schreiben. Edit: GELÖST: Code: [AUSKLAPPEN] Type TFigur
Field x,y,art Field umkr,atkr,live End Type t_anz = 20 For i = 0 To t_anz Figur.TFigur = New TFigur Next For i = 0 To t_anz Figur2.TFigur = New TFigur Next For Figur.TFigur = Each TFigur XF = Figur\x : YF = Figur\y : art = Figur\art : umkr = Figur\umkr : atkr = Figur\atkr For Figur2.TFigur = Each TFigur If Figur2\art <> art Then If Abs(XF-Figur2\x) <= umkr Then If YF-Figur2\y <=umkr Then Figur2\live = Figur2\live - atkr : Exit EndIf EndIf EndIf Next Next Figur2.TFigur = First TFigur For Figur.TFigur = Each TFigur Figur\live = Figur2\live Figur2 = After Figur2 Next |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es reicht wenn du nur einmal 20 Figuren erstellst. Also:
Code: [AUSKLAPPEN] For i = 1 To 20
Figur.TFigur = New TFigur Next Ohne es jetzt ausprobiert zu haben, müsste aber auch schon folgendes funktionieren: Code: [AUSKLAPPEN] For i = 1 To 20
New TFigur Next Wenn es geht (habs eben nicht ausprobiert), dann sollten übrige Fragen geklärt sein. Die zweite Variable bei den verschahtelten For-Schleifen werden eben nur zur identifizierung zweier Vergleichspaaren benötigt. Der Grund warum man bei New TFigur eine Variable vorstellen kann ist, dass meistens beim erstellen eines Type-Eintrages auch meistens Werte an selbigen übergeben werden. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group