Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Lukas-P
Beiträge: 262 Registriert: 07.10.2004 12:03
Beitrag
von Lukas-P » 04.11.2004 13:38
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!!!!
Danilo
-= Anfänger =-
Beiträge: 2284 Registriert: 29.08.2004 03:07
Beitrag
von Danilo » 04.11.2004 13:44
Auf den ersten Blick fehlt ExamineKeyboard() und das
überprüfen von Rückgabewerten.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
bluejoke
Beiträge: 1244 Registriert: 08.09.2004 16:33
Kontaktdaten:
Beitrag
von bluejoke » 04.11.2004 13:48
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.
freedimension
Admin
Beiträge: 1987 Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:
Beitrag
von freedimension » 04.11.2004 13:50
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
Beginne jeden Tag als ob es Absicht wäre!
BILDblog
Lukas-P
Beiträge: 262 Registriert: 07.10.2004 12:03
Beitrag
von Lukas-P » 04.11.2004 13:54
das examinekeyboard() hab ich gerade ausversehen weg gemacht, im Code bei mir is das aber noch drinn.
Danilo
-= Anfänger =-
Beiträge: 2284 Registriert: 29.08.2004 03:07
Beitrag
von Danilo » 04.11.2004 13:56
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.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Lukas-P
Beiträge: 262 Registriert: 07.10.2004 12:03
Beitrag
von Lukas-P » 04.11.2004 14:24
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)