animiertes 2d bild

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

*GHOST*

Betreff: animiertes 2d bild

BeitragSo, März 13, 2005 11:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich bin grade dabei, ein bild mit 70 frames zu animieren:

Code: [AUSKLAPPEN]
Graphics 800,600,32,1
template=LoadAnimImage("sprite/temp_1.bmp",80.5,80.5,0,70)

x=0
For a=1 To 10
x=x+1
DrawImage template,100,100,x
Delay 0.5
Next


soll heissen, dass sich die figur im abstand von 0.5 sekunden bewegen soll. leider tut es das nicht und ich habe schon beim start ein bildwirrwarr.
bitte helft mir...

Hubsi

BeitragSo, März 13, 2005 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast mehrere Fehler drin:BlitzBasic: [AUSKLAPPEN]
80.5,80.5
Hier gibt man die Framegröße in Pixel an, ein halbes Pixel gibt es nicht

BlitzBasic: [AUSKLAPPEN]
Delay 0.5
Delay übergibst du Millisekunden, ich denke mal das sollte 500 heissen.

Mit Deiner Schleife zeichnest du die 10 Bilder übereinander. Das wird wohl ein ziemlich schräges Geschmiere Very Happy Für das was Du wohl erreichen willst schau Dir MilliSecs() an, beschäftige Dich mit Doublebuffering und such mal hier im Forum nach "Grundgerüst". Viel Spaß noch Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

*GHOST*

BeitragSo, März 13, 2005 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, aber jetzt hab ich:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,32
template=LoadAnimImage(\"sprite/temp_1.bmp\",80,80,0,70)
MaskImage template,1,255,1
x=0
For a=1 To 10
x=x+1
DrawBlock template,100,100,x
Delay 500
FreeImage template
Next


jetzt sagt er, image does not exist.

aber das 1. frame zeichnet er noch, dann kommt die meldung
 

*GHOST*

BeitragSo, März 13, 2005 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mir bitte mal einer konkret helfen, und bitte nicht nur so "verweise".
danke Smile
 

Doni

BeitragSo, März 13, 2005 12:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin mir jetzt nicht sicher,aber lass mal das Freeimage weg.
Verzeit mir meine Rechtschreibfehler!
 

*GHOST*

BeitragSo, März 13, 2005 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hey danke, dass klappt ohne freeimage, hier:

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,32
template=LoadAnimImage(\"sprite/temp_1.bmp\",80,80,0,70)
MaskImage template,1,255,1
x=0
For a=1 To 10
x=x+1
DrawImage template,100,100,x
Delay 500
Next


jetzt läufts wie ichs mir vorgestellt hatte, dankeschön! Very Happy
 

phiker

BeitragSo, März 13, 2005 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Der erste Frame wird noch gezeichnet, weil du da das Bild mit FreeImage noch nicht gelöscht hast! Im nächsten Durchlauf gibt es das Bild dann nicht mehr und daher die Fehlermeldung, FreeImage löscht immer das ganze Bild und nicht nur einen Frame

matte

BeitragSo, März 13, 2005 12:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Hy,

das mit Delay ist zwar schön und gut. Damit legst du aber im Ernstfall das ganze Programm lahm. Also für Spiele absolut nicht geeignet...

besser ist


BlitzBasic: [AUSKLAPPEN]

AnimStart=MilliSecs()
ATime=500
x=0

Repeat
Cls
If AnimStart+ATime<MilliSecs() Then
If x<10 Then x=x+1
AnimStart=MilliSecs()
EndIf
DrawImage template 100,100,x
Flip
Until KeyHit(1)

So kannst du sogar mehrere Animationen mit unterschiedlicher Geschwindigkeit parallel laufen lassen.


Grüße
matte
 

*GHOST*

BeitragSo, März 13, 2005 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe jetzt einen typen mit 4 bildern, die das "gehen" sein sollen.
das heisst, ich habe 4 frames, die so abgespielt werden sollen:

4 > 5 > 6 > 7 > 6 > 5 > 4 > 5 > 6 > ... usw.

halt von 4 bis 7, dann wieder zurück bis 4 und dann wieder bis 7 usw.

wie sieht der code denn dann aus?

(PS: danke für die antworten)

simi

BeitragSo, März 13, 2005 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

richtung = 1
frame = 3

repeat
  frame = frame + richtung
  if frame < 4 then richtung = 1
  if frame > 7 then richtung = -1

  DrawImage blubb,10,10,frame
forever
 

*GHOST*

BeitragSo, März 13, 2005 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
sry, aber dann fluppen die frames so komisch rum, soll ja nicht so sein.

aber wie lässt man die figur mit <- und -> gehen, (pfeiltasten) , so das sich das bild bewegt?

bei mir geht das bild nur , wenn ich die taste drücke, wenn ich aber dann loslasse, fluppt sie wieder zum ausgangspunkt...

Alfadur

BeitragSo, März 13, 2005 23:58
Antworten mit Zitat
Benutzer-Profile anzeigen
keyhit, keydown. schau mal in der onlinehilfe nach...solltest du sowieso immer als erstes tun.
A Cray is the only computer that runs an endless loop in less than four hours.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group