Ergebnis 1 bis 11 von 11

Thema: Mausscript

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    also, was ist jetzt mit der Erweiterung?
    Schon lange aber vergebens
    warte ich auf deine .... ähhh.... erweiterung

    Ohne diese werde ich nicht arbeiten können weiter,
    ohne dich werde grauenhaft ich scheiter^^

    <>Okaj, die Deutsche Sprache kann ich besser^^<>

  2. #2
    Entschuldigung, daß es etwas länger gedauert hat.

    Hier ist das neue Mouse-Script mit der Erweiterung:

    Es gibt jetzt zwei Möglichkeiten wie du an die Tile-Koordinaten unter dem Cursor kommst.
    Die erste ist es, die Koordinaten direkt abzufragen:
    Code:
    Mouse.tileX()
    Mouse.tileY()
    Diese beiden Funktionen geben jeweils die X- bzw. die Y-Koordinate der Kachel zurück, über der sich momentan der Cursor befindet.
    Die zweite Möglichkeit ist diese Koordinaten anstatt der Pixelkoordinaten in Game-Variablen abzulegen.
    Dafür muss der "GameTyp" einmal umgestellt werden.
    Code:
    Mouse.setGameType(value)
    Mögliche Werte für "value" sind 0 (Pixelkoordinaten) und 1 (Kachel-Koordinaten). Es gibt auch zwei Konstanten namens GAME_PIXEL und GAME_TILE die dafür verwendet werden können.
    Es ist nur möglich die Pixel-koordinaten oder die Tile-Koordinaten in Game-variablen abzuspeichern, beides zugleich geht nicht. Der aktuelle Typ kann mit
    Code:
    Mouse.gameType?()
    abgefragt werden.
    Logischerweise muss Mouse.update weiterhin regelmässig ausgeführt werden um die Koordinaten korrekt wiederzugeben. Insbesondere nach einem Mapwechsel sollte Sorge dafür getragen werden, daß Mouse.update einmal ausgeführt wird, bevor auf Mouse.tileX oder Mouse.tileY zugegriffen wird. (Solltest du die Koordinaten aber über Game-Variablen ansprechen, sorgt das Script schon selbst dafür)

    Die Berechnung der Kachel-Koordinaten sollte auch in Scenes funktionieren die keine Map sind. In diesem Fall wird so verfahren wie auf einer 20x15 Map, zumindest theoretisch.

    Es waren zwei minimale Änderungen an anderen Klassen notwendig. Namentlich Scene_Map und Spriteset_Map um die nötigen Informationen auslesen zu können. Die Änderungen sind in obigem Script schon enthalten, aufgrund dessen könnten aber Änderungen an diesen Klassen theoretisch zu Problemen führen. (Allerdings unwahrscheinlich) Da das kein Stil ist, den ich persönlich mag, ist diese Änderung von mir nicht "offiziell" und es gibt auch keine Garantie für Support sollten Konflikte mit anderen Scripten auftreten.
    Sollte das Script aber sonst buggy sein (zB in manchen Fällen falsche Werte zurückgeben) darfst du dich aber gerne melden.

  3. #3
    kann man jetzt immer noch die normale Option verwenden?
    Wenn ja, welche Variablen benutzt die neue Option?

  4. #4
    Zitat Zitat
    Es ist nur möglich die Pixel-koordinaten oder die Tile-Koordinaten in Game-variablen abzuspeichern, beides zugleich geht nicht.
    Du kannst nur eine der beiden Arten von Koordinaten in Game-Variablen ablegen, in beiden Fällen werden dieselben Variablen benutzt.

    Ansonsten kannst du die Tile-Koordinaten über Callscript auch selber in Game-Variablen abspeichern:
    Code:
    $game_variables[10]=Mouse.tileX
    $game_variables[11]=Mouse.tileY

  5. #5
    Leute, Frage:

    Ich habs mir grad in einem Testspiel importiert und prompt nachdem ich die Maus initialisiert habe mit
    Code:
    Mouse.initSystem(0x03)
    Mouse.setCursor("Maus.png")
    Mouse.enableShow()
    Mouse.enableSaveToGame(49,50)
    Mouse.setOriginX(0)
    Mouse.setOriginY(0)
    kommt beim aufrufen von
    Code:
    if Mouse.pressed?(MOUSE_LEFT)
    die Fehlermeldung:
    "Syntax Error occured while running the script"

    Nebei erwähnt, ich kann es auf diese if-Bedingung beschränken, da ich jedwegen anderslautenden Code darunte entfernt habe und alles darüber wird mit einer Textbox getrennt und erst danach der Fehler...

    Bitte um Hilfe!

    Edit: Bevor die Frage kommt: das 'end' hab ich natürlich nicht entfernt

    LG Tidloc

  6. #6
    Der Fehler kommt dadurch, daß der Maker den Inhalt von "Call Script" zeilenweise von Ruby interpretieren lässt und dann ifs ohne ends natürlich Probleme verursachen.
    Kurz gesagt, innerhalb der Call Script Box verwendet man generell keine If oder Schleifen.

    Wenn du überprüfen willst ob die linke Maustaste gedrückt ist benutze einen Conditional Branch. Dort kannst du auf der 4. Seite eine Script-Bedingung setzen, in dem Fall dann einfach den Funktionsaufruf ohne das extra if.

  7. #7
    Aja, jetzt gehts!

    super, danke für die Info!

Berechtigungen

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