Gegenüberschauen 2er objekte

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

  • Gegenüberschauen 2er objekte

    ich möchte so ein ähnliches spiel wie lemmingball Z machen (lbz3d.com).

    1. dort sollen sich 2 figuren immer gegenüberschauen, egal, wo sie beide sind also die spielfigur soll sich zum anderen drehen

    2. wenn der eine eine attacke auf den anderen schickt, soll der gegner etwas nach hinten geschmissen werden (rückstoß)



    vielleicht kann mir ja jemand weiterhelfen - danke schon mal im voraus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Marv ()

  • Ich hab mir jetzt nicht das spiel runtergeladen aber ich glaube ich kann dir helfen
    Beim 1.

    GML-Quellcode

    1. //im stepevent von obj1. für obj2 musst du im code obj1 und obj2 vertauschen
    2. image_angle=point_direction(obj1.x,obj1.y,obj2.x,obj2.y)

    Beim 2.

    GML-Quellcode

    1. //kollision mit der attacke
    2. x-=lengthdir_x(10,point_direction(x,y,attacke.x,attacke.y))
    3. y-=lengthdir_y(10,point_direction(x,y,attacke.x,attacke.y))
  • GML-Quellcode

    1. //object1 ist der linke
    2. if (obj1.x > obj2.x)
    3. {
    4. //bedenke wenn du die sprites machst das 180 grad links ist
    5. obj1.sprite_index = sprite_links
    6. }
    7. else
    8. {
    9. //bedenke wenn du die sprites machst das 0 grad rechst ist
    10. obj1.sprite_index = sprite_rechts
    11. }
    Alles anzeigen
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%
  • du erstellst zwei sprites das eine schaut nach rechts. Das zweite schaut auch nach rechts aber kopf stehend und dan machst du im code

    GML-Quellcode

    1. if (obj1.x > obj2.x)
    2. {
    3. //bedenke wenn du die sprites machst das 180 grad links ist
    4. obj1.sprite_index = sprite_links
    5. obj1.image_angle = point_direction(obj1.x,obj1.y,obj2.x,obj2.y)
    6. }
    7. else
    8. {
    9. //bedenke wenn du die sprites machst das 0 grad rechst ist
    10. obj1.sprite_index = sprite_rechts
    11. obj1.image_angle = point_direction(obj1.x,obj1.y,obj2.x,obj2.y)
    12. }
    Alles anzeigen


    ps: gehört natürlich in das step event.
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von bigmek ()

  • Wie wärs wenn du image_xscale und image_yscale verwendest. Dann brauchst du nämlich nicht mehrere Sprites sondern kannst diese einfach umdrehen. Klar ist dir sicher, dass die Ausrichtung (warscheinlich das Gesicht oder so) den Winkel 0 hat (bei Topdown wäre das nach rechts blickend). So sparst du dir nämlich ne Menge Arbeit.

    Dann kannste schreiben:

    GML-Quellcode

    1. if(x>obj1)
    2. image_xscale=1;
    3. else
    4. image_xscale=-1;


    Wäre auch btw. nett, wenn du mal das Problem in Screens schildern könntest, weil ich aus deinem Problem nichts entnehmen kann. Ich würde jetz denken, wenn du meinst, dass die aufm Kopf stehen, dass du einfach schreiben könntest:

    GML-Quellcode

    1. if(x>obj1.x)
    2. {
    3. image_xscale=1;
    4. image_yscale=1;
    5. }
    6. else
    7. {
    8. image_xscale=-1;
    9. image_yscale=-1;
    10. }

    und wie bereits gesagt dann noch den Spielersprite drehen.

    Also wenn der den Winkel überschreitet, den Code über dem vorherigen Satz schreiben.
    Würde also nen Gesamtcode erzeugen:

    GML-Quellcode

    1. if(x>obj1.x)
    2. {
    3. image_xscale=1;
    4. image_yscale=1;
    5. }
    6. else
    7. {
    8. image_xscale=-1;
    9. image_yscale=-1;
    10. }
    11. image_angle = point_direction(x,y,obj1.x,obj_1.y);
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Merko ()