Problem mit flip
Übersicht

BlackErrorBetreff: Problem mit flip |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi erstmal. Ich bin neu hier und relativ unerfahren in sachen BlitzBasic
Also. Mein Problem ist wie folgt: ich habe eine Animation erstellt. Allerdings kann ich nun kein print bzw. text benützen. Irgendwie bekomme ich es nicht hin, das flip an die Richtige Stelle zu setzten, sodass es mir die Animation darstellt, alsauch Text ausgeben kann. Ich Danke im voraus. Code: [AUSKLAPPEN] Graphics 640,480,32,2 SetBuffer BackBuffer() Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) ;Annimation Atom For I = 0 To 16 Cls If I = 16 Then I = 0 DrawImage Atom, 550,10,I Delay 100 Flip Next Ps. Ich benützte B3D |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, erstmal hast du 16 Animationsbilder. Somit sollte die Schleife von 0 bis 15 gehen... Desweiteren würde die Animation nur einmal durchlaufen, und das Programm sich beenden! Soll das so sein? Wenn es so sein soll, dann setze -Text- direkt nach -DrawImage- und vor dem -Flip-. Das sollte es gewesen sein... | ||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du wirklich ein Spiel Programmieren willst, solltest du dir a) Robs Tutorial von www.robsite.de angucken und dein Spiel in etwa so aufbauen:
Code: [AUSKLAPPEN] Graphics X,Y, 32, 2 ;Bilder laden ;Sounds laden ;Globale Variablen deklarieren ;Types deklarieren Repeat ;Hauptschleife Until Keydown (1) ;------------------------------------------------------------------------------------ ;Funktionen Vorallem die Hauptschleife und das unterteilen in ql:Function s ist wichtig. Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
BlackError |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erstmal danke für eure Antworten.
Meine Animation besteht aus 17 sprites (Ich hoffe, das heißt so). Daher muss ich doch von 0 bis 16 machen oder? somit ist das erste bild 0 und das letzte 16. oder? Müsste so doch dann stimmen? zu Jiriki: Ich lese zur Zeit das Buch: Spiele Programmieren mit Blitz Basic von Rene Meyer. Allerdings ist mein Vorhaben kein Spiel, sondern nur ein prog mit ner animation zur verschönerung. Braucht man bei Programmen auch Types? In dem Buch wird jedenfalls nicht viel damit gearbeitet. Jetzt gehts, wenn ichs direkt nach drawimage schreibe. Allerdings Muss da noch viel Text hin. Muss ich jetzt den ganzen text und casesachen in die for schleife schreiben, dass es geht? |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei jedem Programm, dass nicht nur irgendeinen Wert einmal ausgiebt, brauchst du eine Hauptschleife (jedenfalls bei prozeduraler Programmierung). Das mit dem Text ist halt so, dass du gucken musst, dass du ihn nicht mit dem Bild übermalst. Dann geht es sicher.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
gutters |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eine bemerkung: Delay stopt dem spiel für einige secunden.
ich würde so machen: Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) ;Annimation Atom For I = 0 To 16 Cls If I = 16 Then I = 0 DrawImage Atom, 550,10,I next while not keyhit(1) Flip wend vielleicht funzt es nicht.. hab nicht probiert. wenn es nicht funzt dann probiere mal so: Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) ;Annimation Atom while not keyhit(1) For I = 0 To 16 Cls If I = 16 Then I = 0 DrawImage Atom, 550,10,I next Flip wend |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Deine beiden Codes können garnicht gehen, weil das Flip außerhalb der "Hauptschleife" ist, die mit dem "if bla = 16 then bla = 0" ja immer wieder wiederholt wird...
@BlackError: So sollte es gehen: Code: [AUSKLAPPEN] Graphics 640,480,32,2 SetBuffer BackBuffer() Global Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) Global Timer = Millisecs () Global animation ; Hauptschleife Repeat Cls If Millisecs () - timer > 200 then ;alle 200 Millisekunden soll die animation gewechselt werden If animation = 16 Then animation = 0 animation =animation + 1 End If DrawImage Atom, 550,10,I Text 100, 100, "Animation!" Flip Until Ansonsten müsstest du villeicht nochmal genauer dein Problem schildern... Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Castrapolis |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
@ Jiriki Du hast hier: Zitat: If Millisecs () - timer > 200 then ;alle 200 Millisekunden soll die animation gewechselt werden
aber vergessen timer wieder zu aktualisieren! So passt es: ![]() Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() Global Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) Global Timer = Millisecs () Global animation ; Hauptschleife Repeat Cls If Millisecs () - timer > 200 then ;alle 200 Millisekunden soll die animation gewechselt werden Timer = Millisecs () If animation = 16 Then animation = 0 animation =animation + 1 End If ;DrawImage Atom, 550,10,I Text 100, 100, animation Flip Until KeyHit(1) Gruß Castrapolis |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, danke... Mir sind auch noch ein paar andere Fehler aufgefallen:
Code: [AUSKLAPPEN] Graphics 640,480,32,2 SetBuffer BackBuffer() Global Atom = LoadAnimImage ("Atom.bmp", 80,80,0,16) Global Timer = Millisecs () Global animation ; Hauptschleife Repeat Cls If Millisecs () - timer > 200 then ;alle 200 Millisekunden soll die animation gewechselt werden Timer = Millisecs () If animation = 16 Then animation = 0 animation =animation + 1 End If DrawImage Atom, 550,10,animation Text 100, 100, animation Flip Until KeyHit(1) Jiriki ![]() |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group