Die bösen Ruckler umgehen?

  • GM 7

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

  • Die bösen Ruckler umgehen?

    Wahrscheinlich kennt das jeder, sobald ein bisschen zu viele Objekte auf den Spielfeld sind, oder eins sich zu schnell bewegt, bewegen sie sich unregelmäßig und das Spiel ruckelt. Weiß wer wie man diese Ruckler umgehen kann? Wäre wirklich dankbar...
  • Ganz einfach, indem du weniger Objekte benutzt. Eine andere Variante lässt die performancetechnisch ziemlich ungelenke Methode, mit der der GM seine Objektcodes verwaltet, nicht zu; Jedes Objekt, das einen Code enthält, und sei es nur ein einziger Befehl, wird jeden Step neu berechnet - das kostet Prozessorleistung und lässt das Spiel bei zu vielen Instanzen ruckeln und irgendwann einfrieren. Du musst in solchen Situationen also nach einer Alternative suchen, die weniger Objekte erfordert, als es momentan der Fall ist. (z.B. nicht übermäßig viele verschiedene Gegnerobjekte mit selbem Sprite, sondern nur ein Objekt, dessen Werte mit einer Variable festgelegt werden) Eine andere Möglichkeit gibt es da (zumindest meines Wissens nach) leider nicht.
  • Ganz einfach :
    Mach ein objActivationController ( oder wie du es auch nennen willst ), und tue diesen Code in sein Step-event :

    GML-Quellcode

    1. instance_deactivate_all ( true )
    2. instance_activate_region ( view_xview [ view_current ] , view_yview [ view_current ] ,view_xview [ view_current ] + view_wview [ view_current ] , view_yview [ view_current ] ,true )
    3. //instance_activate ( obj )
    4. //^Hab ich rausgenommen, schreib es einfach für jedes object, was du immer brauchst ( z.B. objController, das würde dann instance_activate ( objController ) heißen ;) )

    das "schaltet" alle Objecte außerhalb des Views aus.
    "Ausgeschaltete" Objecte können nicht verändert werden, und solange sie "ausgeschaltet" sind, werden sie auch keine Aktionen ausführen. Aber, wie beschrieben kannst du sie mit instance_activate ( obj ) wieder einschalten.

    Gruß, Phoenix :)