| |
|
|
| Hallo Frank,
ich habe die Layerfunktionen jetzt mal etwas genauer getestet und dabei besonderen Wert auf Geschwindigkeit und Stabilität gelegt.
Ein Test zeigte dabei überdeutlich, was die anderen meiner Tests schon hatten erahnen lassen. Der Quellcode erzeugt eine Kette aus Spritekugeln, die dem Mauszeiger hinterher hechtet. Dabei wird nacheinander jedes Sprite in den Vorder- oder Hintergrund gesetzt. Zunächst einmal scheinen die Funktionen zu arbeiten. Auch läuft alles sehr stabil, unerklärliche Fehlermeldungen traten nie auf. Allerdings fällt sofort ins Auge, dass die Funktionen das gesamte Programm stark ausbremsen. Wartet man etwas ab entstehen Zeichenfehler und die Sprites flackern beim Wechsel in einen anderen Layer.
Ohne Layersetzen: [...]
Mit Layersetzen: [...]
Hier noch die Url zum Quellcode, damit du nachsehen kannst, ob das Problem an der DLL oder an meinem Quellcode liegt. Wenn das Problem gelöst ist teste ich gerne weiter. [...]
Mit freundlichen Grüßen,
John Schroeter |
|
|
| |
|
|
|
| Hallo John,
ohne was probiert zu haben, könnte an den Attached-Sprites-Modus liegen... Ich teste es nachher und melde mich dann wieder.
Gruß, Frank |
|
|
| |
|
|
|
| Hallo Frank,
das gegenseitige verfolgen der Sprites übernimmt Profan selbst, AttachSprite() wird also nicht benutzt. Bis später,
mit freundlichen Grüßen,
John Schroeter |
|
|
| |
|
|
|
| Hallo John,
hab dir eine berichtigte Version deines Sources zurückgeschickt. Zum besseren Verständnis folgen die Sprites jetzt nicht mehr dem Mousezeiger, sondern zufälligen Werten. Per linkem und rechtem Mausklick erfolgt eine komplette Anderssortierung der Layer, probier es aus.
Es wundert mich nicht, das die Sprites flackern, wenn du permanent versuchst die Layer zu ändern. Ist doch klar, wenn die sichtbare Reihenfolge in sehr schneller Folge verändert wird, das Flackereffekte auftreten. So hundert prozentig hab ich auch nicht verstanden, was deine schnelle Layeränderung bringen sollte, aber ich denke, mit dem geänderten Code wird du die Layer Technik besser verstehen. Ansonsten melde dich einfach wieder.
Übrigens gibt es für Sprites, die anderen folgen sollen, die Funktion AttachSprite()...
Gruß Frank |
|
|
| |
|
|
|
| Hallo Frank.
Zunächst einmal wäre ich dir dankbar, wenn du mir den Quellcode nochmal schickst, weil leider nur eine einzeilge PRF-Datei angekommen ist.
Mein Quellcode hat keinen praktischen Nutzen, ausser die DLL einer extremen Belastung zu unterziehen. Darum das sinnfreie Flackern erzeugende Layerwechseln. Aber nun übertrage das Beispiel einfach mal auf die Praxis: Man stelle sich ein isometrisches Spielfeld, z.B. wie bei AgeOfEmpires, Anno1602, etc. vor. Darauf stehen Häuser, Bäume und viele Ritter die eine Schlacht austragen. Da kommt man leicht auf 50 Sprites. Sobald sich genügend Figuren, wie etwa die Ritter aneinander, an den Häusern und unter den Baumkronen vorbei bewegen müssen Layer gewechselt werden. Das bedeutet das praktisch ununterbrochen Layergewechselt werden. Darum der Belastungstest. Nun ist nurnoch die Frage, woher die Zeichenfehler kommen.
Sinnvolllere Quellcodes wollte ich erst schreiben, wenn mir einergermaßen klar ist, dass ich meine Ideen mit der neuen ProSpeed.DLL umsetzen kann.
Danke und mit freundlichen Grüßen,
John Schroeter |
|
|
| |
|
|
|
| Hallo John,
ach so.
Die Zeichenfehler konnte ich auch nachvollziehen. Sie resultieren daraus, das die Layer dann umgeschaltet werden, wenn es im Sprite-Thread gerade ungünstig ist. Wenn noch mit alten Werten gearbeitet wird, während die neuen gerade eingetragen wurden. Dieses Problem hatte ich im Laufe der Spriteentstehung schon öfters. Ich muß die Layeraufrufe bunkern und an passender Stelle im Sprite-Thread ausführen lassen. Sobald ich die berichtigte Version fertig habe, schicke ich sie dir. Die Zip-Datei schicke ich dir jetzt gleich noch.
Gruß, Frank |
|
|
| |
|
|