Animationen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

KaDuZa

Betreff: Animationen

BeitragMi, Jun 27, 2007 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also^^
ich habe nun mehrer bilder halt als ein "Filmstreifen"
abgespeichert
so nun will ich das als animation haben
Code: [AUSKLAPPEN]
Graphics 640, 480

ich = LoadAnimImage("ich.bmp",32,32,0,5)
DrawImage ich, 300, 240, 0
DrawImage ich, 300, 240, 1
DrawImage ich, 300, 240, 2
DrawImage ich, 300, 240, 3
DrawImage ich, 300, 240, 4



Repeat

Until KeyHit(1) 


Aber i-wie funtzt das nich bitte helft mir (bin Anfänger und dies hier is mein erster beitrag in diesen Forum^^)[/code]

mas93

BeitragMi, Jun 27, 2007 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
müsste in etwa so gehen.

Code: [AUSKLAPPEN]

graphics 640,480,16,2
setbuffer backbuffer()

repeat
cls

for i= 1 to 5
drawimage ich,300,240,i
next
flip
until keyhit(1)
end


habs jetzt nich getestet müsste aber gehen.

...und Herzlich wilkommen im Forum!!!
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

KaDuZa

BeitragMi, Jun 27, 2007 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke^^
nun kommt immer ein fehler image out of range oder so
hab jetz diesen code verwendet

Code: [AUSKLAPPEN]
Graphics 640,480,16,2
 SetBuffer BackBuffer()
ich = LoadAnimImage("ich.bmp",32,32,0,5)



 For i= 1 To 5
 DrawImage ich,300,240,i
 Next
 Flip
Repeat
Until KeyHit(1) 
 End
[/code]

skey-z

BeitragMi, Jun 27, 2007 22:18
Antworten mit Zitat
Benutzer-Profile anzeigen
das liegt daran, dass der Bildindex bei 0 anfängt, also musst du als Schleifenkopf "for i = 0 to 4" schreiben.

Schau dir mal die Befelsreferenz auf www.blitzbase.de an, dort wird "fast" jeder Befehl genau beschrieben.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

KaDuZa

BeitragMi, Jun 27, 2007 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
der fehler kommt trotzdem Confused
 

KaDuZa

BeitragMi, Jun 27, 2007 22:26
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt es ein freeware prog womit man animationen erstellen kann?
ich progge mit der demo von blitzbasic nebenbei gesagt^^
  • Zuletzt bearbeitet von KaDuZa am Do, Jun 28, 2007 12:21, insgesamt einmal bearbeitet

D2006

Administrator

BeitragMi, Jun 27, 2007 23:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte vermeide in Zukunft Doppelposts.

Mit der Editierfunktion rechts oberhalb deiner Beiträge kannst du nachträglich noch Informationen hinzufügen.

Danke.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
 

KaDuZa

BeitragDo, Jun 28, 2007 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
ok wird sich in zukunft ändern danke für den hinweis
 

Lador

BeitragDo, Jun 28, 2007 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, mas93's Code ist zwar sehr gut, wird dir aber nicht weiterhelfen, da du fast nichts von deiner Animation bzw. deiner Spielfigur sehen wirst. Du brauchst also eine Art Pause, verwende aber kein Delay! Delay hält nämlich das ganze Programm an, und wenn du z.B. eine Maus mit einbauen willst, dann wird der Spieler große Schwierigkeiten haben, die Maus zu bewegen, während er gleichzeitig seine Spielfigur bewegt...

Bladerunner hat mal etwas darüber geschrieben, dort erklärt er, wie man mit Millisecs() eine schöne animation hinbekommt:

https://www.blitzforum.de/foru...=millisecs

MFG Lador
 

KaDuZa

BeitragDo, Jun 28, 2007 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
unterstützt die demo eigentlich auch gif datein?

edit: Okay ich hab einfach mal aus nen tut nen tileset genommen und möchte das diese datei dannimiert wird doch es wird immer nur ein bid angezeigt

Code: [AUSKLAPPEN]
 Graphics 640,480,16,2
Global Tileset = LoadAnimImage("tileset.bmp",32,32,0,6)
For i= 0 To 5
DrawImage Tileset,400,200,i
Next
Repeat
Until KeyHit(1)
End


bin ich zu dumm dafür? Sad [/code]

Xeres

Moderator

BeitragDo, Jun 28, 2007 23:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Mach dir doch klar, was dein Programm in jedem Arbeitsschritt eigentlich tut, das hilft meistens:

Du zeichnest 5 Bilder auf jeweils die selben Koordinaten übereinander.
Dann tut das Programm eigentlich nichts bis Esc gedrückt wird.

Ich empfehle dir, dich mit den Befehlen
setbuffer
backbuffer()
Cls
Flip

auseinander zu setzten. Dagegen würde ich keine FOR...Next Schleife verwenden.
Hoffe das hilft dir.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

KaDuZa

BeitragFr, Jun 29, 2007 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weis schon was ´die befehle bedeuten....

The_Nici

BeitragFr, Jun 29, 2007 8:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Downloade dir mal das RPG-Tutorial von www.robsite.de
Dort wird alles erklährt, mit ausführbarem Code.

Was du machst: Du zeichnest einfach die Tiles an die gleiche Position, schon klar das nur ein zu sehen ist.
Schau dir mal den Data-Befehl an, mit ihm kann man Mapeigenschaften super speichern, wie es auch im RPG-Tutorial gemacht wird.
 

KaDuZa

BeitragFr, Jun 29, 2007 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab díe tuts alle durch......(schon vorher gantz dumm bin ich auch ned)
da is nichts zum thema annimieren

Jolinah

BeitragFr, Jun 29, 2007 10:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wurde eigentlich schon alles gesagt...

Du brauchst eine Hauptschleife mit Flip (Backbuffer). Dann hast du eine Frame-Variable, die festhält welches Bild gezeichnet werden soll. Mit millisecs() berechnest du wieviel Zeit verstrichen ist. Wenn z.B. mehr als 50ms verstrichen ist, erhöhst du die Frame-Variable um 1. Dann brauchst du nur noch das Bild ein einziges mal zu zeichnen, als Frame einfach die Variable angeben. So wird automatisch alle 50ms das Frame um 1 erhöht und damit alle 50ms ein anderes Bild gezeichnet.
 

KaDuZa

BeitragFr, Jun 29, 2007 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mir jemand nich einfach nen beispielcode geben? Sad

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Jun 29, 2007 10:44
Antworten mit Zitat
Benutzer-Profile anzeigen
BeispielCode: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer()

ich=LoadAnimImage("ich.bmp",32,32,0,5)


While Not KeyHit(1)
 If MilliSecs()>ms+500
  ms=MilliSecs()
  i=(i+1) Mod 5
 End If

 DrawImage ich,300,240,i

 Flip
 Cls
Wend
End

edit1: Hab natürlich auch klein wenig Misst gebaut. Code wurde korrigiert.
  • Zuletzt bearbeitet von hectic am Fr, Jun 29, 2007 18:19, insgesamt einmal bearbeitet
 

KaDuZa

BeitragFr, Jun 29, 2007 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
danke^^
 

KaDuZa

BeitragFr, Jun 29, 2007 11:57
Antworten mit Zitat
Benutzer-Profile anzeigen
danke^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group