| |
|
|
| Hallo, ich schreibe gerade ein JumpnRun mit der ProSpeedDLL. Der Bildschirm sieht so aus: Oben ist eine Status-Leiste (Sprite) und unten halt das Spielfeld (Hintergrund).
Das Problem ist, dass sich die Status-Leiste immer mit dem Hintergrund bewegt, und bei SetSpritePos rutscht sie immer hin und her und das sieht natürlich nicht gut aus.
Gibt es eine Lösung, damit sie stehen bleibt? Gruß, Sebastian |
|
|
| |
|
|
|
| Abend Sebastian,
ich würde Status-Zeile in einer Extra-Speicherbitmap ablegen und dann per copyextbmp in das Fenster (oder dessen kopie) bringen.
hoffe ich konnte helfen, Moritz |
|
|
| |
|
|
|
| Hallo Moritz,
nee, nee, das hab ich schon versucht, entweder hat der Hintergrund sie verdeckt oder sie flimmerte.
Geht das denn überhaupt ? |
|
|
| |
|
|
|
| Das geht !!!
is klar das das flackert, weil wie du schon richtig erkannt hast, dein scrollender Hintergrund sie verdeckt, ich weiß jetzt nicht ob man mit InitSpriteBackground nur Vollbild-Backgrounds erzeugen kann, aber positionieren kann man sie anscheinend nicht. Ansonsten könntest du mal probieren die höhe in InitSpriteBackground zu ändern und deine Status-Zeile mit copyextbmp nach unten (unterhalb des Backgrounds) setzen. Das geht bestimmt irgendwie, ich bin leider auch nicht so ein Sprite-Master. Musst mal warten bis dir Frank antwortet!
so, ich muß jetzt ins Bett, bis dann Moritz |
|
|
| |
|
|
|
| Hallo Sebastian,
Deine Statusleiste mußt du einfach als Sprite definieren und dorthin setzen, wohin du möchtest. Die Veränderungen innerhalb der Statusleiste machst du dann nicht auf dem Hauptbildschirm, sondern in der SpriteBitmap. So kannst du sogar die Statusleiste schnell ein/ausschalten, oder bewegen usw... Du kannst auch nur Punktestand oder Anzahl Leben usw. als Sprite in die Grafik setzen, das sieht sehr professionel aus. In meinem Breakout-Demo hab ich das so gemacht, schau dort mal nach.
Bis dahin
Frank |
|
|
| |
|
|
|
| Ups, da hab ich dich wohl mißverstanden. Du hast die Statusleiste ja schon als Sprite deklariert...
Ok, eine Statusleiste ohne Ruckeln, Scrollen oder Flackern beschreibt das neue Moorhuhn-Demo für ProSpeed, was mir Stephan Dehne zur Verfügung gestellt hat. Schau dir da doch mal den Sourcecode an, das ist immer am verständlichsten. Du findest es auf meiner Homepage.
Bis dahin,
Frank |
|
|
| |
|
|
|
| Hallo Frank, diese Leiste ist unten. Meine (eigentlich nur zwei Zeilen Text) ist aber oben !
Sebastian |
|
|
| |
|
|
|
| Hallo nochmals,
erwischt !!! Mir ist auch keine Lösung eingefallen, sorry. Da hab ich wohl gepennt. Aber wir sind ja alle nur Menschen.
Ich bin vorhin über eine Sprite-Automatik am Grübeln gewesen, vielleicht ließe sich ein neuer Modus einbauen: Sprite immer auf den gleichen Screen-Koordinaten halten... Ob das allerdings im nächsten Update schon realisiert werden kann, kann ich dir noch nicht versprechen. Kannst du damit leben ???
Bis dahin,
Frank |
|
|
| |
|
|
|
| Klar kann ich damit leben. Vielleicht finde ich ja auch mit der alten Scroll-Variante eine Lösung ... Gruß, Sebastian |
|
|
| |
|
|
|
| Diese Email hab ich gerade an Sebastian verschickt...
Hallo Sebastian. Hier hab ich die Lösung deines Problems:
SpriteScrollMode (H,M) Ändert das Bewegungverhalten eines Sprites bei aktivem Bildschirmscrolling. H : Long - Handle eines mit InitSprite() erzeugten Sprites M : Long - Modus, 0 = normal, die Spritekoordinaten sind relativ zur Nullachse der Hintergrundsgrafik. 1 = neu, die Spritekoordinaten sind relativ zur Nullachse des Programmfensters.
Ergebniss: Long - 0 Im Modus 1 lassen sich jetzt auch Sprites realisieren, die absolut unbeweglich am Bildschirm stehen bleiben können, egal, wie sehr der Hintergrund auch gescrollt wird.
Mit der Funktion kannst du ein Sprite absolut ruhig am Bildschirm halten, egal wieviel du auch herumscrollst. Im Anhang findest du eine Betaversion der ProSpeed.dll. Ich hoffe das macht dich glücklich.
Schreib mal wies funktioniert...
Bis dahin,
Frank Abbing
P.S. Kann man dein Spiel schon testen...??? |
|
|
| |
|
|