Chars Errors

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

NtotheS

Betreff: Chars Errors

BeitragSa, Apr 17, 2010 10:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

also irgendwie ist es überhaupt nicht möglich den char anzeigen zu lassen. Zuerst kommt die fehlermeldung "Image does not exist". Was schon mal nicht sein kann da ich das bild 100% in den gleichen ordner reingetan habe wo ich auch die Game.bb gespeichert habe.

Das ding ist das leider kein tutorial zeigt, wie man die figur den animieren lassen kann, wenn sie sich bewegt, weil alle davon ausgehen das jeder das kann. Diese "robanleitung" überspringt den Punkt schon fast ganz...


Code: [AUSKLAPPEN]
Graphics 500,400,32,2
char = LoadAnimImage("char.png", 30, 30, 0,6)
Repeat
SetBuffer BackBuffer()
For char = 0 To 6
DrawImage  char, 30, 30, 6
Next
Forever
WaitKey

Hubsi

BeitragSa, Apr 17, 2010 10:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht die Tutorials überspringen Punkte, eher Du gibst zuviel Gas Mr. Green

Wo soll ich anfangen... char beinhaltet das Handle der Grafik, wenn Du die Variable nochmal als Zählvariable der Schleife verwendest ist sie "kaputt". Von daher das Image does not exist. Den zu verwendenden Buffer ausserhalb von Schleifen setzen (SetBuffer BackBuffer). Wenn Du immer nur Frame 6 anzeigst (der im übrigen nicht existiert, eine Maschine zählt von 0 an) wird da nichts animiert. Die Buffer müssen getauscht werden werden damit Du was zu Gesicht bekommst (Flip). Ich bin nicht sicher ob die Demo png's laden kann. Sofern Du die Demo hast, das nur falls es nach den Fehlerbehebungen weiter nicht gehen sollte.

Viel Spaß Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Midimaster

BeitragSa, Apr 17, 2010 12:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Also...

Das Anzeigen mehrer verschiedener Zustände einer Spielfigur muss natürlich in so großen Anständen erfolgen, dass der Zuschauer auch was davon mitkriegt. In Deiner Variante werden alle Bilder im Bruchteil einer 1/100-sec durchgesteppt. Also muss zwischen die Bilder eine Art "Warten".

Am besten Du liest dir mal mein Timer-Tutorial durch. Für deine Zwecke dürfte genau Kapitel III reichen. Das ist sogar ziemlich genau, wonach du suchst! (Das Lesen von Kapitel I und II ist dafür nicht unbedingt nötig, aber Lesen schadet ja nie...)


Nur was Du mit einem FLIP nach vorne bringst wird auch beim Zuschauer ankommen. Also muss nach jedem Bild malen ein FLIP sein.

Wenn dein Image 6 Bilder hat sollte der Zähler nur von 0 bis 5 durchlaufen! Das sind schon 6 Stufen: 0,1,2,3,4,5
 

NtotheS

BeitragMo, Apr 19, 2010 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut jetzt sind 2 Tage vergangen wo ich es krankhaft versucht habe es hinzukriegen.

So ich als "Anfänger" kann dazu sagen das der Timer-Tutorial in meiner Lage mir 0 gebracht habe, da es von jemanden geschrieben wurde für den sowas schon eigentlich zu leicht ist. Würden da wenigestens ansatzweise beispiele geben die zu einer animation einer figur führen würden, wär ich jetzt weiter. Ich brauch aber weder ne Stoppuhr, noch spawnende gegener...da ich mich bei 0 befinde.

Das Problem mit dem "Image does not found" wurde von den 2 Poster glücklicherweise gelöst Very Happy Danke

Allerdings besteht immer noch keine animation noch eine AUSFÜHRLICHE erklärung zu Tilesets-Chars und dessen funktionsweise :C

Code: [AUSKLAPPEN]

Graphics 500,400,32,2
char = LoadAnimImage("chara.png", 30, 30, 0, 6)
Cls
SetBuffer BackBuffer()
Repeat
MyTimer=CreateTimer(60)
For chara = 0 To 6
DrawImage  char, 30, 30, 5
WaitTimer MyTimer
Next
Forever
Flip ()
WaitKey
 

Pousup

BeitragMo, Apr 19, 2010 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Timer sollte erstmal vor der Schleife definieren.

Das zweite was mir aufällt ist, dass garkeine Animation ablaufen kann:
Du verwendest zwar eine For-Schleife bringst die Zählvariable (chara) aber nirgends
in das DrawImage ein.

Code: [AUSKLAPPEN]

For chara = 0 To 5
DrawImage  char, 30, 30, chara
WaitTimer MyTimer
Next


So geht er schonmal alle Bilder durch. Ob ein WaitTimer da aber nützlich ist, ist natürlich auch
wieder so eine Sache. Schau dir mal den Befehl
BlitzBasic: [AUSKLAPPEN]
MilliSecs
an, damit
solltest du dein Problem lösen können. Du musst dich natürlich erst einarbeiten, aber das
ist halt so und das nimmt dir auch keiner ab.

MfG

Hubsi

BeitragMo, Apr 19, 2010 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Graphics 500,400,32,2
SetBuffer BackBuffer()

char = LoadAnimImage("chara.png", 30, 30, 0, 6)
MyTimer=CreateTimer(60) ; Alles mit Create und Load hat nichts in der Hauptschleife zu suchen

Repeat

If MilliSecs()>frame_timer+100 ; Geschwindigkeit hier einstellen in Millisekunden
frame=frame+1 ; Frame hochzählen
If frame=6 Then frame=0 ; Begrenzung
EndIf

DrawImage char, 30, 30, frame ; Frame einzeichnen


WaitTimer(MyTimer)
Flip 0 ; Nur so macht ein Timer wirklich Sinn
Forever
WaitKey()


Verstehen, nicht nur kopieren Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Midimaster

BeitragMo, Apr 19, 2010 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Kapitel III des Timer-Tutorial geht mit einem Einleitungssatz los und dann...dann kommt 1:1 das, wonach du suchst!

Gleich im ersten Code-Beispiel wird erklärt, wie man die Frames eines animated Image durchsteppen kann.

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600
SetBuffer BackBuffer()
MyTimer=CreateTimer(60)

Sprite=LoadAnimImage("test.png",1,6)
BildNr%=0
AnimationStart=0

Repeat
If KeyHit(2) Then
AnimationStart=MilliSecs()-1
EndIf
If AnimationStart>0 Then
If AnimationStart<MilliSecs() Then
AnimationStart=MilliSecs()+300
BildNr=BildNr+1
If BildNr=7 Then
BildNr=0
AnimationStart=0
EndIf
EndIf
EndIf
Cls
If BildNr>0 Then
DrawImage Sprite, 100,100,BildNr
EndIf
Flip 0
WaitTimer MyTimer
Until KeyHit(1)


Die einzige "Tranferleistung", die da von dir verlangt wird ist, den symbolische Namen "test.png" natürlich durch den Namen deines Bildes "chara.png" zu ersetzen. Weia!
 

BBPro2

BeitragDi, Apr 20, 2010 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
aber er is doch bei 0, midimaster !

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group