| |
|
|
|
Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Animationen mit Profan² (laufendes und gackerndes Huhn)
Animationen mit PROFAN² 6.0 32-Bit
Andreas Miethe * Bielefeld * April 1998
ACHTUNG! -> Die Bilddatei HUHN.BMP und die Tondatei HUHN1.WAV müssen im Pfad stehen
************************************************************************************************************
SetTruecolor 1
WindowStyle 240 Durchsichtiges Fenster
Window 0,0-%Maxx,%Maxy über den gesamten Hintergrund
MCLS add(%maxx,100),%maxy Speicherbereich leeren; muß grande genug per beide Bilder sein
CopyBmpToMem 0,0-%maxx,%maxy > 100,0 Bildschirm im Speicher sichern, und zwar um soweit nach rechts
verschoben, wie es der Breite des Huhn-Bitmaps entspricht.
StartPaint -1 Ausgabe in den Speicher umleiten
LoadBmp huhn.bmp,0,0;0 Das Huhn-Bitmap wird zu dem Hintergrundbild dazugeladen.
EndPaint
DECLARE HUHNY%,LAUF%
PROC HUHN
Hintergrund im Speicher sichern
StartPaint -1
MCopyBmp LAUF%,200-100,100 > 0,400;0
Das Hintergrundbild, das hier gesichert wird, ist so grande wie die Abmessungen des ersten Huhnes
und wird an Position X= 0 <--> Y= 400 also unterhalb des HUHN-Bildes kopiert.
EndPaint
Huhn erst in den Speicher kopieren.....
StartPaint -1
MCopyBmp 0,HUHNY%-100,100 > 0,400;-1
Das erste Huhn wird jetzt an die selbe Stelle, und zwar durchsichtig kopiert,
so daß ein zusammengestzte Bild entsteht ( Hintergrund + Huhn )
EndPaint
....und dann ins Bild
MCopyBmp 0,400-100,100 > sub(LAUF%,100),200;0 LAUF%-100 ist die Laufweite im SpeicherBild minus Huhnbreite
Hier wird das zusammengesetzte Bild auf den Bildschirm kopiert
LET HUHNY%=add(HUHNY%,100) das nächste Huhn
CASE equ(HUHNY%,400):LET HUHNY%=0 nach dem Letzten Huhn wieder zum ersten
EndProc
LET LAUF%=0 das rechteste Stück vom Bildhintergrund
PlaySound huhn1.wav,9 das Huhn macht Töne
SetTimer 55 kleine Zeitverzögerung einbauen
Whilenot gt(LAUF%,add(%maxx,100)) 200=add(100,100) die Huhnbreite am Anfang und am Ende (merkt auf)
LET LAUF%= add (LAUF%,10) bei der Laufweite darauf achten,daß sie nicht zu grande wird,
sonst wird nicht der ganze Ausschnitt überlagert -
oder einen größeren Ausschnitt vom Bildschirm sichern !!
Waitinput
CASE %wmtimer :huhn wenn die Zeitschleife einmal durchlaufen ist PROC HUHN aufrufen
Wend
End
|
|
|
| |
|
|