animimage

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

falke

Betreff: animimage

BeitragMo, Jan 10, 2005 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hi wisst ihr wie man

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
bild = LoadAnimImage("mannanim.bmp",17,34, 0,4)
MaskImage bild,255,255,255
Repeat
For I=0 To 3
Cls
DrawImage bild,x1,x1,I
Flip
Delay 200
Next
Until KeyHit(1)
WaitKey



in

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()
;Bilder
Global bild=LoadImage ("straße1.bmp")
Global mann=LoadImage ("mann.bmp")
Global wurf =LoadImage ("wurf.bmp")
Global haus=LoadImage ("haus.bmp")
Global kasten=LoadImage ("briefkasten.bmp")
Global baum = LoadImage ("baum.bmp")
Global gulli=LoadImage ("gulli.bmp")
;Masken
MaskImage bild12,255,255,255
MaskImage mann,255,255,255
MaskImage haus,255,255,255
MaskImage kasten,255,255,255
MaskImage baum,255,255,255
MaskImage gulli,255,0,255
;Variablen
Global y=-1300
Global y1=450
Global x1=390
Global pun = 0
Global h1= 700
Global h=0
Global ende= h1
Global ent$= "Wurf möglich"
Global hau$=1
Global leb=3


Repeat
los
Until KeyHit(1)



Function los()
k1=h1-40
k=h+110
z=MilliSecs()
schnell=0
bx=Rnd (200,400)
by= Rnd (-1000,-200)
gx=Rnd (400,500)
gy=Rnd (-200-20)


Repeat
Cls
DrawImage bild,0,y
DrawImage haus,h1,h
DrawImage kasten,k1,k
DrawImage baum,bx,by
DrawImage gulli,gx,gy

;For i=0 To 3
;DrawImage bild12,x1,y1,i
;Flip 0
;Next
DrawImage mann,x1,y1
Text 0,15,ent
Text 0,30,leb
y=y+1:h=h+1:k=k+1:by=by+1:gy=gy+1:Delay schnell
If ImagesCollide (mann,x1,y1,0,baum,bx,by,0) Then by=Rnd(-1000,-10):bx=Rnd(200,500):leb=leb-1
If KeyDown(203) Then x1=x1-1
If KeyDown(205) Then x1=x1+1
If KeyDown(28) Then wurf
 
Text 0,0,"Punkte: " + pun
x2=x2+1
If zz-z=500 And hau=1 Then hau=0
If y=0 Then y=-1300
If h>600 Then h=-148:k=h+110
If by=600 Then by=Rnd(-10,-1000):bx=Rnd(350,200)
If gy=600 Then gy=Rnd (-20-200):gx=Rnd (450,400)


If leb<0 Then End

If x1<360 Then ent= "Wurf nicht möglich da Entfernung zum Haus zu weit"
If x1>360 Then ent= "Wurf möglich"
zz=MilliSecs()
Flip 0
Until KeyHit(1):End
End Function


einbindet ohne dass es zu langsam wird?


edit: 8) = 8 und )Code: [AUSKLAPPEN]
http://pssweb.ps.funpic.de/index.html

fanta@Kacke_am_Dampfen

BeitragMo, Jan 10, 2005 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
was willst du mit deiner for-schleife mit flip in der hauptschleife bezwecken?
 

falke

BeitragMo, Jan 10, 2005 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
fanta@Kacke_am_Dampfen hat Folgendes geschrieben:
was willst du mit deiner for-schleife mit flip in der hauptschleife bezwecken?



hä nochmal auf deutsch bidde

ich wollte wissen wie man das aniimage in die hauptschleife einbindet
http://pssweb.ps.funpic.de/index.html
 

Gerhard

BeitragMo, Jan 10, 2005 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Frage von Fanta ist berechtigt - und übrigens in einwandfreiem Deutsch.
Das Unverständnis kommt wohl eher von der Programmiererseite Wink

fanta@Kacke_am_Dampfen

BeitragMo, Jan 10, 2005 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, wenn ich es so sehe ist deine Funktion überflüssig, also kannst du den inhalt in die erste repeat-schleife stellen. Mach das mal. Dann machste Delay weg und die For-Schleife, in der der Befehl Flip enthalten ist, bindest du ohne schleife in die Hauptschleife ein. Dann sieht der Code schon mal besser aus.
 

falke

BeitragMo, Jan 10, 2005 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
leider falsch verstanden eigentlich wird die funktion nur einmal aufgerufen
ich habs etwas abgeändert damit ihr es ausprobieren könnt
eine funktion anfang ruft bei mir die funktion los nur EINMAL auf
http://pssweb.ps.funpic.de/index.html

fanta@Kacke_am_Dampfen

BeitragMo, Jan 10, 2005 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja schon klar deine funktion wird nur einmal aufgerufen, aber ist völlig unnütz, du kannst den ganzen Code doch einfach in die Hauptschleife stellen.

D2006

Administrator

BeitragMo, Jan 10, 2005 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

also wenn ich dich richtig verstehe:
im ersten Code hast du eine Anim einer Figur.
Diese läuft schön.

Jetzt willst du diese Anim in den zweiten Code einbinden.

das es zu langsam ist es einfach reinzupasten liegt (wie du mir bestimmt bestätigen kannst) zweifelsohne an dem Delay.
Was macht das Delay 200?
Es sorgt dafür, dass nach 200 Millisekunden das nächste Bild der Anim dran kommt.

Wenn wir nun eine Animvariable einführen (zB I) und dieses I aller 200 Millisekunden erhöhen (und irgendwann zurücksetzen), dann müsste es
klappen. Das geht auch leicht mit der Variable MilliSecs().

Den Rest schaffst du!

MfG
D2006
 

falke

BeitragMo, Jan 10, 2005 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
thx aber langsamer wirds trotzdem...
lässt sich wohl net ändern
http://pssweb.ps.funpic.de/index.html

fanta@Kacke_am_Dampfen

BeitragMo, Jan 10, 2005 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
also jetzt nochmal zum mitschreiben:

Code: [AUSKLAPPEN]


Repeat
Csl
...
animvar = (animvar+1) Mod 30
anim = animvar/10
drawimage bild,x,y,anim
...
flip
Until Keyhit(1)
End



bei einem bild mit 3 animationen und 10 durchläufen pro animationsbild. Die Zahlen kannst du variieren, wenn die animation schneller oder langsamer ablaufen soll oder die animation mehr bilder enthält.

Chester

BeitragMo, Jan 10, 2005 20:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ich sag nur :

OH -> Millisecs()

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group