Problem mit animation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sephka

Betreff: Problem mit animation

BeitragSa, Mai 01, 2010 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe erst vor gestern mit blitzbasic angefangen habe aber schon vorkentnisse gehabt.
Heute hab ich versucht eine animation zu erstellen aber es wird immer "Image doesn't exsist" angezeigt.
Das is der code: Code: [AUSKLAPPEN]
Graphics 1024,768,64,2
AppTitle "FF"
Musik=PlayMusic("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\titel.wav")
BackBild = LoadImage("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\Back.bmp")
DrawImage BackBild,1,1
ChannelVolume Musik,1
Repeat
If Not ChannelPlaying(Musik)
   Musik = PlayMusic("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\titel.wav")
EndIf
If KeyHit(1) 
Goto MapLoad
End If
Forever
.Mapload
 Cls
StopChannel Musik
Musik=PlayMusic("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\welt.mp3") 

Global xmax=1024,ymax=768
Graphics xmax,ymax,32,2
SetBuffer BackBuffer()
Status = LoadImage("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\Status.bmp")
Graphics 800,800,64,2
;.................
Global Map = LoadImage("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\Map1.bmp")
Global spieler = LoadAnimImage("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\Typ\Typ.bmp",17,25,0,5)
MaskImage spieler, 255, 255, 255
;.................
Global XSp = 505
Global YSp = 500
DrawImage Map,1,1
Spieler = 1
Repeat
If Not ChannelPlaying(Musik)
   Musik=PlayMusic("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\welt.mp3")
EndIf

Flip
Cls
Select spieler
Case 1
DrawImage Map,1,1
DrawImage spieler,XSp,YSp,5
steh=1
Case  2
DrawImage Map,1,1
If steh=0 DrawImage spieler,XSp,YSp,2 Delay(400)
DrawImage spieler,XSp,YSp,5
steh=1
Case  3
DrawImage Map,1,1
DrawImage spieler,XSp,YSp,5
Case  4
DrawImage Map,1,1
DrawImage spieler,XSp,YSp,4
End Select
If KeyHit(203) Then XSp = XSp-25  Spieler = 1 steh=0
If KeyHit(205) Then XSp = XSp+25  Spieler = 2 steh=0
If KeyHit(200) Then YSp = YSp-25  Spieler = 4
If KeyHit(208) Then YSp = YSp+25  Spieler = 3
If XSp >= 800 Then XSp = 2
If YSp >= 800 Then YSp = 2
If XSp <= 1 Then XSp = 1022
If YSp <= 1 Then YSP = 766
For Y = 1 To 2500
Next

Until KeyHit(1)

WaitKey
End

Danke Schonma

mpmxyz

BeitragSa, Mai 01, 2010 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Sephka!
Man bemerkt die Vorkenntnisse, aber auch die Kürze der Zeit. Wink

Ich kann dir nur helfen, dir selbst zu helfen, da ich nicht erahnen kann, wo der Fehler stattfindet.
Das solltest du bei Problemen am besten auch mitteilen.

Welches Bild wurde nicht geladen? (Schaue dir die Werte der Variablen (0=nicht geladen) z.B. im Debugger an, Stop,DebugLog)
Existiert die Datei oder wurde der Pfad falsch geschrieben?
Es ist möglicherweise besser, relative Pfade zu nutzen.

Mir sind weitere Fehler aufgefallen:
BlitzBasic: [AUSKLAPPEN]
DrawImage spieler,XSp,YSp,5 
Du lädst das Bild mit 5 Frames und möchtest den 6. Frame - bei 0 fängt man hier an zu zählen - anzeigen.
BlitzBasic: [AUSKLAPPEN]
If KeyHit(1) 
Goto MapLoad
End If
Forever
.Mapload
Regel Nr. 1: Goto ist böse. (Twisted Evil)
Hier kann man noch nicht einmal streiten, da ein einfaches Exit oder ein Until genau das selbe erreichen würden.
BlitzBasic: [AUSKLAPPEN]
Graphics 1024,768,64,2 
Shocked
Was hast du für einen Bildschirm?
Kannst du so viele Farbdetails überhaupt sehen? Wink
Ich hoffe auch, dass du deinen Code einrückst; in der Codebox kann ich das nämlich nicht erkennen.
mfG
mpmxyz
  • Zuletzt bearbeitet von mpmxyz am Sa, Mai 01, 2010 16:41, insgesamt einmal bearbeitet

Progger93

BeitragSa, Mai 01, 2010 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Sephka,
Dein Problem wird meistens dadurch verursacht, dass das Bild nicht gefunden wurde, daher der Pfad zum Bild nicht korrekt war.Ich hab mir deinen Code jetzt nicht genau angesehen, allerdings ist er mehr oder weniger schrecklich. Normale Programme werden nach Folgendem Ablauf programmiert:
Code: [AUSKLAPPEN]

;Initialisieren und Laden
Repeat
     ;Eingabe
     ;Berechnungen
     ;Ausgabe
Until Keyhit(1)
End

Goto ist böse , da es seeeehr unübersichtlichen Code produziert, wie dein Beispiel wunderschön zeigt. Du solltest dir außerdem angewöhnen deinen Code einzurücken, also nicht
BlitzBasic: [AUSKLAPPEN]
If KeyDown(1) Then
Print "Hallo"
EndIf
sondern:
BlitzBasic: [AUSKLAPPEN]
If KeyDown(1) Then
Print "Hallo"
EndIf
was deinen Code allgemein übersichtlicher und lesbarer macht. Dadurch können wir dir auch besser helfen. Zum besseren Einstieg in BB kann ich dir >>dieses<< Tutorial empfehlen.

MfG
Progger93

EDIT: zu langsam Sad

EDIT2: Ich empfehle dir relative Pfadangaben zu nutzen, damit auch andere deinen Programmcode ausführen können, wo die Ressourcen nicht in genau dem ordner ist. Also nicht "C:/..../bild.png" sondern "gfx/bild.png"

count-doku

BeitragSa, Mai 01, 2010 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi und willkommen im Forum,

erstmal schließe ich mich meinen Vorpostern an,
weiter ist mir noch ein Problem aufgefallen:
Graphics löscht alle Bilder im Speicher.
So würde hier: BlitzBasic: [AUSKLAPPEN]
Status = LoadImage("C:\Dokumente und Einstellungen\Jonas\Desktop\Blitzbasic\Status.bmp")
Graphics 800,800,64,2

Das Bild Status schon nicht mehr existieren.

mfg,
count-doku

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group