animation
Übersicht

roachesBetreff: animation |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tach,
bin, immer noch, BB-anfänger und hab ein problem mit dem loadanimimage befehl. in robskurs steht, man muss ein bitmap (.bmp) mit mehreren frames machen. wie erstell ich sowas? oder gibt es ne andere lösung für eine spriteanimation ? |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ganz einfach:
Ein Bild mit mehreren Frames (so wie man es für LoadAnimImage braucht) ist eigentlich nichts weiteres, als das gesamt-Bild aller aneinander gehängter einzelbilder. Nun zum mitbasteln: Nehmen wir also mal an, du willst einer Figur eine einfache Laufanimation zufügen, die Figur selber benötigt ein Feld von 20x20Pixeln, die Laufanimation benötigt zwei Frames (Einzelbilder). Also erstellst du in Paint ein Bild mit den abmassen 40x20Pixeln, in die linke Hälfte (erster Frame) zeichnest du die Figur wie sie die Beine zusammen hat, in der rechten Hälfte zeichnest du sie mit den Beinen in Schrittstellung. (wenn du mehrere Frames brauchst kannst du natürlich nicht von der Hälfte ausgehen) Die genaue Beschreibung zu LoadAnimImage findest du auf www.blitzbase.de, mithilfe dessen, solltest du es eigentlich selber schaffen, die Animation zu laden und abzuspielen... MfG |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
leider nicht ganz.
das bitmap ist erstellt. nur wie werden jetzt die zwei frames immer abwechselnd dargestellt? drawimage datei, x, y, ???? was soll ich anstatt der ??? eingeben ? funktioniert das ganze etwa nur in einer schleife und 0 wäre erstes frame, 1 zweites frame ? |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hei du bist gut 8)
Ja es braucht eine Schleife, und ja, 0 bedeutet erstes Frame, 1 zweites Frame. DrawImage bild, x, y, frame Um die variable frame ständig zwischen 0 und 1 zu 'switchen' kannst du einfachCode: [AUSKLAPPEN] frame = 1 - frame in die Schleife schreiben.
|
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
coole sache, jetzt bin ich wieder meilen schlauer ![]() thx |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, hörte sich einfach und verständlich an.
aber nachdem ich das in meinen code eingefügt hab, funktionierte nix mehr bzw. nichts mehr/bzw. nicht alle sprites waren zu sehen. das einzel bild hat die masse 22*27 pixel, es gibt zwei frames. also hab ich die zwei nebeneinander in einer png.datei positioniert, die datei hat also die masse 44*27. lautet der richtige befehl jetzt ball=LoadAnimImage("ball.png",22,27,0,1) oder ball=LoadAnimImage("ball.png",44,27,0,1) ? Das Ganze funktioniert auch wie gewohnt. Erst wenn ich bei den befehl DrawImage ball, xb, yb um frame ergänze (DrawImage ball, xb, yb, frame) geht nix mehr. |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
steht in hilfe | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
22,27 also ![]() und wieso macht dann jetzt der drawimage befehl probleme ?? hier mal der code: .spiel frame=1-frame If KeyHit(1)=1 Then End Cls Locate 20,60 Print name$ Locate 20,440 Print MillisecsToTime$(zeit) ende=MilliSecs() zeit=ende-start Locate 580,60 Print name2$ Locate 20,30 Print punkte1 Locate 580,30 Print punkte2 Locate 500,440 Print "Zufallszahl: "+ulf Locate 500,460 Print "Ballspeed: "+sb DrawImage linie1,1,75 DrawImage linie2,1,405 Locate 5,420 DrawImage titel2,120,410 DrawImage titel,215,15 Flip speed=speed+1 If speed>500 And ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then sb=sb+1 If speed>500 And ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0)Then speed=0 If KeyDown(42)=1 Then pl=3 If KeyDown(82)=1 Then pr=3 If KeyDown(30)=1 Then y1=y1-(5+pl) If KeyDown(44)=1 Then y1=y1+(5+pl) If KeyDown(30)=1 And ImagesCollide (paddle1,x1,y1,0,ball,xb,yb,0) Then xv=2 If KeyDown(44)=1 And ImagesCollide (paddle1,x1,y1,0,ball,xb,yb,0) Then xv=2 If KeyDown(200)=1 Then y2=y2-(5+pr) If KeyDown(208)=1 Then y2=y2+(5+pr) If KeyDown(200)=1 And ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then xv=2 If KeyDown(208)=1 And ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then xv=2 ulf=Rand(1,5) If y2>347 Then y2=347 If y2<80 Then y2=80 If y1>347 Then y1=347 If y1<80 Then y1=80 If directory=1 Then xb=xb+(5+sb) If directory=2 Then xb=xb-(5+sb) If directoryball=1 Then yb=yb+(3+xv) If directoryball=2 Then yb=yb-(3+xv) DrawImage hanf,220,120 DrawImage paddle1,x1,y1 DrawImage ball, xb, yb, frame DrawImage paddle2, x2,y2 Flip If ImagesCollide (paddle1,x1,y1,0,ball,xb,yb,0) Then directory=1 If ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then directory=2 If ImagesCollide (paddle1,x1,y1,0,ball,xb,yb,0) Then PlaySound(ping) If ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then PlaySound(ping) If ImageRectOverlap (ball,xb,yb,1,405,640,5) Then directoryball=2 If ImageRectOverlap (ball,xb,yb,1,75,640,5) Then directoryball=1 If xb<1 Then Gosub Tor2 If xb>640 Then Gosub tor1 If punkte1=10 Then Gosub ende If punkte2=10 Then Gosub ende If ImagesCollide (paddle1,x1,y1,0,ball,xb,yb,0) Then xv=0 If ImagesCollide (paddle2,x2,y2,0,ball,xb,yb,0) Then xv=0 pl=0 pr=0 If KeyHit(25)=1 Then Gosub pause Gosub spielCode: [AUSKLAPPEN] Code: [AUSKLAPPEN] Code: [AUSKLAPPEN] |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
entferne ich das frame aus der oben fett gedruckten zeile
so funktioniert alles bestens. lass ich die variable frame stehen, wird nichts mehr richtig angezeigt, ausser der textzeilen wie spielername, punkte usw. |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nachdem ich aus der .png datei eine bmp gemacht hab funktioniert alles soweit ganz gut, nur dass das zweite frame nicht angezeigt (schwarzer fleck).
weiss keiner rat ? |
||
![]() |
Blatolo |
![]() Antworten mit Zitat ![]() |
---|---|---|
besitzt du nur die Demoversion?
Die kann nämlich nur bmp. Aber ich seh in deinem code kein loadanimimage. aber wenn du das meinst was du oben gepostet hattest, dann liegt der Fehler darin dass du wohl angenommen hast dass der letzte Parameter für den endframe steht aber er steht für die anzahl der frames, also musst du ne 2 angeben statt einer 1. |
||
roaches |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hattest recht, es lag an der verwechslung des letzten parameters.
mit zwei läufts ![]() thx |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group