[gelöst] Bilder animieren in BM
Übersicht

![]() |
SonGokuBetreff: [gelöst] Bilder animieren in BM |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Erstmal will ich euch sagen, dass dieses Thread eine fortsetzung von "Hintergrund animieren" -> https://www.blitzforum.de/viewtopic.php?t=16578 ist. Also, ich hab das Bild nun erstellt, aber wie kann ich es nun animieren ? DivineDominion sagte mir, dass ich es mit "DrawTileImage" versuchen sollte, aber es klappt nicht. Und bisher hab ich noch nie ein frame erstellt, deswegen kann ich nicht wissen, wie man so ein timer bauen kann ![]() Deswegen wär ich euch sehr dankbar, wenn ihr mir mal ein kleines Beispielcode schreiben würdet, wie ein timer programmiert wird, damit ich es endlich lernen kann. Und könntet ihr mir noch ein befehl nennen, womit ich meine Bilder animieren kann (-> TileImage ?, DrawImage ?). MfG Goku |
||
Projekt "BlitzPong" --> 100%
BRL Account mit Blitz3D und BlitzMax für nur 67€!!! Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!! |
- Zuletzt bearbeitet von SonGoku am Di, Feb 21, 2006 0:25, insgesamt einmal bearbeitet
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Strict Local Test:TImage = LoadAnimImage("meinanimiertesbild.png",32,32,0,15)' lädt ein Bild als animiertes Bild, wobei ein Frame die Größe von 32*32 Pixeln hat und das bild aus 16 Frames (0-15) besteht. Local Timer:TTimer = CreateTimer(30) 'Timer erstellt und auf 30 ticks pro Sekunde eingestellt. Local frame:Int = 0 Graphics 100,100,0,-1 While Not KeyHit(Key_Escape) DrawImage Test,10,10,frame Flip Cls WaitTimer(Timer) frame:+1 If frame > 15 Then frame = 0 Wend Ich hoffe das hilft dir. Und noch ein kleiner Tip, es gibt eine Hilfe in Bmax, wo diese Befehle alle drinstehen. Auch wenn viele über die Hilfe meckern, kann man solche Dinge ganz einfach finden und lernen indem man sie liest. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
suberror |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gelöscht | ||
- Zuletzt bearbeitet von suberror am Sa, Mai 06, 2017 16:15, insgesamt einmal bearbeitet
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem an der Sache ist nur, das dieses WaitTimer das Programm anhält, was zwar für den Moment den gewünschten Effekt erzielt, aber wenn man ein Flüssiges Spiel machen möchte, ist das so nicht zu gebrauchen. | ||
![]() |
SonGoku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank, klepto2 ![]() WaitTimer() lass ich am besten weg, weil ich es als Hintergrund benutzen möchte. Zitat: Und noch ein kleiner Tip, es gibt eine Hilfe in Bmax, wo diese Befehle alle drinstehen. Auch wenn viele über die Hilfe meckern, kann man solche Dinge ganz einfach finden und lernen indem man sie liest. Ja, das stimmt, aber unter Linux ist die Doku noch nicht vollständig. Wenn ich also bei "LoadAnimImage()" zwei mal auf F1 drücke, um eine ausführliche erklärung zu lesen, kommt die Max2D Befehlsliste und danach reagiert mein MaxIDE nicht mehr... Aber es gibt noch ein Problem... Wenn ich es jetzt kompiliere, kommt bei mir eine Fehlermeldung: Zitat: Unhandled Exception:Attempt to index array element beyond array length Hat das vielleicht irgendwas mit dem Grafik zu tun ? (vielleicht ist es zu groß, um es als Hintergrund zu animieren ?) Hier nochmal das Bild als Frame (sieht momentan sehr schlecht aus, wird aber noch verbessert) : http://www.eastwestgames.de/file.php?id=154 Vielleicht hab ich es falsch erstellt und BlitzMax sieht das ganze deswegen nur als ein ganzes Bild... MfG Goku |
||
Projekt "BlitzPong" --> 100%
BRL Account mit Blitz3D und BlitzMax für nur 67€!!! Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nö das problem ist, dass du versuchst ein Frame zu zeichnen das nicht existiert.
Wenn du zb 8 Bilder hast in deinem AnimImage (und die auch so angibst beim laden mit den entsprechenden Parametern), dann gehen die Indizes von 0 bis 7 |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klepto2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, dein Image ist schon richtig, ich hab nur ausversehen vergessen, das der Frame ja bei 0 anfängt.
Code: [AUSKLAPPEN] Strict Graphics 800,600,0,-1 Local Test:TImage = LoadAnimImage("test.png",800,600,0,2)' lädt ein Bild als animiertes Bild, wobei ein Frame die Größe von 32*32 Pixeln hat und das bild aus 16 Frames (0-15) besteht. Local Timer:TTimer = CreateTimer(30) 'Timer erstellt und auf 30 ticks pro Sekunde eingestellt. Local frame:Int = 1 While Not KeyHit(Key_Escape) DrawImage Test,0,0,frame Flip Cls WaitTimer(Timer) frame:+1 If frame > 1 Then frame = 0 Wend Ich weiß, ist noch Timer drin, aber soll ja schnell gehen ![]() Also wir haben dein Bild mit den Maßen 800*600 pro Frame geladen, das bedeutet. Wir haben insgesamt 2 Frames. Der erste ist 0. Das heist bei 2 Frames muss die Frame variable bei DrawImage immer 1 kleiner sein als die anzahl an Frames, den Frame 0 + Frame 1 = 2 Frames. Wenn du jetzt erst bei 2 auf 0 zurückstellen würdest, dann wären das Frame 0 + Frame 1 + Frame 2 = 3 Frames. |
||
Matrix Screensaver
Console Modul für BlitzMax KLPacker Modul für BlitzMax HomePage : http://www.brsoftware.de.vu |
![]() |
SonGoku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jetzt klappt's ![]() Das Problem war: Code: [AUSKLAPPEN] Global Hintergrund:TImage = LoadAnimImage("media/HG_Frame.png",800,600,0,2) Da hatt ich am Ende eine "1" stehen, weil ich dachte, dass man hier auch von 0 anfangen muss.. Alles andere hatt ich schon, als ich die Fehlermeldung kam (If frame > 1 Then frame = 0,..etc)^^ Vielen Dank für deine Hilfe, klepto2 ![]() MfG Goku |
||
Projekt "BlitzPong" --> 100%
BRL Account mit Blitz3D und BlitzMax für nur 67€!!! Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!! |
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
SonGoku hat Folgendes geschrieben: Vielen Dank, klepto2
![]() Ja, das stimmt, aber unter Linux ist die Doku noch nicht vollständig. Wenn ich also bei "LoadAnimImage()" zwei mal auf F1 drücke, um eine ausführliche erklärung zu lesen, kommt die Max2D Befehlsliste und danach reagiert mein MaxIDE nicht mehr... Die ist genau so vollständig wie die Windows-Hilfe. Die Hilfen werden vom docmods-Util generiert, was überall gleich funktioniert. Das Problem ist das FLTK-HtmlView, welches keine Anker unterstützt und im Allgemeinen total kacke ist. Schau dir die Hilfe in einem WebBrowser deiner wahl an, und gut ist. |
||
![]() |
SonGoku |
![]() Antworten mit Zitat ![]() |
---|---|---|
O_o stimmt, so klappt's... danke für die Info ![]() MfG Goku |
||
Projekt "BlitzPong" --> 100%
BRL Account mit Blitz3D und BlitzMax für nur 67€!!! Das Buch "Spiele programmieren mit Blitz Basic" für nur 15€!!! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group