Thorben
Anmeldungsdatum: 26.04.2005 Beiträge: 173 Wohnort: SH
|
Verfasst am: 24.05.2005, 20:28 Titel: Problem mit Programmierung eines Spriteeditors |
|
|
Hallo
Also ich hab hier begonnen einen Spiriteditor zu Programmieren
funktioniert er nicht ordnungs gemäß. Nachdem mann ein paar Teile gemalt hat Funktionieren die Tastenabfrage mit INKEY$ nicht mehr
möchte mann dann das Bild Speichern und klickt auf das Feld zum Speichern passiert nichts und mann kann weder weiter Malen noch
Ihrgend etwas anderes tun.
Hab ich hier einen Fehler gemacht oder ist da was anderes nicht inordnung??
Code: | DECLARE SUB TD.INPUT(Text$,Ty,Tx,max.text,Fa)
screen 20,256,2,1
NeuesBild::CLS
AufrufsNr=00
Xraster =15
Yraster =100
FeldGrX =08
FeldGrY =07
Farbe =10
GOSUB Hintergrund
Do
KEY$=INKEY$
IF KEY$ = chr$(27) THEN EXIT DO
IF KEY$ = "f" or KEY$ = "F" THEN GOTO FarbAuswahl
IF KEY$ = "s" or KEY$ = "S" THEN GOTO Speichern
IF KEY$ = "l" or KEY$ = "L" THEN GOTO Laden
IF MT% = 0 THEN STATUSButton = 0
Getmouse(MX%,MY%,,MT%)
IF MT%=1 then
IF MX% > 200 +FeldGrX AND MX% < 200 + Xraster * FeldGrX + FeldGrX AND MY% > 10 + FeldGrY AND MY% < 10 + Yraster * (FeldGrY) + FeldGrY THEN
PAINT (MX%,MY%), Farbe, 8: gosub Ansicht
END IF
IF MX% > 20 AND MX% < 120 AND MY% > 153 AND MY% < 183 AND STATUSButton = 0 THEN GOTO NeuesBild
IF MX% > 20 AND MX% < 120 AND MY% > 248 AND MY% < 278 AND STATUSButton = 0 THEN Gosub Speichern
IF MX% > 20 AND MX% < 120 AND MY% > 343 AND MY% < 373 AND STATUSButton = 0 THEN Gosub Laden
IF MX% > 20 AND MX% < 120 AND MY% > 440 AND MY% < 470 AND STATUSButton = 0 THEN EXIT DO
IF MX% > 20 AND MX% < 120 AND MY% > 55 AND MY% < 85 THEN
FarbAuswahl: AusFar=0:STATUSButton = 1
FOR YF= 1 to 480 step 15
FOR XF = 1 to 120 step 15
AusFar=AusFar+1
line (XF+10,YF+100)-step(15,15),AusFar,BF
next XF
NEXT YF
DO
KEY$=INKEY$
IF KEY$ = CHR$(27) THEN EXIT DO
Getmouse(MX%,MY%,,MT%)
For XFT = 1 to 120 step 15
FOR YFT = 1 to 480 step 15
IF MX% > XFT+10 AND MX% < XFT+25 AND MY% > YFT+100 AND MY% < YFT+115 and MT%=1 THEN
Farbe=(XFT/15)+8*(YFT/15):Ext=1
END IF
NEXT YFT
NEXT XFT
LOOP UNTIL Ext=1:Ext=0
Line (10,100)-step(125,485),0,BF:gosub Hintergrund
color Farbe:locate 5,5:print "Farbe";Farbe
END IF
END IF
IF MT%=2 then
IF MX% > 200 +FeldGrX AND MX% < 200 + Xraster * FeldGrX + FeldGrX AND MY% > 10 + FeldGrY AND MY% < 10 + Yraster * (FeldGrY) + FeldGrY THEN
PAINT (MX%,MY%), 0, 8: gosub Ansicht
END IF
END IF
LOOP
Ansicht:
for XAr = 1 to Xraster
for YAr = 1 to Yraster
pset (XAr+(90-(Xraster/2)),YAr+600),point (XAr*FeldGrX+(200+(FeldGrX/2)),YAr*FeldGrY+(10+FeldGrY/2))
next YAr
next XAr
RETURN
Speichern:
TD.INPUT File$,26,2,15,9
open File$+".TD" for output as #1
write #1,Xraster,Yraster
for XAr = 1 to Xraster
for YAr = 1 to Yraster
write #1,point (XAr*FeldGrX+(200+(FeldGrX/2)),YAr*FeldGrY+(10+FeldGrY/2))
next YAr
next XAr
RETURN
Laden::AufrufsNr=0
TD.INPUT File$,26,2,15,9
open File$+".TD" for input as #1
INPUT #1,Xraster,Yraster
CLS:GOSUB Hintergrund
for XAr = 1 to Xraster
for YAr = 1 to Yraster
INPUT #1, FaBi:paint(XAr*FeldGrX+(200+(FeldGrX/2)),YAr*FeldGrY+(10+FeldGrY/2)),FaBi,8
next YAr
next XAr
RETURN
Hintergrund:
IF AufrufsNr=0 THEN
For Xras = 1 to Xraster
FOR Yras = 1 to Yraster
LINE (Xras*FeldGrX+200,Yras*(FeldGrY)+10)-step(FeldGrX,FeldGrY),8,B
Next Yras
Next Xras
END IF:AufrufsNr=1
'Farbauswahl
Line (20,55)-step(100,30),15,B
color Farbe:locate 5,5:print "Farbe" ;Farbe
Line (20,153)-step(100,30),15,B
color 15:locate 11,5:print "Neues Bild"
Line (20,248)-step(100,30),15,B
color 15:locate 17,5:print "Speichern"
Line (20,343)-step(100,30),15,B
color 15:locate 23,7:print "Laden"
Line (20,440)-step(100,30),15,B
color 15:locate 29,6:print "Beenden"
'Asichts Fenster
Line (90-(Xraster/2),600)-step(Xraster+1,Yraster+1),15,B
RETURN
end
SUB TD.INPUT(kurtz.text$,namY,namX,max.text,Fa) : DIM Sav$(max.text)
FOR Be = 1 TO max.text: LOCATE namY, namX + Be: PRINT "-": NEXT Be
DO
DO
Key$ = INKEY$
LOOP WHILE Key$ = ""
IF Key$ = CHR$(13) THEN EXIT DO
IF Key$ = CHR$(8) THEN
IF Del = 1 THEN
Num = Num - 1: Key$ = "-"
ELSE
Num = Num: Del = 1: Key$ = "-"
END IF
ELSE
Num = Num + 1: Del = 0
END IF
IF Num <= 0 THEN Num = Num + 1
IF Num > max.text THEN Num = Num - 1
IF Sav$(Num - 1) = "-" THEN Num = Num - 1
Sav$(Num) = Key$
LOCATE namY, namX + Num
COLOR Fa: PRINT Sav$(Num)
LOOP
FOR Num = 1 TO max.text
IF Sav$(Num) = "-" THEN Sav$(Num) = ""
kurtz.text$ = kurtz.text$ + Sav$(Num)
NEXT Num
END SUB |
|
|