Seite 1 von 1
Abstürtze
Verfasst: 04.11.2004 13:38
von Lukas-P
Ich hab da ma ein Problem. Wenn ich diesen Code Complimiere stürtzt das Prog nach einer Zeit ab. Wieso??
Code: Alles auswählen
InitSprite()
InitMouse()
InitKeyboard()
OpenWindow(1,100,100,640,480,0,"L-P ImageEditor")
OpenWindowedScreen(WindowID(),0,0,640,480,0,0,0)
LoadImage(1,"pinsel/1.bmp")
pinselgros=ImageID()
Structure malen_struc
x.w
y.w
EndStructure
NewList malen.malen_struc()
Repeat
FlipBuffers()
ExamineMouse()
If MouseButton(1)
AddElement(malen())
malen()\x=MouseX()
malen()\y=Mousey()
EndIf
StartDrawing(ScreenOutput())
ForEach malen()
DrawImage(pinselgros,malen()\x,malen()\y)
Next malen()
StopDrawing()
Delay(10)
Until KeyboardPushed(#PB_Key_Escape)
Danke schonmal im Voraus!!!!
Verfasst: 04.11.2004 13:44
von Danilo
Auf den ersten Blick fehlt ExamineKeyboard() und das
überprüfen von Rückgabewerten.
Verfasst: 04.11.2004 13:48
von bluejoke
Wenn du das Programm mal im Debug-Modus ausprobierst wirst du schnell sehen, dass du ExamineKeyboard() vergessen hast.
Füg das einfach for deinem Until KeyboardPushed... ein.
Jetzt funktioniert immerhin das Beenden.
Mehr kann ich dir nicht helfen.
EDIT: Na toll! da weiß man mal was los ist, und kriegt nicht einmal die chance es zu beweisen.
Verfasst: 04.11.2004 13:50
von freedimension
Schalt mal den Debugger an
Der spuckt mir direkt als erstes aus, dass ein ExamineKeyboard() fehlt. Als nächstes dann das Bild, aber das ist ja klar, hab ich ja nicht. Schnell durch ein CreateImage ersetzt tätigt aber das selbe Ergebnis, Programm stürZt ab
Kenn mich leider zu wenig mit Screen-Programmierung aus
Verfasst: 04.11.2004 13:54
von Lukas-P
das examinekeyboard() hab ich gerade ausversehen weg gemacht, im Code bei mir is das aber noch drinn.
Verfasst: 04.11.2004 13:56
von Danilo
Auf den 2. Blick seh ich noch das es ein WindowedScreen ist,
also fehlt die Event-Verarbeitung mit WindowEvent().
Das dürfte auch der Grund für den Abstürz sein.
Trotzdem solltest Du die Rückgabewerte alle überprüfen,
vom Initialisieren über Screen öffnen, Image laden usw..
Path-Angaben wie "pinsel/1.bmp" sehen nach Linux aus,
hab aber gehört (jedoch nicht überprüft) das es auf Windows
auch so geht.
Da hilft es eben auch die Rückgabewerte zu checken, z.B. ob
das Bild geladen werden konnte.
Verfasst: 04.11.2004 14:24
von Lukas-P
Ay danke jetzt klappt es. Das sieht jetzt so aus:
Code: Alles auswählen
InitSprite()
InitMouse()
InitKeyboard()
OpenWindow(1,100,100,640,480,0,"L-P ImageEditor")
OpenWindowedScreen(WindowID(),0,0,640,480,0,0,0)
LoadImage(1,"pinsel/1.bmp")
pinselgros=ImageID()
Structure malen_struc
x.w
y.w
EndStructure
NewList malen.malen_struc()
Repeat
FlipBuffers()
If WindowEvent()=#PB_Event_Repaint
else
ExamineMouse()
If MouseButton(1)
AddElement(malen())
malen()\x=MouseX()
malen()\y=Mousey()
EndIf
StartDrawing(ScreenOutput())
ForEach malen()
DrawImage(pinselgros,malen()\x,malen()\y)
Next malen()
StopDrawing()
Delay(10)
endif
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)