Start | Super Packer | Atari Graphics Studio | Graph2Font | Mads | MadPascal | Atari Zines | YouTube http://madteam.atari8.info  
MEMBERS
PRODUCTIONS
S C E N E
G A M E S
T O O L S
V B X E
GRAPHICS
WORK IN PROGRESS
Bubble Shooter
HARDWARE
Snes2Joy / Pad4Aatari / TOM rev2
Sio2SD / Pajero
Sio2SD / Rocky
Stereo / Pajero
GTIA / Psychol
ANTIC + VBXE test
ARTICLES / MAGAZINES
DEMO EFFECTS
LINKS
   

Marek Turowski
Seans spirytystyczny - wywoływanie duchów na Atari XL/XE (1)
Syzygy #1

Procedura inicjalizacji grafiki P/MG. Należy ją zapisać instrukcją LIST Basica do wykorzystania we własnych programach.

Kolejność postępowania:

  1. Zaprojektować kształty duszków. Szerokość 8 punktów, wysokość nawet do 255 punktów. Przeliczyć na bajty danych.

  2. Wpisać dane duszków w wiersze DATA od 32100 do 32130.

  3. W wierszach od 31070 do 31100 w miejsce liczby 16 wpisać wysokość zaprojektowanych duszków.

  4. W wierszu 31110 ustalić kolory.

    Wzór: POKE 704,n

    gdzie n=16*k+l;
    k - nr koloru (0-15),
    l - jasność (0-15).

Kolejność wykonywania procedur we własnych programach:

  1. Uruchomić procedurę P/MG (GOSUB 31000).

  2. Narysować planszę (w przykładzie wiersze od 15 do 20).

  3. Ustalić parametry duszków (wiersze od 30 do 70).

Dalej następuje właściwy program. W przykładzie zastępują go wiersze od 90 do 130 realizujące przypadkowy ruch duszków. Duszkami poruszamy wpisując instrukcją POKE odpowiednie wartości do komórek PLX+n i PLY+n, gdzie n - nr duszka (0-3). Wartości te dla duszka na ekranie wynoszą: PLX od 48 do 200, PLY od 28 do 215.

UWAGI:
Procedura nie pozwala na użycie pocisków. Każdy duszek może być innej wysokości. Jeżeli nie wykorzystujemy wszystkich duszków, usuwamy z programu odpowiednie wiersze (np. dla duszka nr 3 są to 31100 i 32130) i umieszczamy go poza ekranem wpisując w wierszu 70 wartości 0,0.
BHP:
Każdorazowo po użyciu instrukcji GRAPHICS należy wykonać POKE 559,62 (patrz wiersze 15 i 31040). Przy testowaniu własnych programów po naciśnięciu klawisza Break, a przed RUN należy zresetować komputer lub zamiast RUN wykonać GOTO do pierwszego wiersza po GOSUB 31000 (w przykładzie GOTO 20).

W następnym numerze: priorytety i kolizje. Program maszynowy: Tom Sak i Sid Meier.

Marek Turowski


10 GOSUB 31000
15 GRAPHICS 2+16:POKE 559,62
20 FOR I=0 TO 239:? #6;"."5:NEXT I
30 POKE PLL,16:POKE PLL+1,16:POKE PLL+2,16:POKE PLL+3,16:REM WYSOKOSC GRACZY
60 POKE PLX,100:POKE PLY,100:REM POZYCJA WYJSCIOWA GRACZA 0
50 POKE PLX+1,110:POKE PLY+1,100:REM POZYCJA WYJSCIOWA GRACZA 1
60 POKE PLX+2,150:POKE PLY+2,150:REM POZYCJA WYJSCIOWA GRACZA 2
70 POKE PLX+3,160:POKE PLY+3,150:REM POZYCJA WYJSCIOWA GRACZA 3
80 REM TANIEC GRACZY
90 FOR I=0 TO 3
100 POKE PLX+I,RND(0)*150+50:POKE PLY+I,RND(0)*180+30
110 NEXT I:FOR I=0 TO 100:NEXT I:GOTO 80
31000 RME INICJALIZACJA P/MG
31010 FOR I=1536 TO 1706:READ D:POKE I,D:NEXT I
31020 FOR I=1776 TO 1787:POKE I,0:NEXT I
31040 PMBASE=PEEK(106)-16:POKE 106,PMBASE:GRAPHICS 0:POKE 553,62
31050 PM=PMBASE*256
31060 FOR I=PM+1024 TO PM+2048:POKE I,0:NEXT I
31070 RESTORE 32100:PL0=PM+1024:FOR J=PL0+1 TO PL0+16:READ A:POKE J,0:NEXT J
31080 RESTORE 32110:PL1=PM+1280:FOR J=PL1+1 TO PL1+16:READ A:POKE 1,0:NEXT J
31090 RESTORE 32120:PL2=PM+1536:FOR J=PL2+1 TO PL2+16:READ A:POKE 1,0:NEXT J
31100 RESTORE 32130:PL3=PM+1792:FOR J=PL3+1 TO PL3+16:READ A:POKE 1,0:NEXT J
31110 POKE 706,30:POKE 765,86:POKE 706,126:POKE 707,170
31120 PLX=53248:PLY=1780:PLL=1786
31130 POKE 623,1:POKE 54279,PMBASE:POKE 53277,3:POKE 1788,PMBASE+4
31160 X=USR(1696)
31150 RETURN
32000 DATA 162,3,189,266,6,260,89,56,221,260,6,260,83,141,254,6,106,161
32010 DATA 255,6,142,253,6,26,163,0,103,253,6,26,109,252,6,133,204,133
32020 DATA 206,189,260,6,133,203,173,254,6,133,205,183,268,6,170,232,46,255
32030 DATA 6,164,16,168,177,203,165,205,169,0,165,203,136,202,208,244,76,87
32040 DATA 6,160,6,177,203,145,205,169,0,145,203,200,202,208,244,174,253,6
32050 DATA 173,254,6,157,240,6,189,236,6,240,48,133,203,24,138,141,253,6
32060 DATA 109,235,6,133,204,24,173,253,6,109,252,6,133,206,139,240,6,133
32070 DATA 205,183,248,6,170,160,0,177,203,145,265,260,202,203,268,174,253,6
32080 DATA 163,6,157,236,6,262,48,3,76,2,6,76,38,228,0,0,164,163
32090 DATA 7,162,6,160,6,32,92,228,96
32095 REM DANE DLA GRACZY 0-3
32100 DATA 6,6,8,126,195,195,195,195,135,195,195,195,195,195,195,126
32110 DATA 24,66,126,26,255,255,219,219,255,189,213,135,162,126,66,24
32120 DATA 24,96,96,66,66,153,126,24,60,90,153,165,36,66,66,66
32130 DATA 6,66,36,24,6,255,123,129,129,129,123,123,129,255,36,66
 

madteam.atari8.info © MadTeam, hosted: www.atari8.info