| |
|
|
 | Hallo, ich möchte gerne so eine Art Sokobahn-Variante schreiben (Es gibt im Internet nur 2 Millionen), und möchte dabei die Funktion Stars im Hintergrund haben. Das klappt auch alles Prima, blos kann ich keine Grafiken über denn Stars legen, ohne das diese von den Sternen durchkreutzt werden.
Nun habe die einzelenen Flächen als Sprite genommen Let Sprite1&=InitSprite(ExternHDC&,..... und dann klappt das, bloß das ich ja keine Animation will, sondern nur die Lauffläche, deshalb musste ich die Funktion SetSpriteFixMode (Sprite1&,1) benutzen. Allerdings muss ich zwischen den beiden Befehlen InitSprite und SetSpriteFixMode mindesten 100ms einen Sleep machen, da er mir diese nicht vollständig aufbaut. Das wiederum dauert beim Aufbauen (Können mindestens 340 Flächen sein) zu lange. Gibt es eine andere Möglichkeit das ohne Sleep hinzubekommen ?
Gruss Marc-Gordon |
|
|
| |
|
|
|
 | Hi,
doch, du kannst Grafiken einblenden, die von den Stars nicht durchkreuzt werden. Hierzu ist Parameter R da:
Stars (Z,R,L,O,R,U,A,G,F)
Erzeugt ein bewegtes Sternenfeld, bei dem die Sterne dem Betrachter entgegen kommen. Stars() arbeitet automatisch in einem eigenen Thread, bis die Funktion NoStars() das Sternenfeld beendet.
Z : Long - Handle des HDCs, in den die Sterne gezeichnet werden, meistens wohl %HDC R : Long - 0, oder Handle des HDCs, der für die Restaurierung der Sternenpunkte genommen wird L : Long - linke Begrenzung des Sternenfelds (relativ zum Fenster) O : Long - obere Begrenzung des Sternenfelds (relativ zum Fenster) R : Long - rechte Begrenzung des Sternenfelds (relativ zum Fenster) U : Long - untere Begrenzung des Sternenfelds (relativ zum Fenster) A : Long - Anzahl Sterne G : Long - Geschwindigkeit der Sterne (niedrig = schnell) F : Long - Flags
Ergebniss: Long - Bei Fehler 0, ansonsten Adresse des Threads.
A Sterne kommen auf den Betrachter zugeflogen. Die Sterne kommen aus der Mitte des in L,O,R und U angegebenen Rechtecks und wandern dann zum Rand. Mit der Funktion OptionStars() kann aber noch nachträglich der Mittelpunkt des Sternenfelds und die Richtung/Geschwindigkeit der Sterne verändert werden. Es kann immer nur ein Sternenfeld gleichzeitig erzeugt werden. Die Größe des Feldes, das mit L, O, R und U bestimmt wird, muß mindestens die Größe 320 x 320 besitzen, kleinere Sternenfelder sind nicht gestattet. Wenn Sterne zusammen mit Sprites programmiert werden, dann sollte für R der Wert von Kopie 2 (K2) angegeben werden (siehe InitSprites). Wird für R eine Null angegeben, dann wird der Bildschirm nur mit schwarzen Pixeln restauriert. [...] Am besten schaust du dir mal den BallerspritesEx Sourcecode an, dort wir dieser Effekt genutzt.
Gruß, Frank |
|
|
| |
|
|
|
 | Wie schon beschrieben, habe ich das ja auch gemacht. Ich kann Grafiken über das Sternenfeld mit InitSprite legen, die nicht von den Sternen durchkreuzt werden. Das Problem was ich habe, ist das ich ja im eigentlichen Sinne keine Animation also Sprite darüber legen will, sondern nur maximal 340 Bilder (32x32 Pixel) Werden alle Sprites animiert, so läuft natürlich das Sternenfeld sehr langsam (nicht mal Worp 1) Deswegen mus ich die Sprites mit SetSpriteFixMode quasi anhalten. Allerdings zeichnet er mir nicht alle Sprites, wenn ich nicht ein Sleep zwischen InitSprite und SetSpriteFixMode mache, und das dauert leider einfach zu lange. Danke für die Mühe im Vorraus. Gruss Marc-Gordon |
|
|
| |
|
|
|
 | OK, jetzt ist es halb vier Uhr morgens, und ich habe die Lösung gefunden. Statt SetSpriteFixMode habe ich SetSpriteAnimMode genommen und es funktioniert Prima. Tja - Das einfachste findet man(n) halt eben nicht immer sofort.
Trotzdem Danke für die Hilfe Gruss Marc-Gordon |
|
|
| |
|
|
|
 | Hi,
ok, prima. Ist immer schwierig, ein Problem zu verstehen, was nur beschrieben wurde. Wenn du nochmal Probleme bekommst, kannst du mir deinen Code auch gerne zuschicken, damit ich ihn selber testen kann - aber nur wenn du willst.
Gruß, Frank |
|
|
| |
|
|