Das Gravitron...

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Das Gravitron...

    Hallo, viele von euch kennen bestimmt das Gravitron aus Halflife 2. Die vollständige Bezeichnung ist Nullpunkt-Energiefeld-Manipulator, und es kann entfernte (Metall-)Gegenstände anziehen und wieder wegschießen (auch hier zu finden: en.wikipedia.org/wiki/Gravity_gun). Weiß jemand, wie sich so eine Waffe in einem 2D Jump'n'Run realisieren lässt? Vielleicht kennt ja jemand ein vollständiges Tutorial oder hat eine Idee. Vielen Dank! :gmlove:

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von FlashXenon ()

  • Leider hab ich keine genaue Vorstellung von was du redest, aber hier mal der Ansatz: Schau dir dir Funktion motion_add an. Damit könntest du die Objekte im weichen Bogen auf den Player zubewegen bzw. von ihm wegschleudern...

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Habs selbst noch nie gemacht, stell mir das aber eigentlich nicht alzu schwer vor.
    Du solltest nen Parent Objekt für die Objekte erstellen.
    Dann sollten alle Objekte, welche nachher anziehbar sind dies natürlich als Parent bekommen.

    Wenn der Spieler jz die Maus in die Richtung schiebt, und es anziehen will, also klickt, solltest du einfach überprüfen mittels collision_line ermitteln ob eine Instanz vorhanden ist, und ob es komplikationen gibt (eine Mauer im Weg ist oder so). Die ID solltest du dann Speichern in einer Variablen, und mittels (glaube die Funktion hieß so) point_direction(x,y,x2,y2); die Richtung zu der Gravity Gun richten. Noch einen gewissen Speed dem ganzen geben und gut. Das Objekt müsste dann zum Spieler fliegen.
    Wenn er los lässt, würd ich einfach das Objekt wieder speed = 0 setzen, und vielleicht sowas wie event_user(0) aufrufen, in welchem Abgefragt wird, ob es in der Luft schwebt (und dann runterfällt, also Gravity einstellen).
    Wenn das Objekt dann so und so nah ist (müsste diese Funktion sein) [point_distance] dann speed = 0 einfach setzen dafür aber immer (falls der Spieler sich bewegt) auf die Position neu setzen. Wenn der Spieler jz beispielsweiße die rechte Maustaste klickt, würd ich einfach event_user(1) aufurfen (am besten im Parent deklarieren) in welchen Gravitation + das Wegschießen passiert (wieder Richtung und Speed einstellen, Richtung natürlich dann in welche die Maus zeigt; Gravitation damit das ganze auch nicht ins unendliche dann fliegt).
    Durch sowas wie ein individuelles Create Event solcher Objekte, in welchen dann die Masse des Objektes gespeichert wird, kann man natürlich auch den Speed beeinflussen, indem man diesen von der Masse abhängig macht.

    Das sollte aber genug sein, nicht getestet, ist mir jz so eingefallen die Idee.
    Keine Umsetzung probiert.

    Mfg.,
    Mokuyobi
    木曜日 (Mokuyōbi)
  • Vielen Dank, DragonGamer und Mokuyobi. Moku, dein Ansatz hört sich wirklich gut an. Kannst du mir bitte sagen, was du mit den user events meinst? Mit user events habe ich mich noch nicht beschäftigt ?( Und die Funktion motion_add werde ich auch mal angucken. MfG FlashXenon