깃발 올린 스프라이트 만들기

flag-sprite-up.bas

원래 파일
LAN/QB/PCXLIB/MDATAUP.BAS
날짜
1995-02-13
크기
1,939바이트, 63줄
저장 형식
CP949 텍스트를 UTF-8로 바꿈
내려받기
flag-sprite-up.bas (UTF-8)

설명

깃발 내린 스프라이트 만들기와 같은 일을 C:\FLAG\UPBN.GIF에 합니다.
깃발을 올린 그림이 더 길어서 잘라 내는 영역이 77×175이고 배열도 더 큽니다.
결과는 bu.spr, wu.spr입니다.

소스

DECLARE SUB GIFLOAD (GIFFILENAME$)REM $INCLUDE: 'C:\LAN\QB\PCXLIB\SVGAQB10.BI'DEFINT A-ZDIM SHARED bu(6741) AS INTEGERDIM SHARED wu(6741) AS INTEGERDIM SHARED GIFPAL AS STRING * 768  IF WHICHVGA = 0 THEN STOP  IF WHICHMEM < 512 THEN STOP  VMODE = VIDEOMODEGET  RES640  GIFLOAD "C:\FLAG\upbn.GIF "blkget 416, 43, 492, 217, bu(0)blkget 545, 43, 621, 217, wu(0)DEF SEG = VARSEG(bu(0))BSAVE "bu.spr", VARPTR(bu(0)), 13484DEF SEGDEF SEG = VARSEG(wu(0))BSAVE "wu.spr", VARPTR(wu(0)), 13484DEF SEG WHILE INKEY$ = "" WEND VIDEOMODESET VMODE PRINT "It's demo version of flag game programmed by Jung-Sang-Hyuk"DEFSNG A-ZSUB GIFLOAD (GIFFILENAME$)            DEFINT A-Z            OK = GIFGETINFO(GIFFILENAME$, XSIZE, YSIZE, NUMCOL, GIFPAL)            IF OK = 1 THEN                FIXIT = 0                FOR A = 1 TO NUMCOL * 3 STEP 3                    R = ASC(MID$(GIFPAL, A, 1))                    G = ASC(MID$(GIFPAL, A + 1, 1))                    B = ASC(MID$(GIFPAL, A + 2, 1))                    IF R > 63 THEN                        FIXIT = 1                        EXIT FOR                    END IF                    IF G > 63 THEN                        FIXIT = 1                        EXIT FOR                    END IF                    IF B > 63 THEN                        FIXIT = 1                        EXIT FOR                    END IF                NEXT A                IF FIXIT = 1 THEN                    FOR A = 1 TO NUMCOL * 3                        C = ASC(MID$(GIFPAL, A, 1))                        MID$(GIFPAL, A, 1) = CHR$(C \ 4)                    NEXT A                END IF                PALSET GIFPAL, 0, 255                OK = GIFPUT(1, 0, 0, GIFFILENAME$)                IF OK <> 1 THEN                    SOUND 100, 5                END IF            END IFEND SUB