Probleme beim 2D Platform

  • GM 8
  • Probleme beim 2D Platform

    Hallo, ich habe ein Paar Probleme mit meinem 2D Platform-Spiel. Ich habe versucht ein Paar Scripts einzubauen, allerdings komme ich da nicht sehr weit...

    1. Für meinen Player gibt es die Animationen: run_r, run_l, backward_r und backward_l . Ich möchte, dass wenn der Player nach rechts schaut und ich z.B "A" für links drücke, er sich nicht nach links wendet, sondern rückwärts läuft. Zum Test der Seite habe ich if player.x < mouse_x und andersrum
    verwendet. Soweit habe ich das geschafft, allerdings tut er die Bewegung ohne Animation... ??

    2. Ich bracuhe einen Script für die linke Maustaste, dass sich eine Kugel aus dem Lauf der Pistole entfernt ( Arm ist nach der Maus gerichtet ) und durch die Maus durchfliegt, bzw die Bahn nicht mehr seit dem Abschuss ändert...

    Bitte helft mir meine Probleme zu bewältigen

    Ich bedanke mich schon für eure zahlreichen Antworten ;) und hoffe das das nicht zu viel auf einmal ist.
    "Auch die längste Reise beginnt mit dem ersten Schritt"
  • Beim 2. kann ich dir helfen.:
    Mache ein Objekt obj_bullet
    ins Create Event kommt

    GML-Quellcode

    1. direction = point_direction(x,y,mouse_x,mouse_y)
    2. speed = 5 //Je nachdem was du willst


    Beim Player machst du ins LMB Pressed Event

    GML-Quellcode

    1. if can_shoot = true
    2. {
    3. instance_create(x,y,object_bullet)
    4. can_shoot = false //Eine Variable, die bestimmt wie schnell der Player scheißen kann mit Hilfe eines Alarms (Brauchst du nicht)
    5. alarm[0] = 5 //Steps, bis zum nächstern möglichen Schuss
    6. }


    Alarm 0 Event

    GML-Quellcode

    1. can_shoot = true


    Ich würde empfehlen, die Tiefe der Kugel 1 unter der des Player zu machen.
    UND NICHT VERGESSEN: VARIABLE can_shoot definieren!
    Das müsstest du als GML Anfänger packen.^^

    Ich hoffe, ich konnte dir helfen.
    Mfg
    Diesel

    P.S.: Kollisionsfehler beim Hüpfen entstehen durch verwenden verschiedener Kollisions-Masken. Nur mal so btw...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Mr. Diesel ()

  • 1. Für meinen Player gibt es die Animationen: run_r, run_l, backward_r und backward_l . Ich möchte, dass wenn der Player nach rechts schaut und ich z.B "A" für links drücke, er sich nicht nach links wendet, sondern rückwärts läuft. Zum Test der Seite habe ich if player.x < mouse_x und andersrum
    verwendet. Soweit habe ich das geschafft, allerdings tut er die Bewegung ohne Animation... ??


    ich nehm an du fürst den befehl in jedem step event aus? Also wird das Sprite immer wieder von vorne losgehn. Denn immer wenn player.x kleiner als mouse_x ist macht er das.

    Um das zu verhindern, frag einfach:

    if (player.x < mouse_x &&) && (!sprite_index = spriteMitRückwärtsAni)
    {sprite_index = spriteMitRückwärtsAni;}
    mfg Salmi