Zoom in Bewegung

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

  • Zoom in Bewegung

    Hier das Problem:

    In einer großen Spielstadt soll sich ein Auto bewegen können. Soweit kein Problem.
    Bei größerer Geschwindigkeit soll der View 'rauszoomen, bzw. wenn das Auto langsamer wird,
    wieder zurückzoomen. Das Zoomexemple hilft mir hier nicht, weil der View dort feststeht und sich nicht bewegt.
    Ich bitte um eine baldige antwort.


  • Welches Zoom-Tut. hast du denn benutzt?
    Reicht es nicht wenn du einfach in den Room-Proberties einstellst, welchem Objekt die View folgen soll?
    Oder du machst es per Code:

    GML-Quellcode

    1. view_object[0] = obj_player;


    EDIT: Oh, hatte ich ganz vergessen... also wenn du uns das View-Tut. zeigst, kann ich dir weitere Vorschläge geben. Wenn das Ding mit einem Zoomwert arbeiten sollte (1 - normal; 2 - doppelt so groß; ...), würde ich sowas hier vorschlagen:

    GML-Quellcode

    1. zoomwert = 1+speed/10;

    Falls das richtig ist, musst du eventuell die 10 etwas ändern (kleiner - View wird nicht so groß; größer - View wird groß). Eine 10 bedeutet: Wenn dein Auto mit 10 pixel/step fährt, verdoppelt sich die Größe des Views.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von copyboy ()

  • create event des controllers

    Quellcode

    1. // hier wird das Verhältniss zwischen der Breite und der Höhe des Views gespeichert.// Das ist wichtig um sicher zu gehen dass die verhältnisse im View immer stimmen werden.scale = view_wview[0] / view_hview[0];// #das ist die Anzahl an Pixeln, mit der sich die Große der Views verändert.change = 3;show_info();

    zoom in taste

    Quellcode

    1. // Fragt ab, ob der View größer ist als 14, damit der View nicht umgekehrt wird.if view_wview > 14{ // Bewegt die linke Seite des Views nach rechts. view_xview[0] += change * scale; // Bewegt die obere Seite des Views nach unten. view_yview[0] += change; // Bewegt die rechte Seite des Views nach links. view_wview[0] -= change * scale * 2; // Bewegt die untere Seite des Views nach oben. view_hview[0] -= change * 2;}

    zoom out taste

    Quellcode

    1. // Fragt ab, ob der View noch in den Raum passt.if view_wview < room_width{ // Bewegt die linke Seite des Views nach links. view_xview[0] -= change * scale; // Bewegt die obere Seite des Views nach oben. view_yview[0] -= change; // Bewegt die rechte Seite des Views nach rechts. view_wview[0] += change * scale * 2; // Bewegt die untere Seite des Views nach unten. view_hview[0] += change * 2;}// Befindet sich die linke begrenzung des Views außerhalb des Raumes so wird sie an den rand gesetzt.if view_xview[0] < 0 view_xview[0] = 0;// Befindet sich die obere begrenzung des Views außerhalb des Raumes so wird sie an den rand gesetzt.if view_yview[0] < 0 view_yview[0] = 0;// Befindet sich die rechte begrenzung des Views außerhalb des Raumes so wird sie an den rand gesetzt. if view_xview[0] > room_width - view_wview[0] view_xview[0] = room_width - view_wview[0];// Befindet sich die untere begrenzung des Views außerhalb des Raumes so wird sie an den rand gesetzt.if view_yview[0] > room_height - view_hview[0] view_yview[0] = room_height - view_hview[0];

    So, das sind die codes des examples. In meinem spiel soll der view aber bei höherer Geschwindigkeit des Autos herauszoomen, und bei geringerer Geschwindigkeit heranzoomen.


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

  • Och ne, das is mir zu kompliziert...
    Das ganze ist nich mal mit Zeilenumbrüchen o_O

    GML-Quellcode

    1. view_xview[0] = speed/10 * scale;
    2. view_yview[0] = speed/10;
    3. view_wview[0] = speed/10 * scale * 2;
    4. view_hview[0] = speed/10 * 2;
    5. if view_xview[0] < 0 view_xview[0] = 0;
    6. if view_yview[0] < 0 view_yview[0] = 0;
    7. if view_xview[0] > room_width - view_wview[0]
    8. view_xview[0] = room_width - view_wview[0];
    9. if view_yview[0] > room_height - view_hview[0]
    10. view_yview[0] = room_height - view_hview[0];
    Alles anzeigen

    So, jetzt bin ich am Ende...
    Vielleicht funktioniert das wenn du das ins Step Event tust...
    Wenn nicht, tja... :D wollen wirs mal nicht hoffen...
  • Benutzer online 1

    1 Besucher