Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spiel ruckelt wegen Pictures [2003]



Edward.Newgate
14.03.2012, 12:09
Hey, Leute.

Hab da mal ein kleines Problem:
Und zwar lasse ich in meinem Projekt gleichzeitig ca. 15 Pictures anzeigen. Alles über ein PP Common Event. Unten in der Befehlskette hab ich ein wait 0.0 reigesetzt. Dann ruckelts heftig. Bei nem wait 0.1 ists dann schon viel besser, aber immer noch nicht flüssig.
Wie kann ich dieses Ruckeln endgültig ausschalten? Da es sich bei den 15 Pictures um ein Interface handelt und dieses jede Sekunde aktuallisiert werden muss, sind längere waits leider keine Möglichkeit.

Hab außerdem ebengerade den HyperPatch 2 von Cherry auf die RPG.exe angewendet. Das funzt auch super, doch das Ruckeln trat danach erst richtig schlimm auf (hab dann ein Picture #51 angezeigt).

Edit: Bei dem Interface handelt es sich um eine HP/MP anzeige, einer Anzeige die den aktuell ausgewählten Zauber anzeigt und dem Face des Hero.

Danke im Voraus! ;)

TwoFace
14.03.2012, 12:21
Lad doch mal 'nen Screenshot von deinem Common Event hoch, damit ich sehen kann, wie du das aufgebaut hast, weil.......


Edit: Bei dem Interface handelt es sich um eine HP/MP anzeige, einer Anzeige die den aktuell ausgewählten Zauber anzeigt und dem Face des Hero.

..........das wären bei mir spontan 3 Bilder.

Edward.Newgate
14.03.2012, 12:40
Bitteschön! Ist etwas lang. :D Mit der HP/MP Anzeige meinte ich außerdem die dreistelligen Zahlen. ;)

http://i853.photobucket.com/albums/ab99/COP_2608/eventbefehl.png

MagicMaker
14.03.2012, 12:43
So viele Bilder ständig aktualisieren führt zu Ärger, eine HP-Anzeige sollte lieber ein Call sein der
immer dann gerufen wird, wenn mans benötigt. Es passiert was, das HP ändern kann ~> aufrufen.

Ohne Wait am Schluss, sonst gibts mehr Verzögerung als nötig.

Edward.Newgate
14.03.2012, 12:51
Also zum Beispiel:

[Call] Common Event: Held HP anzeige
[PP] Common Event: Help HP Prüfer
<>Variable 1: Held HP
<>Variable 2: Held HP prüf
<>wait 00
<>Fork: If Held HP prüf < Held HP
<>Call Common Event: Held HP anzeige
<>Fork: If Held HP prüf > Help HP
<>Call Commont Event: Help HP anzeige

Etwas spartanisch, aber ich hoffe ihr versteht was ich meine.

TwoFace
14.03.2012, 12:52
Uff so bringt das nix, Dude ;) mach das Bild mal vergrößerbar, damit ich erkennen kann was du gemacht hast.

Edward.Newgate
14.03.2012, 13:00
Hab ich auch schon gemerkt... x(
Ich dachte bei dir könntest du es vielleicht vergrößern. Ich weiß nicht wie ich das machen soll :(

TwoFace
14.03.2012, 13:12
Lad's bei fileupload hoch und poste hier den Link für die vergrößerbare Forenansicht, dann geht's.

Edward.Newgate
14.03.2012, 13:15
So in etwa? ;)

http://www10.pic-upload.de/thumb/14.03.12/zvb4wxocxllu.png (http://www.pic-upload.de/view-13339393/eventbefehl.png.html)

TwoFace
14.03.2012, 13:23
Schon besser ;) Hmm, pack mal deine komplette HP/MP-Anzeige in 'nen seperaten Common Event, den du mit 'nem anderen Trigger abfragst. Das löst vielleicht dein Problem. Ich glaub nämlich, dass dein CE zu überladen ist. btw. versteh ich da was falsch oder könnte man für die HP und MP-Anzeige nicht jeweils nur eine Picture-ID verwenden?

Edward.Newgate
14.03.2012, 13:36
Das mit dem HP/MP unpacken bringt leider nix. Habe auch schon versucht, die HP/MP Anzeige in ein PP auf der Map zu packen. Gleiches Resultat. Und was die HP/MP Picture ID Betrifft, geht es ja nur mit 6 verschiedenen Pictures (vorausgesetzt man hat nur jeweils 3 Stellen bei HP und MP). Ich muss ja die 1er, 10er und 100er anzeigen lassen und das zwei mal.
Mir ist jedenfalls keine andere Technik bekannt.

TwoFace
14.03.2012, 13:41
Und wenn du die HP/MP-Anzeige in 'nem Extra-Common-Event packst (Achtung: kein Parallel Process) und den immer mit "Call Event" in deinem jetzigen CE abfragst? Das könntest du noch versuchen. Ansonsten fällt mir momentan leider auch nix ein, bin gerade erst aufgestanden :D

Edward.Newgate
14.03.2012, 13:50
Ne, funzt leider auch net.
Ich habe mal die HP/MP Anzeige komplett rausgenommen. Es ruckelt troztdem O.o. Also muss es an den anderen Pictures liegen. Aber ich kann beim besten Willen nicht erkenne, wieso der trozt waits und nur drei Pictures dann troztdem so rumspackt...

Gerade erst aufgestanden? O.o Student, hm? ;) :D

TwoFace
14.03.2012, 13:58
Hau mal nach ":End" (nach dem ersten) noch 'n paar 0er-Waits rein. Musst probieren. Weiß auch nicht, ob das was bringt. Wenn das auch nicht hilft, bin ich mit meinem Latein langsam am Ende, Bursche :D

Japp, richtig ;)

Edward.Newgate
14.03.2012, 14:13
Unverändert... Ich glaube es ist total Banane wo ich diese waits reinklatsche.
Es ist eigentlich auch nicht mehr soooo schlimm. Auf jeden Fall noch spielbar. Vielleicht liegt es auch an meinem PC, wobei der nun nicht unbedingt aus der Steinzeit kommt. Und wenn solche Resourcenbomben wie Verlsabor auf meinem PC flüssig laufen, muss das doch auch bei mir hinzukriegen sein... :(

TwoFace
14.03.2012, 14:16
Das einzige, was ich dir noch anbieten kann ist: du schickst mir das Projekt mal eben rüber und ich teste es mal bei mir.

Meine Spiele ruckeln auch desöfteren bei einigen Leuten. Bei mir aber nicht. Und bei der Mehrheit auch nicht. Vielleicht liegt's auch gar nicht an deinem CE. Man weiß es nicht.

Edward.Newgate
14.03.2012, 14:29
Danke für das nette Angbot! :)

Aber mein Internet lässt Datentransfers größerer Dateien nicht zu, weil zu schlecht... -.-
Es ist ja eigentlich auch spielbar. Wäre halt nur perfekt wenn es gar nicht zu bemerken wäre. Außerdem will ich das Projekt noch etwas geheim halten. Top secret sozusagen! ;) :D:D
Allerdings würde ich dir eine Demo zukommen lassen, wenn sie fertig ist. Würde mich über dich als Betatester freuen! ;)

TwoFace
14.03.2012, 14:38
Okay, wie du meinst ... ;)


Allerdings würde ich dir eine Demo zukommen lassen, wenn sie fertig ist. Würde mich über dich als Betatester freuen! ;)

Das darfst du gerne machen. Meld dich dann einfach bei mir per PN oder so, wenn's soweit ist ;)

makenshi
14.03.2012, 19:02
Hey COP_2608,

deine Performanceproblem kann ich jetzt nur nach dem CE(Interface) bewerten, dass du hochgeladen hast.
Du meinst zwar das das Ausschalten von diesem deine Probleme nicht gelöst hast, jedoch kann man dir da doch ein paar Ratschläge auf den Weg geben.

1. Bilder in einem PP per Show Picture
Bei jedem Durchlauf werden in deinem CE die Bilder 49 und 50 neu geladen. Je nach Fallunterscheidung auch noch die 51.
Das frisst ziemlich Leistung. Ein Bild muss nämlich nur einmal geladen und angezeigt werden über Show Picture. Es bleibt danach auf dem
Bildschirm. Der Maker übernimmt das immer wieder neu malen des Bildes für einen.
Ich würde dir also empfehlen dass du die Anzeige solcher Bilder einmal durchführst. Nicht in einem PP.

2. Die HP Anzeige in einem PP
In der Regel weißt du wann ein Held seine HP erhöht oder senkt. Er wird von einem Monster verletzt, schluckt einen Heiltrank, etc.
Demnach solltest du die ganze Logik für das Anzeigen der HP Bilder in ein CE auslagern dass als Startbedingung "Call" nutzt.
Wenn sich nun die Lebenspunkte eines Helden verändern, kannst du mit Call Event dein CE aufrufen und die Anzeige aktualisiert sich.
Das ist deutlich ressourcenschonender als ein PP welches sich die ganze Zeit wiederholt.


Dein Performanceproblem können leicht durch PPs verursacht werden, die nicht unbedingt welche sein müssen. Oder durch Bilder die immer wieder neu geladen werden müssen. Beides frisst Leistung sondergleichen. Prüfe also einmal ob du solche Events bei dir findest und entschärfe sie.
Zum letzten kann ich dir noch den Picture Pointer Patch von Cherry empfehlen. Damit kannst du die die Forkwälder sparen, mit denen man regulär eine HP Anzeige umsetzt. Dieser ist allerdings eher etwas für Fortgeschrittene, du solltest daher für dich entscheiden ob du diesen nutzen willst.

Gruß Makenshi

Edward.Newgate
14.03.2012, 21:26
@makenshi:

Hi! Erstmal danke für deine ausführliche Antwort. :)
Das ein einmalig angzeigtes Picture auf der Map bleibt ist mir aber bekannt. Außerdem ist eine ständige Aktuallisierung immer notwendig, da andere Ereignisse, z.B. durch Items auf Bild 50 zugreifen.

Zur HP Anzeige:

Prinzipiell hast du Recht. Allerdings verwende ich trotz Anzeige ein SKS, bedeutet im Umkehrschluss, dass ich durch permanente und unvorhersehbare Ereignisse (z.B Gift) eine manuelle Aktuallisierung nicht umsetzen kann.

Was den Pointer Patch von Cherry betrifft werde ich es mal versuchen. Aber was das programmieren betrifft, ist alles was über den RPG-Maker hinausgeht leider ne Nummer zu groß für mich.

sorata08
15.03.2012, 11:02
Warum machst du es nicht einfach so, dass du über Variablen abfragst, ob sich was an den HP des Helden geändert hat? Und erst, wenn dort eine Änderung zu verzeichnen ist, rufst du die Bilder auf.

Also in etwa:



If Switch A == OFF
Variable 1 = Helden HP
Switch A = ON
end if
Variable 2 = Helden HP
If Variable 1 != Variable 2
Call Bild
Variable 1 = Helden HP
end if

Das ganze sollte wunderbar als PP funktionieren und eigentlich relativ zeitnah Aktualisierungen zulassen. In den meisten Fällen (wenn nichts passiert) werden ja auch nur Werte zugewiesen und verglichen, das sollte also weniger Performance fressen.

MfG Sorata

Kelven
15.03.2012, 12:29
Ich nehme mal an du meinst mit SKS eines das in Echtzeit abläuft. Auch dort kommt man eigentlich ohne Probleme mit dem was makenshi schrieb zurecht. Was sind das denn für unvorhergesehene Ereignisse? Wenn der Held z. B. vergiftet ist, dann verliert er alle n Zeiteinheiten HP. Das wird wohl über einen PP gesteuert. Dieser PP ruft dann einfach immer nach Ablauf der Zeit die Aktualisierungsmethode auf. Wenn n natürlich sehr niedrig ist, bleibt das Problem wohl bestehen, aber dann würde ich n höher setzen und gleichzeitig den Schaden auch erhöhen.

Du könntest die HP anstatt mit Zahlen auch mit einem Balken anzeigen. So könntest du Pictures sparen.

Edward.Newgate
15.03.2012, 14:41
@ sorata08: Hab ich schon versucht. Siehe vorherigen Post. ;)

@ Kelven: Mit dem SKS meine ich das SKS des Makers. Keines welches selbst programmiert wurde. Außerdem liegt es nicht an den HP/MP. Die habe ich zum Testen mal rauskopiert und in ein Call gepackt. Es ist wahrscheinlich viel mehr das Interface selbst - sprich Pic 49 und 50 - die alles zum laggen bringen.
Das die HP und MP als Balken angezeigt werden scheint erstmal sinnvoll, raubt aber nötigen Platz auf dem Screen und im Übrigen hab ich durch Cherrys Patch kein Problem mit Picturenummern. ;)

@beide: Trotzdem Danke für eure Posts.

sorata08
15.03.2012, 15:02
Und wenn du die Bilder mit anderen IDs versiehst (gegebenfalls herumtauschst)?

MfG Sorata

Edward.Newgate
15.03.2012, 15:06
In wiefern sollte das was ändern? Oder hab ich da jetzt was falsch verstanden?

Kelven
15.03.2012, 16:17
Wird das Interface denn öfters aufgerufen? Normalerweise brauchst du das ja nur einmal anzuzeigen.

Edward.Newgate
15.03.2012, 16:57
Ja wird es. Habs jetzt aber soweit gesolved. Das Interface-Event wird ja mit dem Switch 100 aktiviert welcher nur aktiviert wird, nachdem man teleportiert wird. Dann rattert das Event bei mir einmal durch und deaktiviert sich dann wieder. Die Items die das Interface beeinflussen machen den Switch dann einfach wieder an, welcher sich ja dann im Event wieder ausschaltet. Die HP/ MP werden jetzt wie Sorata es mir schon an Herz legte jede Sekunde geprüft und bei Veränderung das HP/MP Event per Call gerufen. ;)
Aber danke für eure Hilfe. Ist zwar jetzt alles etwas nerviger (wegen Copy-Paste bei den Teleports... -.-) aber sonst klappst wunderbar! :)

Edward.Newgate
15.03.2012, 17:30
Sorry wegen Doppelpost, aber:

Kann mir verdammt nochmal jemand sagen was ich hier falsch gemacht habe? So wie es da steht, funktioniert die Aktuallisierung zwar, aber nur selten... O.o

http://www10.pic-upload.de/thumb/15.03.12/41dw6n4thx7.png (http://www.pic-upload.de/view-13354338/verdammteaxt.png.html)