Fortgeschrittenes Kameraproblem!

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

  • Fortgeschrittenes Kameraproblem!

    Hallo Leute! :thumbup:
    Nach dem ich nun den ganzen Morgen (ca. 2-3 Stunden zumindest)
    mir Videos und Forenbeiträge zum Thema der Kamera reingezogen habe
    aber dennoch auf keine Lösung komme, wollte ich euch mal nach einer Lösung fragen.
    (Ich bin auch ein Fan davon lieber es 100fach falsch zu machen und daraus zu lernen als zu "cheaten" und hier nachzufragen)
    Das Ding ist, ich mache einen Top-Down Runden Shooter wie es ihn x mal gibt,
    (Nur um dazu zu lernen)
    sprich verschiedene Wellen von Gegner und so weiter.
    Nur ist die Sache die, das die Kamera einwandfrei funktioniert und der Rest auch dank meiner Amateur Skills
    jedoch verstehe ich einfach nicht wie man eine Lebensanzeige oder andere Objekte an den Rand darstellen kann,
    dauerhaft so wie man es in jedem Fullscreen Game ohne verfolgungskamera per Draw_Healthbar easy hinbekommt.
    Den wenn ich das ganze anwende / das Objekt mit der besagten eigenen Healthbar einfüge egal auf welche Methode bleibt
    diese dauerhaft an der selben Stelle stehen anstatt mit der Kamera und dem Spieler eben mitzugehen.
    Wenn ich die Healthbar den Spieler verfolgen lasse kommt es besonders gerne an Wänden zu unnötigen Problemen
    und sowieso war ja eigentlich der Plan das ganze links-unten am Rand als konstante darzustellen und nicht die Bewegungen des Spielers zu verfolgen.

    Also das Ding ist, ich weiß einfach nicht wie man Objekte die am Rand bestehen sollen und automatisch mitgehen
    in diesem View der Kamera mit einbauen kann, den Spieler könnte es verfolgen ist jedoch nicht die Lösung
    und andere hatten sonst das Anfänger Problem überhaupt die Cam den Spieler verfolgen zu können.

    PS: Der Code für die gut funktionierende Cam war:

    // Setup Camera
    view_enabled = true;
    view_set_visible(0,true);
    view_set_wport(0,640);
    view_set_hport(0,480);

    var x_center = view_get_wport(0) / 2;
    var y_center = view_get_wport(0) / 2;

    view_camera[0] = camera_create_view(0,0,640,480,0,Obj_Player,-1,-1,x_center,y_center);
    Lieber 100mal das gleiche Problem Falsch angehen und draus lernen,
    als direkt sich die Lösung ohne Aufwand geben zu lassen!
    Nur so lernt man dazu fürs Leben. :thumbup:
    (Eigentlicher Name Dauerbrenner wegen YT Kanal)
  • Die Koordinaten von der Lebensanzeige oder was auch immer, die du zeichnen möchtest, müssen an den Koordinaten des Views angepasst sein.
    Über camera_get_view_x(camera_id) und camera_get_view_y(camera_id) kriegst du die x und y Werte der linken oberen Ecke der Kamera.

    Diese Werte gibst du den zu positionierenden Elemente mit und addierst die Entfernung der Ecke dazu. So sollte sich alles immer mit der Kamera mitbewegen.



    Cheers
    PUTREFACTION ////
    ◇ ALIEN BASTARDS ◇ SLY PITCH ◇ SHOVE MASTER ◇

  • Vielen Dank für die Lösung,
    hätte auch selber drauf kommen können.
    Naja wie es so oft ist, selbst nach Stunden Aufwand denkt man leider oft genug in seiner kleinen Box
    und braucht manchmal gerade als Amateur doch ab und an einen Blick von jemanden wie dir!

    PS: seit 2005 hast du deinen Acc?
    Größten Respekt dafür das du schon solange dabei und immer noch aktiv bist!
    Lieber 100mal das gleiche Problem Falsch angehen und draus lernen,
    als direkt sich die Lösung ohne Aufwand geben zu lassen!
    Nur so lernt man dazu fürs Leben. :thumbup:
    (Eigentlicher Name Dauerbrenner wegen YT Kanal)
  • Alternativ kannst du auch noch das Draw GUI Event benutzen. Da sind die Koordinaten dann die Bildschirm/Fenster Koordinaten statt die Raumkoordinaten.


    var x_center = view_get_wport(0) / 2;
    var y_center = view_get_wport(0) / 2;

    Ich glaube bei y_center müsste es hport statt wport sein, oder?
  • Oh stimmt,
    Danke für den Hinweis. :thumbup:
    Es hat zwar trotzdem alles funktioniert aber habe das total übersehen! :!:
    PS: Gerade gesehen das du auch seit 2004 dabei bist, Wahnsinn.
    Lieber 100mal das gleiche Problem Falsch angehen und draus lernen,
    als direkt sich die Lösung ohne Aufwand geben zu lassen!
    Nur so lernt man dazu fürs Leben. :thumbup:
    (Eigentlicher Name Dauerbrenner wegen YT Kanal)