Fehler beim laden einer Bilddatei im Funktion

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

bruce185

Betreff: Fehler beim laden einer Bilddatei im Funktion

BeitragDo, Jul 28, 2005 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe nur noch eine frage, und zwar wie kann ich in einer Funktion eine Bilddatei laden, wenn ich in meiner Funktion ein Bilddatei laden möchte, dann bekomme ich folgende fehlermeldung:

Image does not exist

wenn ich Das Bild in einer normale Schleife laden möchte, dann funktioniert es, ich habe dass so gemacht:

BlitzBasic: [AUSKLAPPEN]

SpielVorbei = LoadImage(\"GameOver.bmp\")

Function Verloren()
Cls
DrawImage SpielVorbei,0,0
Text 50, 50, \"Sie haben verloren\"
Name = Input$(\"Bitte geben Sie ihren Namen ein: \")
WaitKey
End
End Function



die Funktion tuh ich so aufrufen:

BlitzBasic: [AUSKLAPPEN]

If Leben = 0 Then
Verloren()
EndIf


nun möchte ich wissen was ich da falsch gemacht habe, ich danke euch schonmal für die Hilfe Wink

bruce185
  • Zuletzt bearbeitet von bruce185 am So, Jul 31, 2005 1:37, insgesamt einmal bearbeitet

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Jul 28, 2005 22:27
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Global SpielVorbei = LoadImage(\"GameOver.bmp\") 


Sad
[BB2D | BB3D | BB+]

Papa1234

BeitragDo, Jul 28, 2005 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Edit: Ich war zu lahm
Athlon XP 2800+
Radeon X850XT
160gb Festplatte
1gb DDR Ram

bruce185

BeitragDo, Jul 28, 2005 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, es Funktioniert, habe es vergessen als Glubal zu definieren,
danke für deine Hilfe Very Happy

bruce185

bruce185

BeitragDo, Jul 28, 2005 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry, aber wie kann ich die Repeat Schleife wieder verlassen, ich habe ein Button in mein Spiel hinzugefügt, und wenn ich auf den Button "Spiel Starten" klicke, dann möchte ich dass die Repeat Schleife verlassen wird, kann man das auch mit ImagesCollide machen, oder gibt es eine andere möglichkeit, ich hoffe ihr könnt mir da weiter helfen, danke schonmal Wink

bruce185

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Jul 28, 2005 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Repeat ... forever mit exit
Repeat ...Until Beenden = 1; sobald die Var Beenden = 1 ist wird die Schleife velassen!


Je nach Button kannste dir das passende aussuchen
ImageRectCollide
ImageRectOverlap
ImagesCollide
ImagesOverlap
RectsOverlap
oder mit if then
[BB2D | BB3D | BB+]

bruce185

BeitragFr, Jul 29, 2005 0:04
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich dass jetzt so mache Until Beenden = 1, es funktioniert auch, Das Level wird dann angezeit, aber das ganze Programm wird dann angehalten, ich möchte aber dann dass das nächste schleife anfängt durchzulaufen, dann muss ich ja Forever nehmen oder ? ich danke dir schonmal Crying or Very sad

bruce185

Klip

BeitragFr, Jul 29, 2005 1:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso denn forever?

BlitzBasic: [AUSKLAPPEN]

Const hauptspiel = 1
Const menue = 2
Global position = menue

;hauptschleife
Repeat
Select menue
Case hauptspiel
Hauptspiel()
Case menue
Menue()
End Select
Until KeyHit(1) ; Mit Esc Spiel beenden
End

Function Hauptspiel()
Repeat
;mach was
Until position <> hauptspiel
End Function

Function Menue()
Repeat
;Wenn auf einen Button geklickt wird, position = hauptspiel setzen.
Until position <> menue
End Function

bruce185

BeitragSo, Jul 31, 2005 1:32
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry dass es solange gedauert hat, ich habe das jetzt in mein Spiel eingebunden, aber es funktioniert nicht, wenn ich mit der Maus 1 mal klicke, dann flackert es kurz, also so sieht das bei mir jetzt aus:

BlitzBasic: [AUSKLAPPEN]

Const G_Width = 672 ;Fenster Breite
Const G_Height = 512 ;Fenster Hoehe
Const G_Bit = 16 ;Farbe des Graphics


Graphics G_Width, G_Height, G_Bit, 2
SetBuffer BackBuffer()

;Hauptmenu BMP Laden
Global hauptmenu = LoadImage(\"hauptmenu.bmp\")

;Map BMP Laden
Global tilemap = LoadAnimImage(\"map.bmp\",32,32,0,5)
MaskImage tilemap,255,0,255

Dim map(20,15)

;Die Daten von Level einlesen
;###############################################
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,3,3,0,3,0,3,0,3,3,0,3,3,0,3,3,0,3,0,3;#
Data 3,0,3,3,0,3,0,3,0,3,3,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,0,3,3,0,3;#
Data 3,0,3,3,3,0,3,3,0,3,3,0,3,0,3,3,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,3,0,3,0,3,3,0,3,3,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,3,3,3,0,3;#
Data 3,0,3,0,3,0,3,3,0,0,0,0,0,0,0,0,3,3,3,0,3;#
Data 3,0,0,0,3,0,3,3,0,3,0,3,3,0,3,0,0,0,0,0,3;#
Data 3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,0,3,3,0,3,0,3,0,3,0,3,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;#
;###############################################

;Die Definition
Const hauptspiel = 1
Const menue = 2
Global position = menue

For y = 0 To 15
For x = 0 To 20
Read map(x,y)
Next
Next

;Die Hauptschleife
Repeat

Select menue
Case hauptspiel
Hauptspiel()
Case menue
Menue()
End Select

Until KeyHit(1)

;Funktion des Spiels
Function Hauptspiel()
Repeat
For y = 0 To 15
For x = 0 To 20
DrawBlock tilemap,x*32,y*32,map(x,y)
Next
Next
Until position <> hauptspiel
End Function


;Funktion des Hauptmenues
Function Menue()
Repeat
DrawImage hauptmenu,x,y,0

If MouseHit(1) Then
position = hauptspiel
EndIf

Flip
Until position <> menue
End Function

End


also vieleicht kannst du mir ja helfen den fehler zu finden, ich bin dir sehr dankbar wenn du mir posten könntest was ich falsch gemacht habe, ich danke dir schonmal Crying or Very sad

bruce185

bruce185

BeitragSo, Jul 31, 2005 2:55
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, ich habs hinbekommen ein Hauptmenü zu erstellen, und wenn ich mit der Maus 1 mal klicke, dann wird das Spiel gestartet
so funktioniert es, ich habe nur Flip vergessen zu schreiben, deswegen hat mein spiel das Hauptspiel BMP die ganze zeit nicht angezeigt:

BlitzBasic: [AUSKLAPPEN]

Const G_Width = 672 ;Fenster Breite
Const G_Height = 512 ;Fenster Hoehe
Const G_Bit = 16 ;Farbe des Graphics


Graphics G_Width, G_Height, G_Bit, 2
SetBuffer BackBuffer()

;Hauptmenu BMP Laden
Global hauptmenu = LoadImage(\"hauptmenu.bmp\")

;Button Start BMP Laden
Global button1 = LoadImage(\"button1start.bmp\")
MaskImage button1,255,0,255

;Button Einstellungen BMP Laden
Global button2 = LoadImage(\"button3einstellungen.bmp\")
MaskImage button2,255,0,255

;Button Ende BMP Laden
Global button3 = LoadImage(\"button5ende.bmp\")
MaskImage button3,255,0,255

;Map BMP Laden
Global tilemap = LoadAnimImage(\"map.bmp\",32,32,0,5)
MaskImage tilemap,255,0,255

Dim map(20,15)

;Die Daten von Level einlesen
;###############################################
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,3,3,0,3,0,3,0,3,3,0,3,3,0,3,3,0,3,0,3;#
Data 3,0,3,3,0,3,0,3,0,3,3,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,3,0,3,3,0,3,3,0,3;#
Data 3,0,3,3,3,0,3,3,0,3,3,0,3,0,3,3,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,3,0,3,0,3,3,0,3,3,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,3,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,3,3,3,0,3;#
Data 3,0,3,0,3,0,3,3,0,0,0,0,0,0,0,0,3,3,3,0,3;#
Data 3,0,0,0,3,0,3,3,0,3,0,3,3,0,3,0,0,0,0,0,3;#
Data 3,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,3,0,3;#
Data 3,0,3,0,3,3,0,3,0,3,3,0,3,0,3,0,3,0,3,0,3;#
Data 3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3;#
Data 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3;#
;###############################################


For y = 0 To 15
For x = 0 To 20
Read map(x,y)
Next
Next

Menue()

;Die Hauptschleife
Repeat


Until KeyHit(1)

;Funktion des Spiels
Function Hauptspiel()
Repeat
For y = 0 To 15
For x = 0 To 20
DrawBlock tilemap,x*32,y*32,map(x,y)
Next
Next
Flip
Until KeyHit(1)
End Function

;Funktion des Hauptmenues
Function Menue()
Repeat
DrawImage hauptmenu,x,y,0
If MouseHit(1) Then
Hauptspiel()
EndIf
Flip
Until KeyHit(1)
End Function


ich bin ein Genie Very Happy danke vielmals für eure mühe Wink

bruce185

Alfadur

BeitragMo, Aug 01, 2005 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, ein genie. besonders gefällt mir bei dir diese stelle ...

Zitat:

BlitzBasic: [AUSKLAPPEN]

;Die Hauptschleife
Repeat


Until KeyHit(1)

A Cray is the only computer that runs an endless loop in less than four hours.

bruce185

BeitragMo, Aug 01, 2005 22:35
Antworten mit Zitat
Benutzer-Profile anzeigen
sorry, aber ich habe den inhalt der Repeat schleife gelöscht, und habe vergessen die schleife mit zu löschen Laughing kann ja mal passieren Razz

bruce185

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group