home *** CD-ROM | disk | FTP | other *** search
- REM * ---------------------------------------------------- *
- REM * VERG.INC *
- REM * Diese Routine wird für beide Versionen benötigt *
- REM * ---------------------------------------------------- *
-
- SUB kippen(li, re):
- SHARED feld(), f2(), ko, sp, verg
- FOR i% = 0 TO %fd
- FOR x% = 0 TO %fd
- IF (li <> 0) OR (re <> 0) THEN
- f2(i%, x%) = feld(ABS(x% - li), ABS(i% - re))
- ELSE
- f2(i%, x%) = feld(i%, x%)
- END IF
- FOR e% = 1 TO verg
- FOR f% = 1 TO verg
- IF f2(i%, x%) <> 0 THEN
- PSET(%fd*5 - 120 + ABS(i% - sp)*verg + e%, 2*_
- %fd - 39 + ABS(x% - ko)*verg+f%),f2(i%,x%)
- END IF
- NEXT f%
- NEXT e%
- NEXT x%
- NEXT i%
- END SUB
-
- SUB abfrage:
- SHARED taste$, sp, li, re, ko
- LOCATE 20,1: PRINT "Spiegeln (J/N)";
- DO
- CALL tastatur
- taste$ = UCASE$(taste$)
- LOOP UNTIL taste$ = "J" OR taste$ = "N"
- IF taste$ = "J" THEN sp = %fd
- LOCATE 20,1: PRINT "Drehen (J/N) ";
- DO
- CALL tastatur
- taste$ = UCASE$(taste$)
- LOOP UNTIL taste$ = "J" OR taste$ = "N"
- IF taste$ = "J" THEN
- LOCATE 20,1 : PRINT "Richtung (Uhrzeigersinn) 1/2/3";
- DO
- CALL tastatur
- taste$ = UCASE$(taste$)
- LOOP UNTIL taste$ > "0" AND taste$ < "4"
- SELECT CASE taste$
- CASE "1"
- re = %fd
- CASE "2"
- ko = %fd
- IF sp = 0 THEN sp = %fd ELSE sp = 0
- CASE "3"
- li = %fd
- END SELECT
- END IF
- LOCATE 20,1: PRINT "Vergrößerung (1/2/3) ";
- DO
- CALL tastatur
- taste$ = UCASE$(taste$)
- LOOP UNTIL taste$ > "0" AND taste$ < "4"
- LOCATE 20,1 : PRINT " ";
- END SUB
-
- SUB felderspeichern:
- SHARED feld(), f2(), verg, dateiname$
- IF verg = 1 THEN
- FOR i% = 0 TO %fd
- FOR x% = 0 TO %fd
- feld(i%,x%) = POINT(%fd*5 - 119 + i%,2*%fd-38+x%)
- NEXT x%
- NEXT i%
- EXIT SUB
- END IF
- LOCATE 16,1: PRINT "Dateiname:"
- LOCATE 18,1: INPUT "", datei$
- IF datei$ = "" THEN EXIT SUB
- z = instr(datei$, ".")
- IF z THEN datei$ = left$(datei$, z - 1)
- z = %anf
- FOR dat% = 1 TO 9
- IF (dat% MOD 3 = 1) THEN INCR z,(%fd + 1)
- IF ((verg = 2) AND ((dat% = 1) OR (dat% = 2) OR_
- (dat% = 4) OR (dat% = 5))) OR (verg = 3)_
- THEN
- dateiname$ = datei$ + right$(str$(dat%),1) + ".SPR"
- FOR i% = 0 TO %fd
- FOR x% = 0 TO %fd
- f2(i%,x%) = POINT(%fd*5-119+i%+_
- ((dat%-1) MOD 3)*(%fd+1),z+x%)
- NEXT x%
- NEXT i%
- CALL datei
- END IF
- NEXT dat%
- END SUB
-
- SUB umrandung(a,b):
- LINE(%fd*5-120,2*%fd-39)-(%fd*5-120+b+_
- a*%fd,2*%fd-39+b+a*%fd),15,B
- FOR i%=0 TO %fd*a-2 step 5
- LINE(i%+%fd*5-115,2*%fd-42)-_
- (i%+%fd*5-115,2*%fd-40)
- LINE(%fd*5-121,i%+2*%fd-34)-_
- (%fd*5-123,i%+2*%fd-34)
- NEXT i%
- END SUB
-
- SUB vergroessern:
- SHARED feld(),f2(),taste$
- SHARED sp,li,re,ko,verg
- sp=0:li=0:ko=0:re=0
- CLS:PRINT"Spritevergrößerung:"
- CALL umrandung(3,4)
- FOR i%=0 TO %fd
- FOR x%=0 TO %fd
- PSET(10*%fd-160+i%,2*%fd-40+x%),_
- feld(i%,x%)
- NEXT x%
- NEXT i%
- CALL abfrage
- verg=VAL(taste$)
- CALL kippen(li,re)
- CALL felderspeichern
- CALL bildschirm
- END SUB
-
- REM * ---------------------------------------------------- *
- REM * Ende von VERG.INC *
-