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

flag-sprite-down.bas

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

설명

C:\FLAG\DOWNBN.GIF를 띄우고 청기와 백기를 내린 부분을 BLKGET으로 잘라 BSAVE합니다.
청기는 bd.spr, 백기는 wd.spr가 되고 청기백기가 이 파일을 BLOAD해서 씁니다.
SPR 파일에는 팔레트가 없어서 같은 팔레트의 화면(DGI.GIF) 위에서만 제 색이 나옵니다.
깃발 올린 스프라이트 만들기는 이 파일을 복사해 좌표와 파일 이름만 바꾼 것입니다.

소스

DECLARE SUB GIFLOAD (GIFFILENAME$)REM $INCLUDE: 'C:\LAN\QB\PCXLIB\SVGAQB10.BI'DEFINT A-ZDIM SHARED bd(5586) AS INTEGERDIM SHARED wd(5586) AS INTEGERDIM SHARED GIFPAL AS STRING * 768  IF WHICHVGA = 0 THEN STOP  IF WHICHMEM < 512 THEN STOP  VMODE = VIDEOMODEGET  RES640  GIFLOAD "C:\FLAG\DOWNBN.GIF "blkget 416, 109, 492, 253, bd(0)blkget 545, 109, 621, 253, wd(0)DEF SEG = VARSEG(bd(0))BSAVE "bd.spr", VARPTR(bd(0)), 11174DEF SEGDEF SEG = VARSEG(wd(0))BSAVE "wd.spr", VARPTR(wd(0)), 11174DEF 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