Aktion auslösen, wenn zwei Events sich berühren?

  • Hotzenplotz und DasSchaf

    Ich weiß nicht, wie es beim MV ist, aber beim MZ gibt es zwei Arten von Berührung: Spieler-Berührung und Ereignis-Berührung. Ich denke, das dies schon einen Unterschied macht.


    DasSchaf

    Ich verstehe nicht, wieso es möglich sein muss, dass sich die Kugeln überlagern können. Wenn die grünen und die gelben Kugeln sich berühren, dann sollen die gelben doch an ihren Ausgangspunkt teleportiert werden. Dazu müssen sie sich doch nicht überlagern... Wenn du die Formel, die Hotzenplotz gepostet hat, benutzt, dann brauchst du zudem die Option "Durchgang" nicht. Dann funktioniert das dann auch weiterhin mit der Spieler-Berührung.

  • Ariyana ja die gibt es auch im MV.


    Spielerberührung = Der Spieler muss aktiv das Ereignis berühren. So ist es in der FS Version die DU gespielt hast. Wenn du immer nur rumstehst und dich nicht bewegst können die Antiviren dir nichts tun.


    Eventberührung = Die Events können aktiv in dich reinrasen. Wäre diese Option im Minigame gewählt dann kannst du durchs Rumstehen verlieren, weil die Antiviren dich berühren können. :)

    Das ist der Unterschied.


    Wenn ich Hotzenplotz richtig verstanden habe wird da abgefragt, ob die Events nebeneinander sind oder? Das heißt wenn die gelbe Kugel und die grüne sich nur streifen würden, also aneinander vorbei fahren wäre doch diese Bedingung schon erfüllt und sie würde sich zurücksetzen. Aber das soll sie ja nicht. Nur bei einer wirklichen "Berührung" also nur, wenn sie aktiv aufeinander zugeschoben werden oder durch ihre Routen ineinander fahren.

  • So ist es auch in den älteren Makern.


    Wenn ich Hotzenplotz richtig verstanden habe wird da abgefragt, ob die Events nebeneinander sind oder? Das heißt wenn die gelbe Kugel und die grüne sich nur streifen würden, also aneinander vorbei fahren wäre doch diese Bedingung schon erfüllt und sie würde sich zurücksetzen.

    Ja, das stimmt. Eine tatsächliche Berührung der Events, ohne dass das Event "unter" der Spielfigur ist, lässt sich wohl nur mit Javascript umsetzen. Irgendwie muss der Maker natürlich intern abfragen, ob sich Event und Spielfigur berühren. Auf dem XP macht er das ungefähr so: Wenn das Event z. B. nach rechts geht und rechts ist versperrt, testet er, ob auf der versperrten Koordinate die Spielfigur steht.

  • Eine tatsächliche Berührung der Events, ohne dass das Event "unter" der Spielfigur ist, lässt sich wohl nur mit Javascript umsetzen. Irgendwie muss der Maker natürlich intern abfragen, ob sich Event und Spielfigur berühren. Auf dem XP macht er das ungefähr so: Wenn das Event z. B. nach rechts geht und rechts ist versperrt, testet er, ob auf der versperrten Koordinate die Spielfigur steht.

    Ich denke nicht, dass man dazu Javascript braucht, Denn man kann die Blickrichtung der Events abfragen. D.h., wenn festgestellt wurde, dass die beiden Kugeln nebeneinander sind, dann kann man über die Blickrichtung ermitteln, ob sie sich aufeinander zubewegen.

  • Wobei sie sich dabei ja auch nur anschauen könnten, ohne sich zu berühren.


    Aber es gibt eine Möglichkeit, eine Berührung zu erahnen. DasSchaf Du könntest Folgendes machen. In einem Parallel Process speicherst du die Koordinaten von einem Antivirus ab, wartest 10 Frames und speicherst die Koordinaten noch mal in zwei anderen Variablen. Sind die Koordinaten gleich, hat sich das Antivirus nicht bewegt. Vielleicht reicht das schon aus, um den Schadcode zurückzusetzen, denn außer dem Spieler und ihm kann ja eigentlich nichts im Weg stehen.

  • Oh mein Gott... ich habe es ENDLICH geschafft. Und es hätte die ganze Zeit sooooooo verdammt einfach sein können.


    Falls mal jemand anders vor der selben Situation steht, folgende Lösung funktioniert für mich:


    Ich habe einen Para Prozess für die Kollissionsabrage erstellt:


    pasted-from-clipboard.png


    Hier der Code zum Copy&Pasten:

    Code
    (function() {
    var event14 = $gameMap.event(14);
    if ($gamePlayer.x === event14.x && $gamePlayer.y === event14.y) {
    $gameSwitches.setValue(300, true);
    }
    })();


    Sobald der Spieler nun also die selbe Koordinate wie Event 14 (in diesem Beispiel) hat, dann wird der Schalter 300 aktiviert.


    Dafür gibt es ebenfalls einen Para Prozess:


    pasted-from-clipboard.png


    Wenn Schalter 300 also an ist, teleportiere den Spieler raus und wieder rein. Damit setzt sich das gesamte Level zurück und mach den Schalter wieder aus.


    Und exakt das selbe habe ich auch für die Events gemacht! Nur das meine Events sich einfach wieder an ihre Startposition bewegen.


    Für meine Antiviren habe ich nun Routen vordefinierten und sie auf "Durchgang" gesetzt, damit sie sich mit den anderen Events und dem Spieler überlappen können. Folglich muss der Spieler nun aufpassen, dass seine Viren nicht entdeckt werden und dass der selbst nicht in die Fänge der Antivirensoftware gerät.

    Tada! :D

    Vielen Dank an alle die geholfen haben. :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!