Ergebnis 1 bis 4 von 4

Thema: Zielauswahl: Cursorbewegung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Das Problem was ich bei deinem Ansatz sehe: Wenn ein Gegner nun nur wenige Pixel höher/tiefer sitzt als 2 andere, also praktisch als Beispiel mit mehr Zoom wie deine

    Code:
    ------1----------2
    ------1-----3----2
    ------1-----3----2
    ------1-----3----2
    ------------3-----
    würde ich mit nach rechts von 1 nach 3 wechseln wollen, aber nach einigen deiner Ansätze geht er dann auf 2. Hm. Dabei stehen sie nur leicht versetzt zu einander.

    Ausserdem würde ich bei deinem ersten Beispiel intuitiv auf die 2 gehen wollen - aber ich kann mir auch Fälle vorstellen, wo ich eher mit oben/unten hantieren wollte.

    Ich hätte da diverse Ansätze.
    Der eine Ansatz ist soweit, das etwas unintuitiver zu machen, aber wers erklärt kriegt, würde da schnell reinkommen:
    Konzentration auf eine Achse. Rechts: nächster Gegner auf der X-Achse, Links, nächster Gegner auf der X-Achse nach links.

    Gegen den Fall
    Code:
    1--
    ---3
    ----
    2--
    könnte man dann noch , falls ein "Nachbar" mit X-Abstand==0 den Y-Abstand checken und wenn der bei Rechts größer ist, dahin springen, und wenn er bei Links kleiner ist, dahin springen, ansonsten verwerfen und wirklich zum nächsten "echten" Nachbarn mit X-Abstand != 0 gehen.

    Nicht ganz intuitiv in manchen Situationen, aber kommt man rein.
    Würde dir auch Oben/unten für wechsel zwischen Charas und Gegnern lassen.

    Andere Option die ich sehe ist Abwandlung von Rettans Vorschlag - du gehst erstmal nach dem euklidischen Abstand, prüfst aber je nach Richtung, ob der gefundene Kandidat nicht zu weit in eine entsprechende Richtung ausfällt, oder ob eine gewissen X/Y-Abstands-Verhältnis-Grenze nicht über/unterschritten wird. D.h. wenn im Fall

    Code:
    3--------
    ----------
    1-------2
    von der 1 die rechts kommt, findet er zwar 3, verwirft aber, da das x/y-abstandsverhältnis extrem (in dem fall unendlich) hoch ist, und geht auf 2, oder

    Code:
    ---3-------------
    ------------------
    ------------------
    ------------------
    1---------------2
    würde bei der 1 auf Rechts auch die 3 gewählt werden, aber ist soweit von der 1 in der Y-Ebene entfernt, dass er auf die 2 springt.

    Was für dich intuitiv ist oder nicht - dafür kannst du die Grenzwerte passend wählen.

    Die Option halt ich zwar für mit die schönste, wenn auch extrem umständlich zu implementieren, einziges Problem wo man drüber nachdenken könnte: auch hierbei können durchaus Fälle auftreten, wo einzelne Punkte nicht erreicht werden können. Evtl kann man das auch durch entsprechende Grenzwertwahl umgehen, oder man sucht sich eine noch komplexere Option - so was wie ein Algorythmus der berechnet, welche Punkte nicht erreichbar sind und dann ggf. dynamisch die Grenzwerte hochsetzt/für einzelne Pfade damit der Punkt erreichbar werden kann (Erreichbarkeitsproblem für Graphen, wenn du die erreichbarkeit von Ziel auf Ziel mit einer Richtungseingabe als Graph betrachtest)? Was die implementierung nicht gerade unkomplizierter macht ~.~

    Geändert von Todu (06.12.2011 um 01:33 Uhr) Grund: Minigrafiken sahen im Quelltest anders aus als im Code-Format

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •