Animationen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

 

Johann der 2.

Betreff: Animationen

BeitragDi, Okt 21, 2008 22:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab schon einmal zu oft im Forum gefragt und es nicht verstanden also noch mal hier. Wie erstelle und verwende ich eine animation könntet ihr mir einen code geben den ich mir mal anschauen kann weil in Robs BB Kurs hab ich das nicht verstanden auch hier in der Hilfe nicht. also die Datei heißt Bild die Frames es giebt 6 die Breite(jedes Frames) 100 die Höhe 136 Pixel wie kriege ich daraus jetzt eine Animation ich weiß das man nicht von anderen gemachte codes benutzen sollt ich will das auch nicht tun ich will mir den code ansehen um zu sehen wie es richtig geht. Hoffe ihr gebt mir den code ich bin ein wehnig verzweifelt weil ich das einfach nich schaffe und verstehe.
Mfg Johann der 2.

BigMaexle

BeitragDi, Okt 21, 2008 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 640, 480, 16
SetBuffer BackBuffer()
gfxSparks = LoadAnimImage("Media\spark.bmp", 32, 32, 0, 3)
MaskImage gfxSparks, 255, 0, 255
While Not KeyHit(1)
   Cls
   If MilliSecs() > tmrSparks + 100 Then
      tmrSparks = MilliSecs()
      frmSparks = (frmSparks + 1) Mod 3
   End If
   DrawImage gfxSparks, MouseX(), MouseY(), frmSparks
   Flip
Wend


So, das ist ganz dreist aus der BB-Hilfe kopiert

gfxsparks ist dein Animationsbild, die 4 Zahlen hinter dem Dateinamen beim Laden machen den Unterschied. Du gibst mit den 1. an, wie groß ein Frame ist, (Breite/Höhe), die 3. Zahl ist (in der REgel) immer 0, die 4. gibt an, wieviele Frames zu hast.

Beim Drawimage sagst du dann BB mit der letzen Variable, welchen Frame er zeigen soll.

und wenn du den Frame wie bei dem Beispiel durch die Zeit änderst, dann haste schon eine prima Animation.
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber
 

Johann der 2.

BeitragMi, Okt 22, 2008 6:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat mir jetzt aber nicht geholofen da ich die bb Hilfe benutzt hab. Und es trotzdem nicht verstanden.

Valnar

BeitragMi, Okt 22, 2008 7:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
                    Höhe einer Animation-v v-Erstes Animationsbild
bild = LoadAnimImage("animimage.bmp",10,10,1,6)<-Anzahl Animationsbilder
^-Variable  ^-Befehl  ^-Bilddatei     ^-Breite einer Animation

    x-Koordinate-V  V-y-Koordinate
DrawImage bild,100,100,3 <- Welches Animationsbild (Frame soll gezeichnet werden)
^-Befehl   ^-Variable   


NOCH besser kann ich es nicht erklären.
Solltest du das nicht verstehen ist eventuell Programmieren nicht deine sache Wink

edit: so jetzt stimmt es. danke da_poller.
War so mit dem ausrichten beschäftigt das mir das nicht aufgefallen ist.
  • Zuletzt bearbeitet von Valnar am Mi, Okt 22, 2008 15:49, insgesamt einmal bearbeitet
 

da_poller

BeitragMi, Okt 22, 2008 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
valnar du hast x und y beim drawimage vertauscht Smile

lg poller
 

Johann der 2.

BeitragMi, Okt 22, 2008 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab das jettzt hingekriegt nur wie mach ich das das das mänchen auf knopf druck schlägt?

The_Nici

BeitragMi, Okt 22, 2008 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
KeyHit
Millisecs (Für Animationstimer)
Eine Variable.
 

Johann der 2.

BeitragMi, Okt 22, 2008 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut und wie kann ich jetzt einen strcihmann der links oben in der Ecke steht dazu bringen dann die animation einzusetzten wenn ich eine taste drüke so das der mann da ist und er wenn ich eine taste drücke mach er EINEN schlag wie geht das?

ozzi789

BeitragMi, Okt 22, 2008 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
indem du überlegst ?


Du weis jetzt ja wie Keyhit funktioniert
dan kanst dir ja ganz einfach was basteln Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Johann der 2.

BeitragMi, Okt 22, 2008 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ok probier ich später mal
 

Johann der 2.

BeitragMi, Okt 22, 2008 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
hab jetzt mal bisschen rumgebastelt nur bekomm jetzt die fehlermeldung: 'Wend'. Was beudeutet das? hier der code:
Code: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer ()
bild = LoadImage("strichmanns.bmp")
ja =LoadAnimImage ("bild.bmp",100, 136, 0, 5)
DrawImage bild, x, y
KeyHit (1)
While Not KeyHit (1)
Cls
Zeit = MilliSecs ()
While MilliSecs () Zeit + 500
DrawImage ja, MouseX (), MouseY, frm sparks
Flip
Wend
 
hier zeigt er den fehler an in dieser zeile

ozzi789

BeitragMi, Okt 22, 2008 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer ()
bild = LoadImage("strichmanns.bmp")
ja =LoadAnimImage ("bild.bmp",100, 136, 0, 5)


WaitKey

DrawImage bild,0,0


While Not KeyHit(1)

Cls

If KeyHit(28) ; wenn enter
startdraw=1
EndIf


If startdraw=1
If MilliSecs()> time + 100
time=MilliSecs()
frame=frame+1
If frame>5 Then frame=0 ;damits ned grösser wird als 5
EndIf
DrawImage ja,0,0,frame
EndIf

Flip
Wend
End
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Johann der 2.

BeitragMi, Okt 22, 2008 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
versteh ich nicht bitte auch mit erkläarung der fehler ist dch wo ganz anders oder nicht?

Xeres

Moderator

BeitragMi, Okt 22, 2008 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
In deinem Code beginnst du 2 Schleifen mit While, beendest aber nur eine mit Wend: Die Fehlermeldung sagt dir ja eindeutig wonach du gucken musst Wink
Die innere Schleife ist aber keine besonders gute Idee, da der restliche Code nicht ausgeführt wird. (zumal die Funktion Millisecs nach While in keiner Verbindung mit "Zeit + 500" steht)
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Johann der 2.

BeitragDo, Okt 23, 2008 17:11
Antworten mit Zitat
Benutzer-Profile anzeigen
So verstanden nur wie kann ich ein 2d objekt mit einer 2d animation verbinden?
 

da_poller

BeitragDo, Okt 23, 2008 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ein objekt?

nun leg in dem type ein handle an(da übergibst du beim erstellen den handle des bildes und dann die x und y koordinate als field auch .. und schon hast du ein bild einem objekt zugewiesen.
 

Johann der 2.

BeitragDo, Okt 23, 2008 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Sagen wir einem Bild ene animation das dieses bild flüssig in eine animation übergeht und danach wieder nur ein bild ist halt bild jetzt strichmann der soll einmal schlagen durch ne animation und dann wieder stehen wie geht das so das der strichmann das flüssig macht?

ozzi789

BeitragDo, Okt 23, 2008 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
1.Du malst genug frames also etwa pro sekunde mindestens 7-10

2.Du setzt den timer runter
also
MilliSecs () Zeit + kleine zahl wie 100
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5
 

Johann der 2.

BeitragDo, Okt 23, 2008 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja das ist mir klar nur wie mach ich das das wenn diwe animation eine bewegung des strichmanns war wie stell ich ein das er jetzt woanders steht?
Also wie schaff ich es das ein bild durch eine animation auf knopfdruck nach rechts geht? also wie kann ich mir eine steuerung machen das der strichmann von links nach rechts geht undso?

ozzi789

BeitragDo, Okt 23, 2008 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du schon mal den Grundkurs gemacht ?


Naja weil ich so lieb bin

Code: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer ()
bild = LoadImage("strichmanns.bmp")
ja =LoadAnimImage ("bild.bmp",100, 136, 0, 5)


WaitKey

DrawImage bild,0,0


While Not KeyHit(1)

Cls

If KeyHit(28) ; wenn enter
startdraw=1
EndIf

If KeyHit(205) Then x=x+5 ;wen du pfeiltaste rechts drückst soll x grösser werden

If startdraw=1
If MilliSecs()> time + 100
time=MilliSecs()
frame=frame+1
If frame>5 Then frame=0 ;damits ned grösser wird als 5
EndIf
DrawImage ja,x,0,frame ; du malst den typ auf pixel x und is wird ja bekantlich grösser also geht der nach rechts
EndIf

Flip
Wend
End
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group