Ergebnis 1 bis 11 von 11

Thema: RM2k3 - Genaue Fortbewegung

  1. #1

    RM2k3 - Genaue Fortbewegung

    Hallo Leute,
    ist es möglich diese "Kästchen" Kollisionsabfrage zu übergehen?
    Ich würde das gerne über Koordinaten laufen lassen. 1Schritt = 16 Koordinaten Punkte, aber leider kann ich den
    Charakter nicht zu bestimmten Koordinaten schicken. Vielleicht ist ja auch mein Denkansatz falsch...
    Jedenfalls stört die Starre Bewegungsmoglichkeit die Atmosphäre meines Spiels (nya es ist bisher ja nur ein Script xD)
    Sorry wenn's das Thema schon gegeben haben sollte...

    Ich hoffe ihr könnt mir helfen oder zumindest neue Denkansätze geben

    Gruß Zogo =)

  2. #2
    Frage wie sieht denn dein Script genau aus?

    Nutze doch den Easy Event Exporter den kannst du hier finden:
    http://www.multimediaxis.de/threads/...en-RM2k%283%29

    Damit kannst du für uns den Code sichtbar machen und hilfst uns schonmal sehr.
    Erklärung liegt bei bzw. Cherry wird dir ansonsten wenn sie den Thread liest eine Anleitung geben.

    Hast du es mal mit dem Ereigniss-befehl Alles Bewegen veruscht?

    Lg
    Multi-Master1988

  3. #3
    Es ist schwer eine Kollisionsabfrage, die über die Koordinaten geht statt über das 16x16-Pixel-Raster, zu schreiben. Ich könnte mir da vorstellen, dass man das über 4 Variablen pro "Wand" macht, je 2 Variablen für den Anfangspunkt und 2 Variablen für den Endpunkt. Was zwischen den 2 Punkten gradlinig liegt, ist dann eine Wand. Das ist allerdings sehr aufwändig. Da man ja nicht nur eine Wand hat, sondern viele Wände, die in verschiedene Richtungen gehen. Über einen Bresenham-Algorithmus lässt sich die Wand im 16x16-Raster gut berechnen.

    Einen Helden relativ genau (16x16 Pixel genau) zu einer Koordinate zu schicken ist möglich.
    (Ich gehe davon aus, dass der Held nicht über "Show Picture" gezeichnet wird, sondern ein normaler Chara ist).
    Da rechnest du für jede x- und y-Koordinate einmal einen Wert1 mit Koordinate div 16 aus und dann einen Wert2 mit Koordinate mod 16 aus.
    Wenn Wert2 größer oder gleich 8 ist, dann erhöhst du Wert1 um 1 (bei 0 bis 7 kann man sagen, dass er eher bei dem von Wert 1 berechneten Kästchen steht, bei 8 bis 15 ist es eher das benachbarte Kästchen in der Koordinatenrichtung). Wert1 ist dann die Koordinate im 16x16-Raster. Das zu den Koordinaten im 16x16-Raster hinlaufen ist dann so wie alle anderen das auch machen (trivial).

    Geändert von niR-kun (18.02.2011 um 11:13 Uhr)

  4. #4
    Wenn ich das recht verstehe willst du Pixelmovement. Das geht ganz einfach. Du nimmst dir ne Koordinate und fragst Tasten ab, je nach Tastendruck wird die Koordinate in X oder Y verändert. Anhand des Bildausschnitts auf der Gesamtkarte ergibt sich aus der Weltkoordinate der Figur eine Koordinate im Bild. An dieser Koordinate zeigst du dann den Helden als Picture an.

    Ohja, und da sind wir auch schon beim Nachteil:
    Charsets einsetzen kannste dabei vergessen. Damit ist reines Chipsetmappen auch hinfällig. Damit ist die normale Kollisionsabfrage, auch mit Welt sowie interaktion mit NPCs über Charsets hinfällig. Damit wärs nötig ne ganze Menge mehr selbst zu scripten... ^^

  5. #5
    Erstmal danke für die schnellen Antworten. Ich wollte das schon über Charsets realisieren, weil man mit denen doch um einiges flexibler ist als mit einzelnen Bildern (mal ganz davon abgesehen das man das Chipset Mapping dazu aushebelt).
    Was genau meintest du mit "Das zu den Koordinaten im 16x16 - Raster hinlaufen ist dann so wie alle anderen das machen", niR-kun?
    Wenn ich meinem Charackter optisch eine Position über Koordinaten zuweisen könnte wär das Problem gelöst. Ich würde einfach das drücken von Bewegungstasten in zahlen umrechnen und diese dann passend auf die Koordinaten rechnen.
    Theoretisch fehlt mir nur der Befehl "Move Event(Hero) to var1(posX) ; var2(posY)

  6. #6
    Charsets sind an das Raster gebunden. Es gibt keine Möglichkeit diese aus dem "16x16 Grid" zu lösen und genauer zu bewegen oder anzuzeigen. Du kannst Charsets nicht genauer steuern, als dies schon standardmässig drin ist.

    niR-Kun spielt drauf an (wenn ich das recht verstanden hab) innerhalb der 16er Kästchen pixelgenau zu rechnen. Der erwähnte Bresenham-Algorithmus hat den Vorteil, dass er keine Hochmathematik benötigt, kein schlechter Ansatz, allerdings kannst du das gesamte Thema "pixelgenaues Bewegen" abhaken und vergessen, wenn du mit Char- und Chipsets arbeiten willst. Punkt.


    Alternativen:
    Über Move-Event kann man Helden auch Diagonal bewegen. Es ist problemlos möglich, sich ein Script zu bauen, dass die Bewegung im Spiel ein bischen flüssiger und weniger gerastert aussehn lässt.

  7. #7
    Hm, "Move Event ... to X/Y coordinates" wäre kein schlechtes Feature für den Revolution Patch. *merk*

    Ich hatte gerade eine andere Idee: Mit etwas Aufwand ließe sich zumindest der Held sehr wohl pixelgenau bewegen (für andere Events wäre der Aufwand wohl doch etwas zu viel).

    Und zwar - das ginge jetzt allerdings nur mit dem RM2k - könnte man sich den CharExpand-Patch schnappen, welcher größere Charsets erlaubt. Dann macht man 256 Charsets, wo die Grafik immer um einen Pixel weiter verschoben ist (16 x 16) - das ist wohl die meiste Arbeit daran. Dann ein Skript, was diese 256 Grafiken hernimmt, um alle möglichen Positionen innerhalb eines Tiles anzeigen zu können. Eine pixelgenaue Bewegung wäre dann also erstmal das schnelle Wechseln der Charsets, gefolgt von einem sprunghaften Bewegen es Helden (mit Teleport und ohne Bildübergang), oder mit einem Event als Helden, was dann per Set Event Place teleportiert werden könnte.

    Soweit mein theoretischer Ansatz, ob es funktioniert ist eine andere Sache ^^

  8. #8
    Hm schade, eine Idee hab ich noch die ich versuchen mag. Ich schreib hier rein wenn ich gescheitert bin ^^

  9. #9
    Hatte fast die gleiche Idee Cherry

  10. #10
    Die Vernunft hat grade Tabletten genommen und schwimmt leblos da hinten im Brunnen.

  11. #11
    Naja ich werd mich des Aufwands willen mich wohl damit zufrieden geben müssen aus 1 Feld 1 1/2 Felder zu machen. Wie gesagt ich meld mich wenn ich gescheitert bin...

Berechtigungen

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