Image does not exist

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Kirro

Betreff: Image does not exist

BeitragSa, Jan 26, 2008 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

ich habe ein komisches problem... und zwar sagt das programm (wenn es zu dem punkt kommt wo er das bild zeichen soll) dass das bild nicht existiert!

ich wollte es erst erklären dann dachte ich ich verkürze den code also hier ist es:

Code: [AUSKLAPPEN]

Global aufx=640
Global aufy=480

Global auswahl=1
Global menupunkt=1
Global optionauf=1
Dim map(20,15)
;Tasten
Global links=203
Global rechts=205
Global oben=200
Global unten=208
Global leert=57

;Bilder
Global stein=LoadImage("stein.bmp")
MaskImage stein, 255,0,255
Global figur=LoadImage("Dude.bmp")
MaskImage figur, 255,0,255

Global figury=aufy-32
Global figurx=3
Graphics(aufx,aufy)

SetBuffer BackBuffer()


Function drawmap()



For y = 0 To 14
      For x = 0 To 19
         If map(x,y) = 1 Then            
            DrawImage (stein, x*32, y*32)
         EndIf
      Next
   Next

End Function





Function spiel()

readlevel
Repeat
       Cls
       DrawImage (figur,figurx,figury)
       drawmap
       If KeyDown(oben) Then
           figury=figury-1
      EndIf
      If KeyDown(unten) Then
           figury=figury+1
       EndIf
       If KeyDown(links) Then
           figurx=figurx-1
       EndIf
      If KeyDown(rechts) Then
           figurx=figurx+1
     EndIf

     Flip
    Until KeyHit(1)
    Return 0
End Function

;Hauptprogramm
Repeat
     Cls
     spiel()
     Flip
Until(KeyHit(1))
End





so habe ich bissn mal gekürzt ich hoffe ich habe nix wichtiges weggemacht....

Das bild lädt er, wenn ich die grafik in der funktion lade mit loadimage (natürlich dann global wegmachen)

aber dann ist das andere problem das er das bild stein nicht malt auch keine fehlermeldung gibt sondern er malt einfach das bild figur...

also ich habe schon duzende andere versuche gemacht aber nichts wollte wirklich gut funktionieren....


danke im voraus

gruß

kirro

ChaosCoder

BeitragSa, Jan 26, 2008 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich habe jetzt nichts falsches gesehen, außer dass du, wenn du ne funktion aufrufen willst, hinter den funktionsnamen " () " schreiben musst.

Desweiteren seh ich keinen Grund eine Schleife in eienr Schliefe zu machen. Und die funktion "ReadLevel" entdecke ich hier nirgendswo, vllt wird die Map ja falsch eingelesen und überall entspricht "map(x,y)=0" dann würde der ja auch nix zeichnen, von daher kannste ja ma die werte ausgeben lassen die in dem array sind:

Von daher:

Code: [AUSKLAPPEN]
Global aufx=640
Global aufy=480

Global auswahl=1
Global menupunkt=1
Global optionauf=1
Dim map(20,15)
;Tasten
Global links=203
Global rechts=205
Global oben=200
Global unten=208
Global leert=57

;Bilder
Global stein=LoadImage("stein.bmp")
MaskImage stein, 255,0,255
Global figur=LoadImage("Dude.bmp")
MaskImage figur, 255,0,255

Global figury=aufy-32
Global figurx=3
Graphics(aufx,aufy)

SetBuffer BackBuffer()


Function drawmap()

For y = 0 To 14
      For x = 0 To 19
         If map(x,y) = 1 Then           
            DrawImage(stein, x*32, y*32)
         EndIf
         Text x*32,y*32,map(x,y),1,1 ;DEBUG AUSGABE!!! Zeile löschen wenns klappt ;)
      Next
   Next

End Function

Function spiel()

      drawmap()
       DrawImage(figur,figurx,figury)
       If KeyDown(oben) Then
           figury=figury-1
      EndIf
      If KeyDown(unten) Then
           figury=figury+1
       EndIf
       If KeyDown(links) Then
           figurx=figurx-1
       EndIf
      If KeyDown(rechts) Then
           figurx=figurx+1
     EndIf

End Function

;Hauptprogramm
readlevel()
Repeat
     Cls
     spiel()
     Flip
Until(KeyHit(1))
End


~Edit~:
Hab grad nochma nachgeguckt... man muss die "()" doch nich schreiben... naja gewöhns dir trotzdem an, sonst könnte mans mit ner variable verwechseln Wink
dann liegts wohl definitiv an der funktion readlevel()
Projekte: Geolaria | aNemy
Webseite: chaosspace.de
 

Kirro

BeitragSa, Jan 26, 2008 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ja auch nur ein ausschnitt... ich poste mal den gesamten...(kann das sein das ich ne ältere version benutze?

IDE V.168 Linker V1.24 Runtime V.168

vllt ist das nur ein bug oder so?

und hier der komplette quellcode

Code: [AUSKLAPPEN]

Global aufx=640
Global aufy=480

Global auswahl=1
Global menupunkt=1
Global optionauf=1
Dim map(20,15)
;Tasten
Global links=203
Global rechts=205
Global oben=200
Global unten=208
Global leert=57

;Bilder
Global stein=LoadImage("stein.bmp")
MaskImage stein, 255,0,255
Global figur=LoadImage("Dude.bmp")
MaskImage figur, 255,0,255






.neustart
Global figury=aufy-32
Global figurx=3
Graphics(aufx,aufy)

SetBuffer BackBuffer()

Function menu(auswahl=1)


If ((auswahl=1) Or (Mausy>=100 And Mausy<=130)) Then

Text 100,100, "--Spiel starten--"
Else
Text 100,100, "Spiel starten"
EndIf

If ((auswahl=2) Or (Mausy>=150 And Mausy<=180)) Then
Text 100,150, "--Optionn--"
Else
Text 100,150, "Option"
EndIf

If ((auswahl=3) Or (Mausy>=200 And Mausy<=230)) Then
Text 100,200, "--Ende--"
Else
Text 100,200, "Ende"
EndIf


End Function

Function drawmap()



For y = 0 To 14
      For x = 0 To 19
         If map(x,y) = 1 Then            
            DrawImage (stein, x*32, y*32)
         EndIf
      Next
   Next

End Function

Function readlevel()

Restore mapdata
   For y=0 To 14      
   For x=0 To 19   
      Read map(x,y)
   Next
Next

End Function

Function option()

If optionauf=1 Then
Text 100,100, "--640x480--"
Else
Text 100,100, "640x480"
EndIf

If optionauf=2 Then
Text 100,150, "--800x600--"
Else
Text 100,150, "800x600"
EndIf

If optionauf=3 Then
Text 100,200, "--1024x786--"
Else
Text 100,200, "1024x786"
EndIf


End Function

;Spiel
Function spiel()

readlevel
Repeat
Cls
DrawImage (figur,figurx,figury)
drawmap
If KeyDown(oben) Then
figury=figury-1
EndIf
If KeyDown(unten) Then
figury=figury+1
EndIf
If KeyDown(links) Then
figurx=figurx-1
EndIf
If KeyDown(rechts) Then
figurx=figurx+1
EndIf

Flip

Until KeyHit(1)
Return 0
End Function

;Hauptprogramm
Repeat



Cls
Mausx=MouseX()
Mausy=MouseY()


If(Mausy>=100 And Mausy<=130) Then
auswahl=1
optionauf=1
EndIf
If(Mausy>=150 And Mausy<=180) Then
auswahl=2
optionauf=2
EndIf
If(Mausy>=200 And Mausy<=230) Then
auswahl=3
optionauf=3
EndIf



;Tastatur
If menupunkt=1 Then
   If KeyHit(oben) Then
   auswahl=auswahl-1
      If auswahl=0 Then
      auswahl=3
      EndIf
   EndIf
   If KeyHit(unten) Then
   auswahl=auswahl+1
      If auswahl=4 Then
      auswahl=1
      EndIf
   EndIf
   menu(auswahl)
   If KeyHit(28) Or MouseHit(1) Then
      Cls
   
      If auswahl=1 Then
      spiel
      Delay 10
   
      Else If auswahl=2 Then
      menupunkt=2
   
      Else If auswahl=3 Then
      End
      EndIf
   EndIf
EndIf


If menupunkt=2 Then
   If KeyHit(oben) Then
   optionauf=optionauf-1
      If optionauf=0 Then
      optionauf=3
      EndIf
   EndIf
   If KeyHit(unten) Then
   optionauf=optionauf+1
      If optionauf=4 Then
      optionauf=1
      EndIf
   EndIf
   option
   If KeyHit(28) Or MouseHit(1) Then
      Cls
   
      If optionauf=1 Then
      menupunkt=1
      aufx=640
      aufy=480
      Goto neustart
      Else If optionauf=2 Then
      menupunkt=1
      aufx=800
      aufy=600
      Goto neustart
      Else If optionauf=3 Then
      menupunkt=1
      aufx=1024
      aufy=786
      Goto neustart
      EndIf
   EndIf
EndIf




Flip

Until(KeyHit(1))
End

.mapdata
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 

ChristianK

BeitragSa, Jan 26, 2008 16:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Graphics ausführst, werden alle Bilder, die vorher geladen wurden, aus dem Speicher glöscht. Am besten, du schreibst Graphics ganz am Anfang deines Programms.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Kirro

BeitragSa, Jan 26, 2008 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ah ok danke hat geklappt...
 

Dreamora

BeitragSa, Jan 26, 2008 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Sofern es Blitz3D ist, ist sie uralt ja ... 3+ jahre oder so
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Kirro

BeitragSa, Jan 26, 2008 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
nee ist blitz 2d... ich habe das auch schon ca. 1 jahr oder so... ich hab dann zwar mit 3d angefangen aber nach einem jahr pause weiß man nicht mehr viel ...deswegen hab ich wieder mit 2d angefangen...

was ist denn mit der 2d version?
 

Dreamora

BeitragSa, Jan 26, 2008 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
keine ahnung, da der support für Blitz2D vor jahren eingestellt wurde und Blitz2D durch Blitz3D ersetzt wurde was alles von der 2D kann + 3D und später dann vor allem durch BlitzPlus was im 2D bereich einige features hat, die Blitz3D leider nie geerbt hat.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group