Schiessen, Kugelflugbahn! Hilfe!

  • GM 8

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

  • Schiessen, Kugelflugbahn! Hilfe!

    Hallo ich bitte um schnelle Hilfe da mein Spiel bis zum 24.12 fertig werden muss (warum nur?!) und ich noch einiges vor hab.

    Mein Problem ist folgendes:

    Ich habe in der Gamemaker Lite Version ein 2D Jump and Run (Super Mario ähnlich) erstellt.
    Nun soll meine Figur Waffen aufsammeln, und dann auch schießen können.
    Das klappt noch alles ich habe das so gelöst:
    player -> collison mit waffeaufheben -> create waffetragen
    waffetragen -> press space -> create schiessen

    so jetzt möchte ich das der schuss nicht gerade heraus schießt sondern eine flugbahn hat
    dazu habe ich einen pfad erstellt und im "schiessen" object folgendes gemacht:

    schiessen -> press space -> set path im path object dann (speed 5, at end stop, relative relative)

    wenn ich jetzt meine waffe aufsammle kann ich wunderbar auf space schießen, doch wenn ich space erneut drücke, fliegen die
    bereits abgeschossenen kugeln nochmal den pfad entlang. (Also ich schieße, die zuerst abgeschossene kugel fliegt den pfad entlang, dann schieß ich meine zweite kugel ab die fliegt auch den pfad entlang und die noch fliegende erste kugel fliegt von ihrem punkt aus nochmal den pfad entlang.) Wie kann ich das beheben?

    Außerdem kann ich auch nur in eine Richtung schießen. Wie kann ich ändern dass die kugel immer in die Richtung in die mein player gedreht ist fliegt?

    danke im vorraus für die schnelle Hilfe!
    mfg testechecke
  • Ich kenne mich nicht so gut mit path aus, aber hast du bei path eingestellt, das er wieder von ursprungspunkt anfangen soll ? Stell das dann lieber so ein, das er dann zerstört werden soll ;)
    "OMG, ich habe Kenny getötet"
    "Ich bin ein echter gangstar. Ich cheate in GTA San Andreas."
    "Ich bin Minecrafter ........ UND ICH BIN STOLZ DRAUF!!!"

    HomePage: the-rider.de.ki/
  • ja schon, aber er möchte ja bestimmt so ne Kurve machen oder so. Ich bin zwar kein Freund von path, aber wenn er es so machen will, dann ....
    "OMG, ich habe Kenny getötet"
    "Ich bin ein echter gangstar. Ich cheate in GTA San Andreas."
    "Ich bin Minecrafter ........ UND ICH BIN STOLZ DRAUF!!!"

    HomePage: the-rider.de.ki/
  • Dafür gibts gravity. Die benutzt du doch auch beim Player, dann stell sie auch bei den Schüssen ein, falls du willst, dass sie in eine bestimmte Richtung ziehen. Ansonsten müsste es eigentlich auch mit Paths gehen, wenn du den Path im Create-Event des Schusses einfügst.

    © 2008 by Teamgrill Productions
  • Du könntest das so lösen, indem du einmal ein path von links nach rechts erstellst und einen umgekehrt. Dann erstellst du eine Variable Richtung, die die Richtung des Spielers zurückgibt, also praktisch immer wenn man links/rechts drückt, verändert wird. So, nun lässt du im Objekt Waffentragen die Funktion instance_create(x,y,schiessen) in eine Zwischenvariable speichern - somit ist die ID des nächsten Schusses gespeichert. Damit nur dieser Schuss den Pfad (neu)abläuft, weist du dieser ID den Pfad zu. Dabei prüfst du, ob der Spieler gerade nach links oder rechts guckt (mit Hilfe der Variable Richtung) und lässt den Schuss dementsprechend den richtigen Pfad ablaufen, z.B. so:

    GML-Quellcode

    1. var inst;
    2. inst := instance_create(x,y,schiessen);
    3. if Richtung = "links" then with inst path_start(path_l,4,0,false);
    4. if Richtung = "rechts" then with inst path_start(path_r,4,0,false);

    Bei Fragen über die Syntax der GML-Funktion für Pfade lies dir am besten dazu das Kapitel in der Hilfe durch.

    Gruß,
    Boskura

    ____
    Adventskalender 2010: Blue Smiley
  • Danke für die schnelle Antwort: Habe das Problem jetzt (fast) gelöst. Die Kugel fliegt jetzt wie Ihr vorgeschlagen hattet mit gravity das ist ja fast das selbe. Also ich habe jetzt der Waffe die ich trage (waffetragen) den Befehl gegben die Kugel zu schießen (create moving instance) anstatt die Kugel selbst fliegen zu lassen. Doch wie mache ich jetzt das die Kugel immer in Blickrichtung fliegt?

    mfg
  • Boskura schrieb:

    Du könntest das so lösen, indem du einmal ein path von links nach rechts erstellst und einen umgekehrt. Dann erstellst du eine Variable Richtung, die die Richtung des Spielers zurückgibt, also praktisch immer wenn man links/rechts drückt, verändert wird. So, nun lässt du im Objekt Waffentragen die Funktion instance_create(x,y,schiessen) in eine Zwischenvariable speichern - somit ist die ID des nächsten Schusses gespeichert. Damit nur dieser Schuss den Pfad (neu)abläuft, weist du dieser ID den Pfad zu. Dabei prüfst du, ob der Spieler gerade nach links oder rechts guckt (mit Hilfe der Variable Richtung) und lässt den Schuss dementsprechend den richtigen Pfad ablaufen, z.B. so:

    GML-Quellcode

    1. var inst;
    2. inst := instance_create(x,y,schiessen);
    3. if Richtung = "links" then with inst path_start(path_l,4,0,false);
    4. if Richtung = "rechts" then with inst path_start(path_r,4,0,false);

    Bei Fragen über die Syntax der GML-Funktion für Pfade lies dir am besten dazu das Kapitel in der Hilfe durch.

    Gruß,
    Boskura
    Ich würde sagen so wie es Boskura vorgeschlagen hat...


    So far~

    Electro