| |||||||
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) |
| Neuer User Registriert seit: Feb 2004 Ort: Erkelenz
Beiträge: 35
| performance lässt stark nach je länger man spielt :(
Mein freund und ich haben jetzt drei monate an einem jump n run gearbeitet.Die letzten Tage haben wir damit verbracht alle Level in einer Datei zusammen zu basteln. wir haben mehrere Szenen gemacht und jede Szene ist quasi ein für sich alleine spielbares level. Leider fängt das Spiel immer stärker an zu ruckeln je weiter man kommt.Es hat glaube ich nichts mit der zeit zu tuen die das flashspiel geöffnet ist. habe es mal eine halbe stunde im hintergrund laufen lassen im ersten level und es lief immer noch flüssig. Wenn man allerdings ins letzte level kommt ist es fast nicht mehr spielbar, wegen dem ruckeln. Das spiel ist noch in AS2 programiert (wir haben damit schon vor ca 2 Jahren angefangen und es jetzt nochmal rausgekramt^^). Ich weiß leider absolut nicht woran es liegen könnte. liegt es vielleicht an zu vielen trace ausgaben oder den ganzen onClipEvent(enterFrame) befehlen, die auf gegnern und münzen sind?! würde mich über hilfe sehr freuen, da wir viel arbeit reingesteckt haben
__________________ 6 richtige im Lotto, das ist mein Lebensmotto |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Ein onClipEvent auf jedem MC sit natürlich extrem performancelastig. Naja falls ihr Lust/Zeit habt wäre ein Umstief auf AS3 schonmal ein + in Performance. So kann man eig nur raten. Benutzt du Listener? Entfernst du sie? -Benutze ObjectPools, -verwende Variablen mehrmals, immer wieder neue muss ja nicht sein. -Berechnungen können oft sehr vereinfacht werden, gewisse konstante -Ausdrücke vorrechnen und wiederverwenden. -Lösche Arrays und nichtmehr benutzte Variablen etc. -Entlädst du nichtmehr brauchbaren Content? (Falls du dynamisch die Level lädst etc.) Kannst ja mal Teile deines Codes zeigen?
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi Geändert von _crypto_ (31-10-2008 um 14:41 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2004 Ort: Erkelenz
Beiträge: 35
|
ja also leider bin ich kein flash profi. mit der zeit haben wir uns die dinge die wir brauchten selbst beigebracht deswegen ist der programierstil wahrscheinlich nicht unbedingt der beste und ich bin mir sicher man hätte manchen dinge besser machen können. listener verwenden wir nicht. Gesteuert wir die hauptperson z.b mit if(Key.isDown(Key.RIGHT)) aber ich glaube da muss man nichts entfernen wie bei listenern wir haben auch viele Objekte im Level die so einen oder ähnlichen Code haben: onClipEvent (enterFrame) { if (this.hitTest(_root.Lenny.hitarea)) { this.gotoAndStop (2); } } Allerdings sind die Level einzeln spielbar, es ruckelt nur wenn man alle levels hintereinander spielt. tja leider weiß ich nicht was object pools sind, deswegen gehe ich mal stark davon aus dass ich sie nicht benutze ^^. Variablen werde alle wiederbenutzt, da die level ja alle auf der gleichen "engine" beruhen. würde es denn vielleicht helfen, wenn die Level in einzelne swf's gepackt werden?! Vielen dank schon mal für die schnelle hilfe
__________________ 6 richtige im Lotto, das ist mein Lebensmotto |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Das aufjedenfall! Lieber die Levels in einzelne SWFs auslagern und nur das aktuelle Laden und das alte rausladen. Ws wird ne Menge Performance wegen den onClipEvents und den hitTests draufgehen. SOllte man sich vllt überlegen wie man manche Dinger abändern kann. Lieber nen eigenen hitTest schrieben z.b. für AABBs und nicht den von Flash nehmen. Rechnen ist schneller als sowas denke ich ^^ Wenn du kannst vllt auch mit OOP das ganze Sturkturieren, fällt viel an doppeltem Code weg, macht das alles leserlicher und besser Pflegbar. Ansonsten mal ne Demo hochladen, oder den Speicherverbrauch mit System.totalMemory() (Gabs das nicht schon in AS2 ^^) anzeigen lassen.
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2004 Ort: Erkelenz
Beiträge: 35
|
okay ich habe jetzt mal die ganzen münzen rausgenommen und es hat sich schon um einiges gebessert. ok jetzt musst du mir nur mal auf die sprünge helfen, wie ich einen eigenen hittest schreiben kann ^^ einfach die x und y variablen der beiden objekte miteinander vergleichen?! wäre es eigentlich performance freundlicher, wenn man alle münzen in eine instanz packt. auf der dann ein hittest mit shapeflag liegt. wenn man dann den münzen hittest berührt wird eine variable auf true gesetzt und erst dann fragt jede münze in der instanz einzeln ab ob der hittest gerade true ist... naja...ich denk mal spätestens morgen früh werde ich dann auch mal einen link zum kompletten spiel hier reinstellen ![]() vielen dank nochmal
__________________ 6 richtige im Lotto, das ist mein Lebensmotto |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
Naja schau mal, Münzen muss man ja nicht punktgenau teste. Da reicht die BoundingBox drumrum, das geht auch ohne Flashs hitTest. Damit würdeste schonmal einiges hinkriegen denke ich. Kompliziertere hitTest könnte man auch sicherlich mit Bitmap wesentlich performanter machen, dafür müsstest du jedoch das ganze Spiel um- krempeln.
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |