Nächster Gegner
Übersicht

![]() |
sbrogBetreff: Nächster Gegner |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN]
mit Pfeiltasten bewegen[/syntax] |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du bist der Held ![]() Klüger wäre ja wenn du nicht jedesmal die Berechnungen doppelt ausführen würdest ![]() Die Pos. bräuchte man auch nicht extra merken sondern man könnte sich das Objekt (Type) merken was nur ein Integer ist . z.B. local ng.gegner ng =null kleinsterabstand =1000000 For g.gegner = Each gegner entf=abstand(g\x,g\y,spielerx,spielery) If entf< kleinsterabstand kleinsterabstand = entf ng =g EndIf Next if ng<>null then |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
dein vorschlag würde nicht ganz hinhauen.
Denn sobald man sich einem anderen Objekt nähert, müsste der Abstand kleiner sein als der bisher kleinste Abstand. Wenn du z.b bis auf 10 Pixel an gegner 1 rangehst, dann wäre der kleinste abstand 10, wenn du dann später von gegner 2 40 Pixel und von Gegner 1 50 Pixel entfernt bist, ist gegner 1 immer noch der nächste Gegner. Deine Lösung funktoniert, wenn man sie auf ein Standbild anwendet, sobald man aber den Abstand mehrmals abfragt, versagt sie ps: dass man das ganze objekt g in einer variable speichern kann, wusste ich nicht, hätte ich sonst auch mit einbezogen |
||
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Sbrog.
Bei mir wird (scheinbar) immer der nächst gegner korrekt erkannt. Was ist den das Problem eigentlich? ![]() Bob |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es gibt kein direktes Problem. Markus hat nur kritisiert, dass ich den Abstand des ersten Objekts zweimal abfrage. | ||
![]() |
Bob |
![]() Antworten mit Zitat ![]() |
---|---|---|
sbrog hat Folgendes geschrieben: Es gibt kein direktes Problem.
Ja stimmt. Beitrag ist ja im Code Archiv. Hab's für ne Art Frage gehalten. (Mal wieder nicht aufgepasst. Bob. Setzen. 6 ![]() |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@sbrog
Zeit ist bei Spielen kostbar . Aber man könnte den Spieler auslassen in der Schleife oder den Spieler in andere Types werfen oder ein Kennzeichen in den Type einsetzen was zwischen gut und böse unterscheidet . gs = First gegner ;Das ist der Spieler For g.gegner = Each gegner if gs<>g then ;Abstand messen endif Wenn du Objekt Variablen anlegst zum zwischen speichern immer dran denken das es das Objekt ja schon gibt und darum wird auch kein new verwendet . Wird das Objekt gelöscht kann man es mit = NULL prüfen . |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group