LoadAnimImage
Übersicht

bunniBetreff: LoadAnimImage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann mir jemand helfen,wie LoadAnimImage funksuniert.
Mein Tutorial kommt von Robsite,habs da net geschnallt,und auch die Beschreiben von blitzbase.de schnalle ich net. B.s.:Ein Animation und Einer der in Bett schläft. Code: [AUSKLAPPEN] Laminat = LoadImage("Kapi1\Laminat.bmp") Sleep1 = LoadImage("Kapi1\Bett1mT.bmp") Sleep2 = LoadImage("Kapi\Bett2mT.bmp") Wand = LoadImage("Kapi1\Wand.bmp") SleepiB = LoadAnimImage("Kapi\BettmT.bmp",81, 112, 1, 2) MaskImage Sleep1, 255, 0, 255 DrawImage Sleep1, 888, 888, a MaskImage Sleep2, 255, 0, 255 DrawImage Sleep2, 999, 999, b MaskImage SleepmB, 255, 0, 255 DrawImage SleepmB, 0, 399 |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst bei Drawimage schon den Frame mit angeben, den er zeichnen soll. Und gewöhn dir bitte einen angemessenen Schreibstil an! | ||
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
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohne den ganzen Code und die Gfx kann man sowieso nichts festes sagen, aber:
- die koordinaten die du zum Zeichnen verwenedest sind nur bei sehr grossen Auflösungen zu sehen - bei loadanimimage beginnt die framenummer bei 0, nicht bei 1 - das maskieren sollte nur einmal nach dem laden erfolgen -wenn du nirgends ein waitkey oder so hast ist das programm zu ende bevor du was siehst. - Stichwort: doublebuffering. Benutz mal die Forensuche dazu. - was sollen a und b für parameter sein (Frames können es ja nicht sein, da die Bilder ja ohne animation geladen wurden)? |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vergessen wir den Code.Ich weis überhaupt nicht,
wie LoadAnimImage funktioniert.Mit den Code will ich zeigen, wie ich es kapiert habe, was wohl mehr schlecht als recht gelungen ist. Ausserdem weiß ich wie Dobbble Buffering funktioniert, Waitkey habe ich eingebaut. |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nunja....du hast eine Bitmap mit mehreren gleichgroßen, aneinandergereiten Bildern. Diese lädst du mit LoadAnimImage und gibst dabei an:
- Den Pfad/Dateinamen - Die Breite (in Pixeln) jedes Einzelbildes (alle gleichgroß, ne?) - Die Höhe (in Pixeln) jedes Einzelbildes - Das Startframe (Standartmäßig 0) - Und die Anzahl der Frames (Einzelbilder) Edit: Gezeichnet wird so: DrawImage Bild,x,y, FRAME-NUMMER Für eine Dauerhafte Animation wirst du dir wohl oder übel einen Timer basteln müssen. z.B. so: Code: [AUSKLAPPEN] Timer_start=Millisecs()
Repeat Cls Timer=Millisecs()-Timer_start If Timer>200 Then frame=1 If Timer>400 Then frame=2 If Timer>600 Then frame=0:Timer_start=Millisecs() DrawImage Bild,100,100,frame Flip Until Keyhit(1) |
||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Und wie trenne ich die Dateinamen der einzelnen Bilder | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
nicht bös gemeint, aber du hast echt keine Ahnung von Animierten Bildern, wie?
Die Einzelbider sind in EINER Bitmap gespeichert. Welche Dateinamen willst du da trennen? |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.robsite.de/bbkurs2/08bilderanzeigen.htm
Gut durchlesen. |
||
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
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zumindest hat sich eine Frage geklärt.
Das Tutorial von Robsite erwähnt, das man die Einzelbilder in einer beliebigen Reihenfolge ordnen kann.Wie mache ich es das. Was ist eine Frame,und wie sage ich den Programm,welches Bild beginnt. |
||
Rubber |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
einzell bilder in einer datei nebeneinander speichern.
AnimImage loaden. (Breite,Höhe der einzelnen angeben,Frames gesamm.) Frame = Einzelbild also wenn du die bilder A B C hast, dann sind die zb 1x1 pixel dann erstellst du graphic D und in D speicherst du neben einander ABC -- die datei ist dann 1 pixel hoch und 3 breit frames gesammt: 3 dasnn ist A = frame 1 und B = 2 und C = 3 |
||
Wenn Gott mich schon liebt, dann dich erstrecht... |
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok, das Thema währe zumindest beendet.
Danke für die Bereitschaft auf eine langwierige Art zuerklären. Arbeit gerade an ein Spiel. Es sieht s*h*i*e aus. |
||
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So ich hab es kapiert,
bloß der Editor zeigt an,dass das Bild nicht exierstiert. (Image does not exist) Hier der Code.Code: [AUSKLAPPEN] Laminat = LoadImage("Kapi1\Laminat.bmp")
Sleep = LoadAnimImage("Kapi\BettAnimsT", 112, 81, 0, 1) Aufwachen = LoadAnimImage("Kapi1\BettAnimaT", 112, 81, 0, 1) Wand = LoadImage("Kapi1\Wand.bmp") Repeat Cls SetBuffer BackBuffer() TileBlock Laminat Timer_a = MilliSecs() Timer = MilliSecs() - Timer_a If Timer < 500 Then DrawImage Sleep, 0, 399, 0 ElseIf Timer > 500 Then DrawImage Sleep, 0, 399, 1 EndIf Ahja,das ist ein Codeschnipsel,der Rest funktioniert!!!! Es fehlen auch Befehle wie Flip in diesem Codeschnipsel, weil man meine Techniken kopieren kann. Und das verdirbt bestimmtdie Spannung,ein Objeckt mehrfach anzuzeigen,selbst zu lösen(-; |
||
D²O |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achtung falle ![]() bei loadani.... gibst die direkte anzahl der Frame an die du ladest. bei 1 ist das auch nur ein frame, bei 2 ......usw. Jetzt kommts ![]() beim zeichnen, also der Draw befehl, wird nicht von 1 an gezählt sondern computertypisch von 0 Lädst du nur 1 frame kannst du auch nur "frame 0" zeichnen. Bei zwei gehts von 0-1 , bei drei 0-2...... usw. Kapiert ![]() |
||
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK; |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Ahja,das ist ein Codeschnipsel,der Rest funktioniert!!!!
Es fehlen auch Befehle wie Flip in diesem Codeschnipsel, weil man meine Techniken kopieren kann. Wir sind hier um unser Wissen zu teilen, nicht es mit blutger Kralle zu verteidigen. Wenn alle so dächten wäre dieses Forum tot. Also zeig uns nur deinen ganzen code, wir werden dir sicher nichts klauen (Sei dir sicher dass Du nichts weltbewegend neues gemacht haben wirst). Btw. hast Du bei sleep und aufwachen keinen Dateityp im Dateinamen angegeben. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
snörkl |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah ja, ich würd übrigens das mit dem timer nicht so machen :
Code: [AUSKLAPPEN] If timer > 500
If timer > 1000 then timer = 0 sondern so, erspart zeit. Wenn du verschiedene längen brauchst ist das oben besser, aber sonst ziehe ich das hier vor Code: [AUSKLAPPEN] GRAPHICS 640,480,16
SETBUFFER BACKBUFFER() gfxSparks=LOADANIMIMAGE("Help\Samples\Graphics\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 Quelle: blitzbase So erspart man sich bei vielen animierten images zeit. Falls das falsch ist ruhig sagen, ich bin immer für kritik offen ![]() mfg Snörkl |
||
![]() |
Axe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das er ein Bild nicht findet könnte an dieser Zeile liegen:
bunni hat Folgendes geschrieben: Sleep = LoadAnimImage("Kapi\BettAnimsT", 112, 81, 0, 1)
Alle anderen Dateien leigen im Unterordner Kapi1. Ist natürlich nur eine Vermutung da wir den ganzen Code/Dateien ja nicht kennen. Gruß Axe |
||
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Sleep = LoadAnimImage("Kapi\BettAnimsT", 112, 81, 0, 1) Aufwachen = LoadAnimImage("Kapi1\BettAnimaT", 112, 81, 0, 1) Die Dateierweiterung fehlt. |
||
bunni |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Thanks, hab sofort eingebaut und es funktioniert.
Bereit zum Schliesen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group