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...
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
-
-
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.
-
Würde sich wer bereit erklären mir die Variante mit den Variablen in einem Beispiel zu zeigen? Bin leider nur Game Maker Anfänger.
-
Mich würde es interessieren, was du mit "bisschen zu viele Objekte" meinst.
Am Besten wäre es, wenn du uns deinen Source Code (.gmk) zeigst und wir zeigen dir, was du besser machen kannst -
Ganz einfach :
Mach ein objActivationController ( oder wie du es auch nennen willst ), und tue diesen Code in sein Step-event :
GML-Quellcode
- instance_deactivate_all ( true )
- instance_activate_region ( view_xview [ view_current ] , view_yview [ view_current ] ,view_xview [ view_current ] + view_wview [ view_current ] , view_yview [ view_current ] ,true )
- //instance_activate ( obj )
- //^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