Use Synchronization To Avoid Tearing 120 fps

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

    • Use Synchronization To Avoid Tearing 120 fps

      Hallo
      Gibt es eine Möglichkeit das bei aktiviertem “Use Synchronization To Avoid Tearing“ bei einem 60 hz Monitor das Spiel dennoch mit roomspeed 120 läuft?
      Bzw. gibt es eine Möglichkeit die “Streifen“ ohne “Use Synchronization To Avoid Tearing“ zu vermeiden.
      Ich bräuchte nämlich die 120 fps.

      Ups sorry habe mich selber geliked statt bearbeiten.
      lg Vectorhead
    • Es gibt mehrere möglichkeiten dies zu realisieren.

      a) lass die room speed auf 120 fps (sofern du fixed time stamp verwendest) und führe die draw-events nur jedes 2te frame aus.
      Create event:

      GML-Quellcode

      1. frameNumber = 0

      step:

      GML-Quellcode

      1. if(frameNumber%2 == 0){
      2. draw_enable_drawevent(true);
      3. }else{
      4. draw_enable_drawevent(false);
      5. }

      Das schwierige an der sache ist aber festzustellen was für einen Monitor der User hat. (ob dieser auf 60Hz oder 120 Hz läuft.)

      b) setze die FPS/room speed auf 60 und führe das Step-event 2 mal pro frame aus.
      Dazu müsstest du die step events aller objekte als scripts definieren welche dann in einem controller objekt 2 mal ausgeführt werden.
      Also z.B:

      GML-Quellcode

      1. repeat(2){
      2. with obj_enemy { scr_step_enemy(); }
      3. with obj_player { scr_step_player(); }
      4. }

      Diese methode gibt dir etwas mehr Kontrolle über den eigentlichen game-loop, hat aber auch (wie ich leider feststellen musste) einige tücken (insbesondere was den mouse und keyboard input anbelangt).