home *** CD-ROM | disk | FTP | other *** search
- REM * ---------------------------------------------------- *
- REM * GRB.INC *
- REM * Include-File für beide Versionen *
- REM * ---------------------------------------------------- *
-
- SUB grbausgeben:
- SHARED daten%(),dateiname()
- SCREEN %schirm
- CLS : CALL farben
- CALL umrandung(3,4)
- z = %anf
- FOR dat% = 1 TO 9
- IF (dat% MOD 3 = 1) THEN INCR z, (%fd + 1)
- IF dateiname(dat%) THEN
- FOR i% = 0 TO %fd
- FOR x% = 0 TO %fd
- PSET(%fd*5 - 119 + i% + ((dat% - 1) MOD 3)_
- *(%fd + 1), z + x%), daten%(dat%, i%, x%)
- NEXT x%
- NEXT i%
- END IF
- NEXT dat%
- PRINT CHR$(7);
- END SUB
-
- SUB aufbau:
- SHARED dateiname()
- SCREEN 0:WIDTH 80
- CLS:COLOR(6)
- PRINT "Die Sprites werden in der Reihenfolge"
- PRINT "geladen, wie das rechts ausgegebene"
- PRINT "Feld numeriert ist."
- PRINT "Wird ein Feld nicht benötigt,<N> ein-"
- PRINT "geben. Keine Eingabe bei Dateiwahl ="
- PRINT "Programmabbruch."
- LOCATE 11,44: PRINT "╔═══════╤═══════╤═══════╗"
- LOCATE 12,44: PRINT "║ │ │ ║"
- LOCATE 13,44: PRINT "║ 1 │ 2 │ 3 ║"
- LOCATE 14,44: PRINT "║ │ │ ║"
- LOCATE 15,44: PRINT "╟───────┼───────┼───────╢"
- LOCATE 16,44: PRINT "║ │ │ ║"
- LOCATE 17,44: PRINT "║ 4 │ 5 │ 6 ║"
- LOCATE 18,44: PRINT "║ │ │ ║"
- LOCATE 19,44: PRINT "╟───────┼───────┼───────╢"
- LOCATE 20,44: PRINT "║ │ │ ║"
- LOCATE 21,44: PRINT "║ 7 │ 8 │ 9 ║"
- LOCATE 22,44: PRINT "║ │ │ ║"
- LOCATE 23,44: PRINT "╚═══════╧═══════╧═══════╝"
- COLOR(12): z = 9
- FOR v% = 1 TO 9
- IF ((v% - 1) MOD 3 = 0) THEN INCR z, 4
- IF dateiname(v%) THEN
- LOCATE z, 47 + ((v% - 1) MOD 3)*8
- PRINT v%;
- END IF
- NEXT v%
- COLOR(15)
- END SUB
-
- SUB datazeile:
- SHARED spr%(),pal%()
- PRINT"Skala: 1 = 5, 2 = 10, 3 = 15, usw."
- 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)
- datei$ = left$(datei$, 8) + ".DTA"
- LOCATE 20,1
- INPUT "Breite des Sprites: ";b
- INPUT "Höhe des Sprites: ";h
- IF h = 0 OR b = 0 THEN EXIT SUB
- IF h < 5 THEN h = 5 : IF b < 5 THEN b = 5
- IF h > 3*(%fd + 1) THEN h = 3*(%fd + 1)
- IF b > 3*(%fd + 1) THEN b = 3*(%fd + 1)
- GET (%fd*5 - 119, %anf + %fd + 1)-_
- (%fd*5 - 120 + b, %anf + %fd + h),spr%
- PUT (%fd*6, %anf + %fd + 1), spr%
- LINE(%fd*6 - 1, %anf + %fd) - (%fd*6 +b,_
- %anf + %fd + h + 1), 15, B
- '----------------------------------------
- ' Zu 99% reicht hier eine Dimensionierung
- ' von ca 50%, jedoch nicht immer
- ' Es bleibt jedem selbst überlassen, die
- ' Größe von <bz%> zu ändern.
- '----------------------------------------
- bz% = 4 + int((b * %pix + 7) / 8) * h
- '----------------------------------------
- OPEN datei$ FOR OUTPUT AS #1
- IF %fd = 44 THEN
- PRINT #1, "Palettendaten:"
- PRINT #1, "DIM p%(15)"
- PRINT #1, "FOR i%=0 TO 15"
- PRINT #1, " READ p%(i%)"
- PRINT #1, "NEXT i%"
- PRINT #1, "PALETTE USING p%(0)"
- PRINT #1, "RETURN"
- PRINT #1, "" : PRINT #1, "DATA ";
- FOR i% = 0 TO 15
- PRINT #1, pal%(i%);
- IF i% <> 15 THEN PRINT #1, ",";
- NEXT i%
- PRINT #1, ""
- END IF
- PRINT #1, "REM ";datei$
- PRINT #1, "REM DIMensionierung: ";bz%
- PRINT #1, "DATA ";
- zahl% = 0
- FOR i% = 0 TO bz%
- z$ = STR$(spr%(i%))
- IF LEFT$(z$,1) = CHR$(32) THEN_
- z$ = RIGHT$(z$,LEN(z$)-1)
- PRINT #1,z$;
- IF i% <> bz% THEN PRINT #1, ",";
- INCR zahl%,(LEN(z$) + 1)
- IF (i% <> 0) AND (i% <> bz%) AND (zahl% >= 60) THEN
- PRINT #1, "_"
- PRINT #1, " ";
- zahl% = 0
- END IF
- NEXT i%
- CLOSE #1
- z = instr(datei$, ".")
- datei$ = left$(datei$, z - 1) + ".FIL"
- OPEN datei$ AS #1 LEN = 2
- FIELD #1, 2 AS sp$
- spzaehler% = 0
-
- REM -----------------------------------
- REM Die EGA-Karte braucht die
- REM eingerahmten Zeilen nicht
-
- IF %fd = 44 THEN
- FOR i% = 0 TO 15
- INCR spzaehler%
- LSET sp$ = MKI$(pal%(i%))
- PUT #1, spzaehler%
- NEXT i%
- END IF
-
- REM -----------------------------------
-
- INCR spzaehler%
- LSET sp$ = MKI$(bz%)
- PUT #1, spzaehler%
- FOR i% = 0 TO bz%
- INCR spzaehler%
- LSET sp$ = MKI$(spr%(i%))
- PUT #1, spzaehler%
- NEXT i%
- CLOSE #1
- END SUB
-
-
- SUB grossbild:
- SHARED dateiname(), taste$, dateiname$
- SHARED daten%(), f2(), pal%(), p%(), spr%()
-
- REM -----------------------------------
- REM Die EGA-Karte braucht die
- REM eingerahmten Zeilen nicht
-
- IF %fd = 44 THEN
- FOR i% = 0 TO 15
- p%(i%) = pal%(i%)
- NEXT i%
- END IF
- '--------------------------------------
-
- FOR i% = 1 TO 9
- dateiname(i%) = %false
- NEXT i%
- CALL aufbau
- FOR dat% = 1 TO 9
- LOCATE 22,1 : PRINT dat% ". Feld laden (J/N)";
- DO
- CALL tastatur
- taste$ = UCASE$(taste$)
- LOOP UNTIL taste$ = "J" OR taste$ = "N"
- IF taste$ = "J" THEN
- dateiname(dat%) = %true
- CLS: CALL laden
- IF dateiname$ = "" THEN dat% = 9
- IF dateiname$ <> "" THEN
- FOR i% = 0 TO %fd
- FOR x% = 0 TO %fd
- daten%(dat%,i%,x%) = f2(i%,x%)
- NEXT x%
- NEXT i%
- CALL aufbau
- END IF
- END IF
- NEXT dat%
- abbruch = %true
- FOR i% = 1 TO 9
- IF dateiname(i%) THEN abbruch = %false
- NEXT i%
- IF abbruch or dateiname$ = "" THEN
- CALL bildschirm
- EXIT SUB
- END IF
- CALL grbausgeben
-
- REM -----------------------------------
- REM Die EGA-Karte braucht die
- REM eingerahmten Zeilen nicht
-
- IF %fd = 44 THEN
- FOR i% = 0 TO 15
- pal%(i%) = p%(i%)
- NEXT i%
- END IF
- REM -----------------------------------
-
- GET(%fd*5 - 119, %anf + %fd + 1) - (%fd*5 - 117_
- + 3*%fd, %anf + %fd + 3*%fd + 2), spr%
- CALL DATAzeile
- CALL farben
- CALL bildschirm
- END SUB
-
- REM * ---------------------------------------------------- *
- REM * Ende von GRB.INC *