Wie macht man den View von diesem...Game?

  • Allgemein

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

  • Wie macht man den View von diesem...Game?

    Hallo zusammen,

    möchte in meinem Game einen View wie in diesem Game youtube.com/watch?v=N1QXjOW3kbc .

    Etwas ähnliches habe ich bereits hinbekommen, is ja auch nich so schwer. Bei mir ist es jedoch so dass wenn ich das

    Objekt bewege welches den View auch beeinflussen soll, dann bewegt sich der View immer gleichzeitig mit, so hat man das Gefühl das man selber den view verschiebt. Naja egal es sieht einfah scheisse aus. Bei dem Spiel in dem Link, ist es so, wenn man sich darauf achtet merkt man das man das Gefühl bekommt dass die Kamera ( view ) nicht durch direktes Bewegen des objects gesteuert wird. How to do this?

    Liebe grüsse kevin
  • Das ist nicht so einfach. Ich weiß leider nicht, wie erfahren du bist, deswegen kann ich dir nicht garantieren, ob du das so hinbekommst.

    Mein Lösungsansatz ist, die View nicht vom GM automatisch lenken zu lassen, sondern einenen eigenen Code dafür zu schreiben. Dabei brauchst du Variablen, die die Geschwindigkeit der View, Reibung und Richtung angeben. Geschwindigkeit wird kontrollieren, wie schnell sich die View bewegt (normalerweise so schnell wie der Spieler läuft), Richtung gibt an, in welche Richtung sie sich bewegt und Reibung wird dafür verwendet, um die View wieder zu verlangsamen, wenn der Spieler stehen bleibt.
    Verschoben wird die View dann entsprechend der Variablen mit lengthdir_x und lengthdir_y, indem man einfach auf die x/y Koordinaten zugreift -> view_xview, view_yview

    Das ist jetzt nur ein Denkanstoß, ich werde nicht die Ausführung posten, dass musst du schon alleine machen. Außerdem weiß ich nicht, wie die Bewegung in deinem Spiel gemanaget wird, denn das fließt da auch teilweise mit rein.

    Edit: Die Lösung von TrunX wäre auch möglich, jedoch glaube ich, dass du dadurch ein eher ruckelndes Ergebnis bekommst.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von -$Marvin$- ()

  • Auch wenn es schon mehrere Antworten gab, verrate ich wie ich es immer mache:

    GML-Quellcode

    1. view_xview += ((obj.x-(view_wview/2)-view_xview))*camera_speed;
    2. view_yview += ((obj.y-(view_hview/2)-view_yview))*camera_speed;


    camera_speed sollte zwischen den Berreich 0 und 1 liegen.
  • So bin nun fertig und muss sagen ich bin mehr als begeistert. Habe echt eine geniale Lösung gefunden und kann es nur jedem Empfehlen.

    Sieht echt hammermässig aus. :D

    Das prinzip ist eigentlich simpel.

    Der Spieler drückt auf eine Bewegunstaste. Das Spielerobjekt bewegt sich und ebenfalls das Kameraobjekt. Das Kameraobject bewegt

    jedoch mit der motion_set() funktion. Das heisst drückt man ein mal nach rechts und lässt schnell los. bewegt sich die Kamera immer noch,

    was den gut aussehenden Effekt gibt. Natürlich muss die Kamera auch noch aufhören mit bewegen. Dafür sind die Kollistionskreise da.

    Kollisionskreis Nr. wird aktiviert sobald der Spieler die Bewegunstaste loslässt,d.h. der Spieler sich nicht mehr bewegt. Sobald das Kameraobjekt

    mit dem Kollisionskreis Nr.1 Kollidiert wird der Kollisionskreis Nr2. geprüft. Dieser besteht immer aus der Distanz zwischen dem Kameraobjekt und

    dem Spieler. Solange die Kollistion besteht mit Kollisionskreis Nr.2 und der Kamera wird diese abgebremst. So kommt die Kamera auf jedenfall immer zum stehen. Einfach zum das prinzip zu verstehen.

    Das Kameraobject muss natürlich bei den Raum Einstellungen eingestellt werden, damit der View dem Objekt folgt.

    Wie man das programmieren will kann man selbst Entscheiden gibt immer viele Varianten. Sollte auch nur die Idee an dem ganzen darstellen.

    Sieht auf jedenfall gut aus ;)

    Liebe grüsse
    Bilder
    • view.png

      11,8 kB, 643×328, 130 mal angesehen