Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Declare SUB setpalette (slot%, r%, g%, b%)



DECLARE SUB bl10 ()

DECLARE SUB Steps (name$)

DECLARE SUB SetPALETTE (Slot%, R%, G%, B%)

DECLARE SUB memcopy (fromseg%, fromoffset%, toseg%, tooffset%, bytes%)

DIM SHARED Buffer(319, 199) AS STRING * 1

DIM SHARED Pointer AS STRING * 1

DIM SHARED ImageDataSegment(200) AS STRING * 320

DEFINT A-Z

 

CLS

PRINT "Напишешь типа что ща будет показ (в моем случае) занавеса. Рекомендую сразу картинки заранее сделать и показывать с ноута, что бы патом ес что их быстро поправить. У меня переменная mass отвечает за показ 1 из 2х вариантов. Ты можешь сделать больше. Картинки представляют собой кадр из ролика. Количество не ограничено(у меня сделано 18)"

 

DO

LOOP UNTIL INKEY$ <> ""

 

mass = 1

 

DIM Pictures$(1 TO 18)

Pictures$(18) = "18.bmp"

 

IF mass = 1 THEN

Pictures$(1) = "01.bmp"

Pictures$(2) = "02.bmp"

Pictures$(3) = "03.bmp"

Pictures$(4) = "04.bmp"

Pictures$(5) = "05.bmp"

Pictures$(6) = "06.bmp"

Pictures$(7) = "07.bmp"

Pictures$(8) = "08.bmp"

Pictures$(9) = "09.bmp"

Pictures$(10) = "010.bmp"

Pictures$(11) = "011.bmp"

Pictures$(12) = "012.bmp"

Pictures$(13) = "013.bmp"

Pictures$(14) = "014.bmp"

Pictures$(15) = "015.bmp"

Pictures$(16) = "016.bmp"

Pictures$(17) = "017.bmp"

ELSE

Pictures$(1) = "1.bmp"

Pictures$(2) = "2.bmp"

Pictures$(3) = "3.bmp"

Pictures$(4) = "4.bmp"

Pictures$(5) = "5.bmp"

Pictures$(6) = "6.bmp"

Pictures$(7) = "7.bmp"

Pictures$(8) = "8.bmp"

Pictures$(9) = "9.bmp"

Pictures$(10) = "10.bmp"

Pictures$(11) = "11.bmp"

Pictures$(12) = "12.bmp"

Pictures$(13) = "13.bmp"

Pictures$(14) = "14.bmp"

Pictures$(15) = "15.bmp"

Pictures$(16) = "16.bmp"

Pictures$(17) = "17.bmp"

END IF

 

SCREEN 13

FOR i = 1 TO 18

CALL Steps(Pictures$(i))

CALL bl10

NEXT i

 

SUB bl10

FOR i# = 1 TO 1000000 / 2: NEXT i#

END SUB

 

SUB memcopy (fromseg%, fromoffset%, toseg%, tooffset%, bytes%)

asm$ = ""

asm$ = asm$ + CHR$(85)

asm$ = asm$ + CHR$(137) + CHR$(229)

asm$ = asm$ + CHR$(30)

asm$ = asm$ + CHR$(139) + CHR$(70) + CHR$(10)

asm$ = asm$ + CHR$(142) + CHR$(192)

asm$ = asm$ + CHR$(139) + CHR$(70) + CHR$(14)

asm$ = asm$ + CHR$(142) + CHR$(216)

asm$ = asm$ + CHR$(139) + CHR$(118) + CHR$(8)

asm$ = asm$ + CHR$(139) + CHR$(126) + CHR$(12)

asm$ = asm$ + CHR$(139) + CHR$(78) + CHR$(6)

asm$ = asm$ + CHR$(243)

asm$ = asm$ + CHR$(164)

asm$ = asm$ + CHR$(31)

asm$ = asm$ + CHR$(93)

asm$ = asm$ + CHR$(203)

WAIT &H3DA, 8

DEF SEG = VARSEG(asm$)

CALL Absolute(BYVAL fromseg%, BYVAL fromoffset%, BYVAL toseg%, BYVAL tooffset%, BYVAL bytes%, SADD(asm$))

DEF SEG

END SUB

 

SUB SetPALETTE (Slot, R, G, B)

OUT &H3C8, Slot

OUT &H3C9, R

OUT &H3C9, B

OUT &H3C9, G

END SUB

 

SUB Steps (name$)

OPEN name$ FOR BINARY AS #1

GET #1, 54, Pointer

FOR Slot% = 0 TO 255

GET #1,, Pointer

B% = INT(ASC(Pointer) / 4)

GET #1,, Pointer

G% = INT(ASC(Pointer) / 4)

GET #1,, Pointer

R% = INT(ASC(Pointer) / 4)

SetPALETTE Slot%, R%, B%, G%

GET #1,, Pointer

NEXT Slot%

FOR y = 199 TO 0 STEP -1

GET #1,, ImageDataSegment(y)

NEXT

CLOSE

memcopy VARSEG(ImageDataSegment(0)), VARPTR(ImageDataSegment(0)), &HA000, 0, &HFA00

'SYSTEM

END SUB

 

 

 


Дата добавления: 2015-09-30; просмотров: 22 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
QBasic. Есептің шарттын қандай фигура арқылы көрсетеміз: | Declare sub setpalette (slot%, r%, g%, b%)

mybiblioteka.su - 2015-2024 год. (0.013 сек.)