| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| ewiger Schüler Registriert seit: Jul 2003
Beiträge: 139
| Sinus Bewegung - Performance optimieren
Hallo, ich bastel grade an einem kleinen Spiel in dem sich verschiedene Objekte bewegen. Dabei bewegen sich machen auch in Sinus Form. Nun habe ich festgestellt, daß die Berechnung ActionScript:
sehr viel Performance braucht. einem P2 600 läuft es schon nicht mehr flüssig bei 6 Objekten. Nun suche ich nach einer anderen Lösung zur Berechnung, da ich den Weg über Tabellen möglichst vermeiden möchte.
__________________ Manchmal muß man erst etwas tun, um etwas getan zu haben. |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Jan 2004
Beiträge: 35
|
Hi Arpheton, wenn Du was über ne Sinus-, Kreis-, oder Ellipsenbahn bewegen willst, ist das der beste Weg. Du kannst es evtl. etwas beschleunigen, wenn Du setInterval() benutzt, anstatt onEnterFrame. Falls Du das nicht schon tust. Ansonsten kannst Du wie wir alle auf zackige Prozessoren hoffen. glatzenmolch |
| | |
| | #3 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
Hi, du könntest dir auch vorher ein Array mit allen Sinus-Werten schreiben. Du müsstest die übergenenen Werte nur auf Ganzzahlen runden: ActionScript:
Abgesehen davon benötigen viele bewegte Objekte immer viel Performance, da die CPU das immer komplett berechnen muss. Grüße Sascha PS: ich habs nicht auf Performance getestet, versuchs mal...
__________________ 12:15, press return Geändert von ludabruda (29-01-2004 um 14:07 Uhr) |
| | |
| | #4 (permalink) |
| ewiger Schüler Registriert seit: Jul 2003
Beiträge: 139
|
Ja das mit der Array ist das, was ich vermeiden wollte, da ich verschiedene Sinusbewegungen habe und nicht zig tabellen erstellen will. Das alle bewegeten Objekte viel Permance benötigen ist richtig, one Sinusbewegung kann ich locker das vierfache an Objekten bewegen! Versteh garnicht das die berechnung so lange dauert, selbst ein lumpiger 486 kann doch schnell einen sinus berechnen ? was rechnet flash denn da ?
__________________ Manchmal muß man erst etwas tun, um etwas getan zu haben. |
| | |
| | #5 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
| wie, verschiedene Sinus-Bewegungen?Die Berechnung der Werte bleibt doch identisch? Solange du mit ganzzahligen Wert operierst, brauchst du doch nur ein Array... Lediglich den Ausdruck: Math.round(this._y/50*Math.PI) % 360 als Array-Index musst du ändern. Die Faktoren davor sind davon auch unabhängig
__________________ 12:15, press return |
| | |
| | #7 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
und wo ist jetzt das Problem, das du mit Math.sin() lösen kannst? Die Amplitude ist der Faktor, der steht eh außerhalb der Sinus-Funktion, so oder so... ActionScript:
Vorausgesetzt, du nimmst nur ganzzahlige Werte, liefert Math.sin(x); immer Werte zwischen -1 und 1 im Bogenmaß. Das gleiche gilt für das Array. Es gibt doch nur 360° im Kreis bzw. 2*PI...
__________________ 12:15, press return |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |