Bild zu groß? Absturz
Übersicht

Loewe95Betreff: Bild zu groß? Absturz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich programmiere ein kleines Jump n Run Spiel zudem relativ große, jedoch als .png abgespeicherte Bilder geladen werden. Jedes mal wenn die Bilder aber angezeigt werden sollen, stürtzt das Programm mit einer Meldung: blitzcc.exe funktioniert nicht mehr ab.
Code: [AUSKLAPPEN] For i = 1 To Teile(level) map(i,1) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sh.png") map(i,2) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sc.png") map(i,3) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sh.png") Next ![]() ![]() bitte um anwort ![]() p.s der debugger ist an |
||
Mhm, ja hab nichts gutes für die Signatur |
- Zuletzt bearbeitet von Loewe95 am Sa, Okt 03, 2009 11:31, insgesamt 2-mal bearbeitet
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie groß sind die Bilder? Hast du die Vollversion (wenn ja, speicher die Bilder auf jeden Fall als PNG ab)? Ich hatte dieses Problem noch nie, hört sich seltsam an. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du lädst pngs die angeblich bmps sind... | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() hab mich verschrieben ich lade in der tat png´s ein level hier bestehend aus zwei levels ist ungefähr 700 kb groß was mir eigentlich nicht als allzuviel erscheint ja habe bp vollversion |
||
Mhm, ja hab nichts gutes für die Signatur |
- Zuletzt bearbeitet von Loewe95 am Fr, Okt 02, 2009 16:36, insgesamt einmal bearbeitet
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann zeig mal her wie du die bilder malst | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] For i = 1 To Teile(level) DrawImage map(i,1), map(i,4) - Figur(1), map(i,5) - Figur(2) Next meinst du das? ![]() ![]() ![]() Wenn ich nur einen Teil lade, dann läuft das Programm problemlos ![]() ![]() ![]() |
||
Mhm, ja hab nichts gutes für die Signatur |
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If AvailVidMem() < 1000 Then Stop lässt das programm auch abstürzen |
||
Mhm, ja hab nichts gutes für die Signatur |
![]() |
Valnar |
![]() Antworten mit Zitat ![]() |
---|---|---|
bitte doppelposts vermeiden, ist nicht gern gesehen. Wir sind hier nicht alle arm, ein netter spender hat der forenengine eine editfunktion spendiert.
Was gibt den AvailMem aus? |
||
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Eben nichts das Programm stürtzt auch dann ab | ||
Mhm, ja hab nichts gutes für die Signatur |
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sicher das du auch folgendes geschrieben hast:
BlitzBasic: [AUSKLAPPEN] Print AvailVidMem()/1000 Im Zweifellsfall öffne einfach mal die .png Bilder mit einem Grafikprogramm deiner Wahl und speichere sie einfach nochmal als .png ab. Am besten nicht mit Paint, da kann es sein, dass es die Bilder einfach als .bmp speichert aber mit der Dateiendung .png ![]() Wenn es allerdings immernoch abstürtzt, hört sich das für mich eher nicht nach einem Problem im Code, sondern eher von BlitzBasic,deinem OS oder deinem Computer an ![]() |
||
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok wenn ich den Speicherplatz vor dem Laden der Daten prüfe kommt ungefähr 1.8GB raus. Hinterher: Absturz | ||
Mhm, ja hab nichts gutes für die Signatur |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zeig bitte mal deinen gesamten Code (oder wenn es zuviel ist den wichtigeren Teil).
MfG |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so hab noch mal kleines bisschen übersichtlicher gemacht
Code: [AUSKLAPPEN] Graphics 800,600, 16,1 SetBuffer BackBuffer() Global level = 1 Type Tessen Field Typ Field x Field y Field frame Field got End Type Type Tenemy Field typ Field sx Field sy Field ex Field ey Field leben Field dead Field x Field y Field hframe Field vframe End Type Dim Figur(17) ;;;;;;Figur;;;;; ;0. void ;1. x ;2. y ;3. Richtung ;4. Frame ;5. Horizontal ;6. Vertikal ;7. Durchläufe seit Event ;8. Bild ;9. Fallen ;10. Fallbild ;11. Breite ;12. Länge ;13. jump ;14. Echtes Bild ;15. Sprunkraft ;16. Geschwindigkeit ;17. yVeränderung ;;;;;;;;;;;;; Dim Flagge(5) ;;;;;Flagge;;;;;; ;1. Bild ;2. x ;3. y ;4. Frame ;;;;;;;;;;;; Flagge(1) = LoadAnimImage(".\Bilder\Flagge.png",170,300,0,7) Flagge(2) = 1850 Flagge(3) = 100 Flagge(4) = Flagge(4) + 1 If Flagge(4) = 7 Then Flagge(4) = 0 Figur(8) = LoadAnimImage(".\Figur1.png",150,200,0,14) Figur(10) = LoadAnimImage(".\Figur2.png",150,200,0,2) Figur(14) = LoadAnimImage(".\Figur1.png",150,200,0,14) Figur(11) = 150 Figur(12) = 200 Figur(15) = 120 Figur(16) = 20 ;MidHandle Figur(8) MaskImage Figur(8), 255,255,255 MaskImage Figur(10), 255,255,255 MaskImage Figur(14), 255,255,255 MaskImage Flagge(1), 255,255,255 ClsColor 255,255,255 Figur(1) = 0 Figur(2) = -400 Dim Teile(1) Teile(0) = 1 Teile(1) = 2 Dim essbild(2) Dim feindbild(3) essbild(1) = LoadImage(".\Bilder\Pflaume.png") essbild(2) = LoadImage(".\Bilder\Brot.png") feindbild(1) = LoadAnimImage(".\Bilder\Affe.bmp",162,128,0,2) feindbild(2) = LoadAnimImage(".\Bilder\Gespenst.bmp",90,160,0,2) feindbild(3) = LoadAnimImage(".\Bilder\Geier.bmp",235,140,0,2) MaskImage feindbild(1), 255,255,255 MaskImage feindbild(2), 255,255,255 MaskImage feindbild(3), 255,255,255 MaskImage essbild(1), 255,255,255 MaskImage essbild(2), 255,255,255 ;Außenschleife datei = ReadFile(".\Maps\Level" + level + "\Foodlist.fls") food = ReadInt(datei) For i = 1 To food essen.Tessen = New Tessen Next For essen.Tessen = Each Tessen essen\typ = ReadInt(datei) essen\x = ReadInt(datei) essen\y = ReadInt(datei) Next CloseFile datei datei = ReadFile(".\Maps\Level" + level + "\Enemylist.els") feinde = ReadInt(datei) For i = 1 To feinde enemy.Tenemy = New Tenemy Next For enemy.Tenemy = Each Tenemy enemy\typ = ReadInt(datei) enemy\sx = ReadInt(datei) enemy\sy = ReadInt(datei) enemy\ex = ReadInt(datei) enemy\ey = ReadInt(datei) enemy\x = enemy\sx - 20 enemy\y = enemy\sy + 20 Next CloseFile datei essen.Tessen = First Tessen enemy.Tenemy = First Tenemy Dim map(Teile(Level),6) ;;;;;;map;;;;;; ;1. Anzeige ;2. Schwerkraft ;3. Wände ;4. xStart ;5. yStart ;;;;;;;;;;;;;; For i = 1 To Teile(level) map(i,1) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sh.png") map(i,2) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sc.png") map(i,3) = LoadImage(".\Maps\Level" + level + "\mapl" + i + "sh.png") Next If map(1,1) = 0 Then End For i = 1 To Teile(Level) For in = 1 To 3 MaskImage map(i,in), 254,254,254 Next Next map(1,4) = 0 map(1,5) = 0 ;map(2,4) = 0 ;map(2,5) = 1543 ClsColor 50,127,255 Repeat ;If KeyDown(200) And Figur(7) < 5 And Figur(13) > 0 Then Figur(13) = Figur(13) + Figur(15) / 5 If KeyHit(200) And Figur(13) = 0 Then Figur(7) = 0 Figur(9) = True For i = 1 To Teile(level) If ImagesCollide(Figur(8), GraphicsWidth() / 2,384 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then Figur(9) = False Next If Figur(9) = False Then Figur(13) = Figur(15) EndIf If KeyDown(203) Then Figur(3) = 1 ElseIf KeyDown(205) Then Figur(3) = 2 Else Figur(3) = 0 EndIf moveenemy collide chooseframe Cls drawscene ;If copy = 100 Then SaveBuffer(BackBuffer,".\Buffer.bmp") : copy = 0 Flip Delay 100 Flagge(5) = Flagge(5) + 1 ;copy = copy + 1 Until KeyDown(1) Function moveenemy() For enemy.Tenemy = Each Tenemy If enemy\hframe = 1 Then If enemy\sx <> enemy\ex Then enemy\x = enemy\x + 20 If enemy\x > enemy\sx Then enemy\hframe = 0 ElseIf enemy\hframe = 0 Then If enemy\ex <> enemy\sx Then enemy\x = enemy\x - 20 If enemy\x < enemy\ex Then enemy\hframe = 1 EndIf If enemy\vframe = 1 Then If enemy\sy <> enemy\ey Then enemy\y = enemy\y + 20 If enemy\y > enemy\ey Then enemy\vframe = 0 ElseIf enemy\vframe = 0 Then If enemy\ey <> enemy\sy Then enemy\y = enemy\y - 20 If enemy\y < enemy\sy Then enemy\vframe = 1 EndIf Next End Function Function collide() For essen.Tessen = Each Tessen If ImagesCollide(Figur(14), GraphicsWidth() / 2,384 ,0, essbild(essen\typ), essen\x - Figur(1),essen\y - Figur(2), 0) Then essen\got = True : leben = leben + 1 Next For enemy.Tenemy = Each Tenemy If ImagesCollide(Figur(14), GraphicsWidth() / 2,384, 0, feindbild(enemy\typ), enemy\x - Figur(1),enemy\y - Figur(2), 0) And enemy\dead = False Then If ImagesCollide(Figur(14), GraphicsWidth() / 2,384 - 35, 0, feindbild(enemy\typ), enemy\x - Figur(1),enemy\y - Figur(2), 0) Or Figur(17) < 20 Then leben = leben - 1 Figur(1) = Figur(1) - 200 Figur(2) = Figur(2) - 200 Else enemy\dead = True EndIf EndIf Next End Function Function movevertical() wall = False If Figur(3) = 2 Then For i = 1 To Teile(level) If ImagesCollide(Figur(14), GraphicsWidth() / 2 + Figur(16),380 ,0, map(i,3),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then If ImagesCollide(Figur(14), GraphicsWidth() / 2 + 31,380 ,0, map(i,3),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then wall = True EndIf Next If wall = False Then Figur(1) = Figur(1) + Figur(16) ElseIf Figur(3) = 1 And Figur(1) > -600 Then For i = 1 To Teile(level) If ImagesCollide(Figur(14), GraphicsWidth() / 2 - Figur(16),380 ,0, map(i,3),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then If ImagesCollide(Figur(14), GraphicsWidth() / 2 - 31,380 ,0, map(i,3),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then wall = True EndIf Next If wall = False Then Figur(1) = Figur(1) - Figur(16) EndIf End Function Function chooseframe() y = Figur(2) If Figur(3) = 0 Then If Figur(4) > 6 Then Figur(4) = 13 Else Figur(4) = 0 EndIf ElseIf Figur(3) = 1 Then If Figur(4) < 8 Then Figur(4) = 13 Figur(4) = Figur(4) - 1 If Figur(4) = 14 Then Figur(4) = 12 ElseIf Figur(3) = 2 Then Figur(4) = Figur(4) + 1 If Figur(4) > 6 Then Figur(4) = 1 EndIf Figur(2) = Figur(2) - 40 movevertical Figur(9) = True ;!!!!!!!!!!!!!!!!!Ab hier funktioniert es meistens nicht mehr!!!!!!!!!!!!!!!!!!!! For i = 1 To Teile(level) If ImagesCollide(Figur(8), GraphicsWidth() / 2,385 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then If ImagesCollide(Figur(8), GraphicsWidth() / 2,374 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then void = 0 Else Figur(9) = False EndIf EndIf Next If Figur(9) Then Repeat For i = 1 To Teile(level) If ImagesCollide(Figur(8), GraphicsWidth() / 2,385 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) And ImagesCollide(Figur(8), 610,384 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) And ImagesCollide(Figur(8), 670,384 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then If ImagesCollide(Figur(8), GraphicsWidth() / 2,374 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) And ImagesCollide(Figur(8), 610,374 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) And ImagesCollide(Figur(8), 670,374 ,0, map(i,2),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then void = 0 Else Figur(9) = False EndIf EndIf Next ind = ind + 1 Figur(2) = Figur(2) + 1 Until Figur(9) = False Or ind = 70 EndIf wall = False For i = 1 To Teile(level) If ImagesCollide(Figur(14), GraphicsWidth() / 2,384 - Figur(13),0, map(i,3),map(i,4) - Figur(1), map(i,5) - Figur(2),0) Then wall = True Next If wall = False Then Figur(2) = Figur(2) - Figur(13) Else Figur(13) = 0 EndIf If Figur(13) > 0 Then Figur(13) = Figur(13) - 10 Figur(17) = Figur(2) - y End Function Function drawscene() ;!!!!!!!!!!!!!!!!!!!Wenn ich alle anderen Funktionen mit Imagescollide() auslasse stürzt das Programm in der kommenden For-Schleife ab!!!!!!!!!!!!!!! For i = 1 To Teile(level) DrawImage map(i,1), map(i,4) - Figur(1), map(i,5) - Figur(2) Next For essen.Tessen = Each Tessen If essen\got = False Then DrawImage essbild(essen\typ), essen\x - Figur(1),essen\y - Figur(2) Next If Flagge(5) = 2 Then Flagge(4) = Flagge(4) + 1 : Flagge(5) = 0 If Flagge(4) = 7 Then Flagge(4) = 0 DrawImage Flagge(1), Flagge(2) - Figur(1),Flagge(3) - Figur(2),Flagge(4) For enemy.Tenemy = Each Tenemy If enemy\dead = False Then DrawImage feindbild(enemy\typ), enemy\x - Figur(1) ,enemy\y - Figur(2), enemy\hframe Next If Figur(9) Then If Figur(4) > 6 Then DrawImage Figur(10), GraphicsWidth() / 2, 384, 1 ElseIf Figur(4) < 7 Then DrawImage Figur(10), GraphicsWidth() / 2, 384, 0 EndIf Else DrawImage Figur(8), GraphicsWidth() / 2, 384, Figur(4) EndIf End Function |
||
Mhm, ja hab nichts gutes für die Signatur |
- Zuletzt bearbeitet von Loewe95 am Sa, Okt 03, 2009 10:16, insgesamt einmal bearbeitet
aletes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1280x768? ist das überhaupt eine annehmbare Auflösung?, weil ich bekommen einen 'Unable to set graphics mode"... | ||
![]() |
ComNik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und du erwartest das sich jemand durch diesen Code wühlt? Einrücken, Abstände etc..?
Ansonsten probier doch mal testweise ob es mit kleineren Bildern klappt. Setze evtl mal 800*600 als Auflösung. Du sagst das beim Laden eines Teils der Bilder alles klappt? Probier doch mal solange bis du eventuell das Bild gefunden hast, das beim Laden Probleme bereitet? Wenn das alles nichts hilft: Kommentiere nacheinander Render Routinen aus, oder alles andere was die Bilder beeinflusst. Lass dir Variablen ausgeben, kurz: die paar Zeilen finden die Probleme machen. Wenn du die hast, schau ob du den Fehler findest, ansonsten poste nochmal die genaue Stelle und es werden sicher mehr Leute helfen. Lg ComNik |
||
WIP: Vorx.Engine |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
aletes hat Folgendes geschrieben: Sicher das du auch folgendes geschrieben hast:
BlitzBasic: [AUSKLAPPEN] Print AvailVidMem()/1000 Im Zweifellsfall öffne einfach mal die .png Bilder mit einem Grafikprogramm deiner Wahl und speichere sie einfach nochmal als .png ab. Am besten nicht mit Paint, da kann es sein, dass es die Bilder einfach als .bmp speichert aber mit der Dateiendung .png ![]() Wenn es allerdings immernoch abstürtzt, hört sich das für mich eher nicht nach einem Problem im Code, sondern eher von BlitzBasic,deinem OS oder deinem Computer an ![]() sofern paint richtig bedienen kann kann man mit auch folgende formate speichern: -monochrom bmp -16 farben bmp -256 farben bmp -24 bit bmp -sämtliche jpeg formate -gif(keine animationen) -tiff -png sry für ot. |
||
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Doch ist schon png
Wenn ich nur das zweite Bild lade funktioniert es auch. Auflösung ändern scheint nichts zu bringen. 1280*768 wird von meiner Grafikkarte unterstüzt |
||
Mhm, ja hab nichts gutes für die Signatur |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sicher das du nicht 1280*1024 meinst?
MfG |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
Loewe95 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mit nur einem Bild geht 1280*768 genauso gut | ||
Mhm, ja hab nichts gutes für die Signatur |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie wäre es, wenn du uns die Bilder und Dateien zum Testen hinzugibst oder sagst, was alles für Bilder und Dateien gebraucht werden, damit es eigentlich laufen sollte.
Dann wird der Fehler wahrscheinlich schneller gefunden. Außerdem solltest du für Sachen, wie diese am Besten Konstanten nutzen: Code: [AUSKLAPPEN] ;;;;;Flagge;;;;;;
;1. Bild ;2. x ;3. y ;4. Frame ;;;;;;;;;;;; Es könnte nämlich auch gut sein, dass du dabei einen falschen Wert angegeben hast und deshalb ein Fehler passiert. Die Konstanten machen den Code auch noch einmal übersichtlicher, da die Zahlen an sich nichts aussagen können, aber die Namen der Konstanten schon. Übrigens: Arrays fangen bei 0 an. Das heißt, dass du nach der Definition "Dim Array(10)" auf 11 Einträge mit den Indizes 0 bis 10 zugreifen kannst. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group