2 Spieler innerhalb des Raumes halten

  • GM 8

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

  • 2 Spieler innerhalb des Raumes halten

    Das eine Problem ist halb gelöst, da stoße ich schon auf das zweite^^

    Folgendes, zwei Spieler befinden sich in einem "room". Ein "view" ist auf den ersten Spieler gerichtet.
    Sobald Spieler 2 aus dem Sichtfeld des views gerät, soll Spieler 2 nicht mehr in der Lage sein weiter zu laufen.
    Das gleich soll für den zweiten Spieler gelten. Befindet sich Spieler eins außerhalb des Sichtfeldes von Spieler zwei,
    kann dieser nicht einfach weiter laufen.
    EDIT: Ein gutes Beispiel wäre das coop gameplay von "Lara Croft and the Guardian of Light".

    Ich habe folgendes in das step-event von Spieler zwei eingetragen, doch da tut sich nichts.

    GML-Quellcode

    1. if (y < view_yview[0]) {obj_male.vspeed*=-4; }


    Ich brauche unbedingt Hilfe. Schaffe das nicht alleine! ;)
  • Hi,

    ich hab das mal aus meinem Selector kopiert, wenn man das umbastelt sollte es gehen:

    GML-Quellcode

    1. //oben links -> unten rechts
    2. if global.x1 < x && global.y1 < y && global.x2 > x && global.y2 > y then selected = true


    Gruß BM
    Es gibt viel zu tun, packen wir´s an !!!
    Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.
  • Du musst als erstes abfragen wer im view ist, und dafür galt der oben von mir reinkopierte Code.

    Details:

    Als erstes erstelle ich eine Variable im Player ich nenn sie mal:
    Create Event:

    GML-Quellcode

    1. inside_view = false;


    Nun erstellen ich ein Script um zu checken ob Player im view[0] ist.
    scr_insideView:

    GML-Quellcode

    1. if ( view_xview[0]<x) && (view_yview[0]<y) && ((view_xview[0]+view_wview[0])>x) && ((view_yview[0]+view_hview[0])>y) then inside_view= true else inside_view = false


    Nun führen wir im StepEvent des Players das Script aus:

    GML-Quellcode

    1. scr_insideView();


    Da ich jetzt zum testen eine visuelle Bestätigung möchte lasse ich mir einen Text anzeigen.(oder man machts im Debug mode)
    Du kannst mit dem folgenden Code also jederzeit abfragen ob im view oder nicht, und dem entsprechend Aktionen ausführen.
    Draw Event:

    GML-Quellcode

    1. if inside_view = true//wenn im view...
    2. {
    3. draw_text(view_xview,view_yview,"inside")//...mach dies...
    4. }
    5. else//...ansonsten...
    6. {
    7. draw_text(view_xview,view_yview,"outside")//... mach das.
    8. }


    Jetzt musst du das ganze nur noch in den richtigen Playern auswerten. Und solltest sie auch in den richtigen Views halten können.
    Ich hoffe das hilft dir nun etwas mehr.

    Greetz BM
    Es gibt viel zu tun, packen wir´s an !!!
    Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.