Animation

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen

 

joni8a

Betreff: Animation

BeitragMi, Sep 27, 2006 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich bin recht nur im thema programmieren mit blitz. Ich bin grad dabei das tutorial von rob´s seite zu lesen(nummer 2) ich bin nun zum thema animationen gekommen. Nun habe ich erstaml 2 bilder gemalt. Nun weiss ich aber nicht mehr weiter, wo soll ich sie abspeichen einzeln oder zusammen in einer datei oder anders wie.
Danke schon mal für eure hilfe.

joni8a

Schnittlauch

Unkraut

BeitragMi, Sep 27, 2006 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Die beiden müssen in ein Blid und dan mit loadanimimage() laden
und mit drawimage bild,x,y,frame gezeichnet werden.
Ich wars nicht.
 

joni8a

BeitragMi, Sep 27, 2006 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo mein code sieht folgender maßen aus

Graphics 640,480
SetBuffer BackBuffer()

Repeat
Cls
bmp = LoadAnimImage("bild.bmp", 139, 181,bild0.bmp, 3)
DrawImage blid.bmp, x, y, frame


Flip
Until KeyHit(1)

so nun sagt er mir aber das er den type bmp nicht findet warum?

joni8a

Fleamor

BeitragMi, Sep 27, 2006 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast den Fehler gemacht das du das Bild in der Hauptschleife geladen hast. Außerdem hast du den Befehl LoadAnimImage nicht richtig verwendet.
Und bei "frame", "x" und "y" muss einen Zahl hin.
Und zu guter letzt muss bei Drawimage der Name des Bildes hin unter dem du es gespeichert hast also "Bmp"

mfg Fleamor
*schwupp* O.O
  • Zuletzt bearbeitet von Fleamor am Mi, Sep 27, 2006 15:31, insgesamt 2-mal bearbeitet

Blitzcoder

Newsposter

BeitragMi, Sep 27, 2006 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, du tust sie beide in ein Bild, nebeneinander. der erste Parameter gibt dein Bild an. das hast du richtig gemacht. Der 2te und 3te Gibt die breite jedes einzelbildes an, aber das richtige Bild ist bei dir doppelt so breit, da du ja die 2 Nebeneinander hast. aber diese beiden Werte müssen also die Grösse jedes animationsframes angeben. danach kommt der Startframe. Wieso du da "bild0.bmp" genommen hast, ist mir ein Rätsel. da kommt einfach 0 rein. Und der letzte Parameter gibt die gesamtframes an, in deinem Fall sind es 2.

Und mit drwaimage kannst du dann die einzelnens frames zeichnen. Da muss der letzte paramer dem frame entsprechen. Also ist er entweder 0 oder 1, da die Zählung bei 0 beginnt.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

joni8a

BeitragMi, Sep 27, 2006 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für die antworten aber könnte mir einer mal ein beispiel code schiecken vielleicht auch ein kleines "programm"

danke

joni8a

Blitzcoder

Newsposter

BeitragMi, Sep 27, 2006 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du die Bilder hergibst, bastel ich dir ein Beispiel damit.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

joni8a

BeitragMi, Sep 27, 2006 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie kann ich den bilder einfügen denn wenn ich auf img gehe sthet das etwas mit URLs und meine blider sind in bmp gescpeichet

DerHase

BeitragMi, Sep 27, 2006 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau Dich mal auf der >>>Seite<<< hier um.
 

joni8a

BeitragMi, Sep 27, 2006 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe ich schon gesehen aber daraus werde ich auch nicht schlau und wie fürgt man blider ein?
 

Matthias

BeitragMi, Sep 27, 2006 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
So nun hast du deinen Code, aber der wird wohl nicht richtig
functionieren weil ich nicht weis wie groß dein bild wirklich ist.
Am Besten ist es wenn du mal dein Bild im Archief Hochlädst.


Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()


Bild = LoadAnimImage("bild.bmp", 69, 181,0, 2)
Repeat
Cls
 
DrawImage Bild, 100,100, frame
Frame=Frame+1:if Frame>1 then Frame=0

Flip
delay 100
Until KeyHit(1)


Gruß Matthias
 

joni8a

BeitragMi, Sep 27, 2006 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
WOW vielen dank es hat funktioniert nun habe ich noch ein paar fragen:
1. kann mann es noch langsamer machen oder muss ich da mehr bilder malen
2. was passiert wenn ich die x,y werte veränder
3. wie bekomme ich das bild in die mitte des blidschierms

nochmals danke

joni8a
 

Matthias

BeitragMi, Sep 27, 2006 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Klar BlitBasic kann alles.

Habe mal im Archiv eine WasserAnimation Hochgeladen Lade die runter
und speicher sie anstelle deines Bildes

Code: [AUSKLAPPEN]

FensX=800:FensY=600
Graphics FensX,FensY,32,2
Pause=40
WasAni=LoadAnimImage("WasAni.jpg",64,64,0,23)
MidHandle WasAni
setbuffert backbuffer()

Repeat




;----------------Mitte vom Fenster-----------------------"
DrawImage WasAni,FensX*.5,FensY*.5,Frame

;---------------AllesVolll---------------------------------"

;TileImage WasAni,0,0,Frame



if Millisecs()>Takt+Pause then
Frame=Frame+1:Frame=Frame Mod 23

Takt=Millisecs()
end if
flip
until keydown(1)=1
end
 

joni8a

BeitragMi, Sep 27, 2006 17:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Echt gut könntest du mir uahc eine beschreibung zum code geben

vielen dank
joni8a

PowerProgrammer

BeitragMi, Sep 27, 2006 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
mal durchkommentiert:
BlitzBasic: [AUSKLAPPEN]
; Grafikmodus setzten
FensX=800:FensY=600
Graphics FensX,FensY,32,2

;Variable für Zeit, in der Hauptschleife benötigt
Pause = 40

;Ani laden
WasAni=LoadAnimImage("WasAni.jpg",64,64,0,23)
MidHandle WasAni

;Backbuffer-Einsatz einstellen.
SetBuffer BackBuffer()

; Hier beginnt die Hauptschleife
Repeat

;----------------Mitte vom Fenster-----------------------"
DrawImage WasAni,FensX*.5,FensY*.5,Frame

;---------------AllesVolll---------------------------------"

;TileImage WasAni,0,0,Frame


; Millisecs() ist ein "timer-baustein", es liefert die einschaltzeit des computers in millisekunden zurück
;Wenn nun die aktuelle Zeit größer ist als die alte Zeit + 40 millisekunden, dann mache dies
If MilliSecs()>Takt+Pause Then
; um eins erhöhen, wenn frame = 23, dann wieder 0
Frame=(Frame+1) Mod 23

Takt=MilliSecs()
End If

; der backbuffer wird in den frontbuffer gepackt -> anzeige der daten
Flip

Until KeyDown(1)=1
;ende der hauptschleife, wenn escape gedrückt

End


Fehler ausgemerzt, unklare Befehle einfach anklicken
 

Matthias

BeitragMi, Sep 27, 2006 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke mal das dir das mit dem Takt und die Pause etwas verwirren
wird

Bei Delay wird das ganze Prg. Angehalten und bei dieser version
nicht das das heist du kannst in der zwichenzeit Berechnungen
oder andere Befehle Ausführen.



Code: [AUSKLAPPEN]

;-------------------------Fenster Machen-------------------------
FensX=800:FensY=600:Graphics FensX,FensY,32,2

;----------------------------Animation Laden-------------------
WasAni=LoadAnimImage("WasAni.jpg",64,64,0,23)

Pause=40
MidHandle WasAni ;"-------------------Bild ist immer Mittig-----------



SetBuffer BackBuffer()
;------------------Die Hälfte Vom Fenster--------------------------
;----Mann könnte auch Screiben AniPosX=FensX/2---------------


AniPosX=FensX*.5:AniPosY=FensY*.5


Repeat




 




;-----------Erst Ausführen wenn Aktuelle Zeit größer ist als die
;-----------Stopzeit plus der Pause-----------------------"


If MilliSecs()>Takt+Pause Then
Cls
DrawImage WasAni,AniPosX,AniPosY,Frame
Frame=(Frame+1) Mod 23

AniPosX=AniPosX+(MouseX()-AniPosX)*.1
AniPosY=AniPosY+(MouseY()-AniPosY)*.1
Takt=MilliSecs() ;------------Momentane Zeit wird Gestopt------"

End If


Flip
Until KeyDown(1)=1
End

 

joni8a

BeitragMi, Sep 27, 2006 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe da noch ein paar andere fragen beim tutorial von rob thema kollision. Da hat er beim programm seine bilder mit blauem hintergund gemacht, wenn ich die lade sieht alles ok aus wie aber kann ich das auch mit anderen hintergrund farben machen?

joni8a
 

Matthias

BeitragMi, Sep 27, 2006 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit MaskImage

Wenn du ein Bild mit DrawImage setzen tust dann ist Die Farbmaske= 0,0,0
wenn du jetzt zum Bsp. Wilst das Rot nicht gezeichnet werden so dann
kanst du schreiben vor DrawImage MaskImage Bild,255,0,0
 

joni8a

BeitragMi, Sep 27, 2006 19:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Das heisst ich muss immer die frabe angeben die ich nicht haben will?
 

Matthias

BeitragMi, Sep 27, 2006 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja genau

Gehe zu Seite 1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group