Ergebnis 1 bis 20 von 28

Thema: X/Y-Radius berechnen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Die Variable V[385] ist wie Stoep sagt nur ein Setwert, der vom Benutzer Entwickler bestimmt werden kann, wen ndu 2 eingibst, dann muss der Held 2 oder weniger Felder weit weg sein und man ist "Wahr". (Ich habe das aus meinem Projekt entnommen und ein wenig verändert und dabei vergessen, dass ich da 2 varis vergleiche xD)


    Hero (10,4)
    Obj (5,5)

    X: 5-10 = -5 * -1 = 5
    Y: 5-4 = 1

    X + Y = 6

    Das tuhe ich, damit ich im "UMKREIS" abfragen kann, das hielt ich damals als ic hes gebraucht habe für besser, da man sich ja auch von Schräg nähern kann, usw :/
    Und ich sagte ja, das muss man dann auf Scene X und Y abstrahieren. Dann kann man die V[385] berechnen lassen indem man das ganze umkehrt und nicht mehr nachschaut ob der Held in ein der Nähe eines Objektes ist, sondern ob das Objekt in einem bestimmten Umkreis ist, alles möglich
    (Btw ist das ein wirklich netter Trick, den man im Studium lernt (was für mich ein wenig zu spät kam xD)

    Auf zur Nato!/o

    Edit:
    Sry, mehr Zeit habe ich das nicht zu erklären und das Dull hat btw das Gleich wie ich, nur aus Held-Sicht xD (das hat er mir gerade unter Tränen in einer Pn gebeichtet)

    Geändert von R.D. (28.12.2009 um 07:04 Uhr)

  2. #2
    Man kann auch einen Kreisradius nehmen, da würde ich aber dann nicht mit X/Y-Koordinate des Helden/Gegners sondern mit der Szenen-Koordinate des Helden/Gegners rum hantieren.

    Dabei muss (xH − xG)^2 + (yH − yG)^2 <= r^2 wahr sein, damit der Gegner im Angriffsbereich ist.

    (Legende:
    xH, yH : Szenen-Koordinate des Helden
    xG, yG : Szenen-Koordinate des Gegners
    r : Radius in Pixeln (in dem Falle: r=5*16=80)

    Code:
    <>Var[xxxx:xTemp] SET,Hero SceneX
    <>Var[xxxx:xTemp] -, Gegner SceneX
    <>Var[xxxx:xTemp] *, Var[xxxx:xTemp]
    <>Var[xxxx:yTemp] SET,Hero SceneY
    <>Var[xxxx:yTemp] -, Gegner SceneY
    <>Var[xxxx:yTemp] *, Var[xxxx:yTemp]
    <>Var[xxxx:rCheck] SET, Var[xxxx:xTemp]
    <>Var[xxxx:rCheck] +, Var[xxxx:yTemp]
    <>Var[xxxx:rHoch2] SET, Var[xxxx:r]
    <>Var[xxxx:rHoch2] *, Var[xxxx:rHoch2]
    <>Fork Conditions: Var[xxxx:rCheck] <= Var[xxxx:rHoch2]
     <>Comment: WAHR
    :ELSE Case
     <>Comment: FALSCH
    :END Case
    <>
    Ich weiß aber nicht wie fehleranfällig und wie schnell das ganze im Maker ist,
    am besten und schnellsten ist der Rechteck-Radius.

    Wenn man einen Kreisradius nehmen will, sollte man für die Berechnung den PowerPatch nehmen, da es da schneller geht (arbeitet mit Gleitkommazahlen in der schnelleren und genaueren FPU-Erweiterung des CPU, im Gegensatz: der Maker nur mit Ganzzahlen im CPU).

  3. #3
    @R.D.: Dein Ansatz ist rautenförmig und nicht kreisförmig. Bei genügend großen Abständen kann sich der Unterschied auch im Kästchenraum des RPG Makers deutlich bemerkbar machen. Wer eine Kreisform will ist mit dem Satz des Pythagoras: a²+b²=c² besser beraten, den niR-kun in seinem Ansatz anwendet.

    Zitat Zitat von niR-kun Beitrag anzeigen
    Ich weiß aber nicht wie fehleranfällig und wie schnell das ganze im Maker ist,
    am besten und schnellsten ist der Rechteck-Radius.
    Inwiefern sollte es fehleranfällig sein?

    Zitat Zitat von niR-kun Beitrag anzeigen
    Wenn man einen Kreisradius nehmen will, sollte man für die Berechnung den PowerPatch nehmen, da es da schneller geht (arbeitet mit Gleitkommazahlen in der schnelleren und genaueren FPU-Erweiterung des CPU, im Gegensatz: der Maker nur mit Ganzzahlen im CPU).
    Wie bitte?

Berechtigungen

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