středa 31. srpna 2005

Animace - díl šestý: The Final Countdown

autor: George K.

6.1 Animační menu '93

Než nadobro šestým dílem skončí seriál AnimAce, chtěl bych vás seznámit s mojí nabídkou pro eventuální AnimAci II, která se (bude-li zájem) může objevit v příštím ročníku ZX Magazínu. Seriál by se týkal výhradně sprajtové grafiky - časování sprajtů, synchronizace kreslení s přerušením, co nejrychlejších kreslících rutin, inteligentní nadstavby sprajtovacích rutin a dalších specialit, které jsem "objevil" za posledních pár let, kdy se o sprajty zajímám, a o které bych se s vámi rád podělil. Obsah seriálu by měl vést k tomu, aby člověk, který si ho důkladně prostuduje a pochopí, byl schopen napsat celkem kvalitní kostru akční hry, kterou někdo "obalí" neméně kvalitní grafikou - věřím tomu, že se to stane a že i u nás budou vznikat hry na úrovni RoboCopa, Cobry a dalších.
Uvítám i jakékoliv další animační náměty, o kterých by se dalo psát - snad kromě vektorové grafiky, o kteroužto jsem se doposud nezajímal, neboť mě nebaví hrát hry typu Diller (i když se o nich právem tvrdí, že jsou vysoce kvalitní); ale kdyby byl extra zájem... tak proč ne.
Abyste neřekli, že diskriminuji příznivce basicu, naposledy se k němu vrátím - proto následuje:

6.2 Novoroční překvapení

Toto je tedy můj dáreček všem čtenářům ZX Magazínu, věnovaný u příležitosti Nového roku, Nového státu, Štátu a Nového Oldřicha (cha, cha).
Prográmek přepište, pro jistotu se nejdříve posaďte a pak teprve spusťte (RUN). V proměnné S je převrácená velikost rychlosti pohybu (čím větší, tím pomalejší) - lze ji téměř libovolně měnit. Zbývá už jenom dodat, že autorem obrázku je Alex Cossac, zbytek mám na svědomí já a nad všemi pracemi dohlížela Fanča.
Silné nervy!
10 REM hotovka21
  30 LET v=SGN PI: LET s=2: LET z= BIN : LET l3=69: LET l1=l3: LET l2=6: LET l4=9
  35 LET a$="Jste Miroslav Hlavicka? A/N": GO SUB 2100
  40 LET mh= BIN : IF i$="a" THEN LET mh= SGN PI
  50 GO SUB 1000
  90 LET a$="STISKNI KLAVESU": GO SUB 2100: GO TO 180
 105 GO SUB 1505
 120 LET z=z+1: IF z=s THEN LET z=0: GO SUB 2000
 180 GO SUB 1510
 185 IF l1<>l4 THEN GO TO 105
 190 GO SUB 1505: IF dx THEN GO SUB 1510: GO TO 190
 195 IF l4=69 THEN LET i$="n": GO TO 205
 200 LET a$="NATAHNOUT? A/N": GO SUB 2100
 205 IF i$="n" THEN LET l4=69*(l4=9)+9*(l4=69): GO TO 230
 210 IF i$<>"a" THEN GO TO 200
 215 RESTORE 5010: LET l1=l1+v: LET l2=l2+v: LET v=-v
 220 IF dx<>-11 THEN GO SUB 1510: GO SUB 1505
 225 GO SUB 2000: IF l1
 230 LET l1=l1+v: LET l2=l2+v: LET v=-v: GO TO 90
1000 RESTORE 5100: GO SUB 2200
1060 FOR k=81 TO 71 STEP -1
1070 PLOT 130,k: DRAW 6,0
1080 NEXT k
1500 RESTORE
1505 READ dx,dy: IF NOT dy THEN GO TO 1500
1510 PLOT 128,88: DRAW dx, dy
1515 RETURN
2000 PLOT 123,88-l1
2010 LET l1=l1-v: LET l2=l2+v
2020 PLOT 133,88-l2: PLOT 130,88-l2: DRAW 6,0
2030 PLOT 130,77-l2: DRAW 6,0
2040 RETURN
2100 PRINT # BIN ; AT BIN ,(32-LEN a$)/2;a$
2105 LET i$=INKEY$ : IF i$="" THEN GO TO 2105
2110 PRINT # BIN ; AT BIN , BIN ;"                                ":
 REM v uvozovkach je 32 mezer
2115 RETURN
2200 READ c0
2205 IF c0=259 THEN RETURN
2210 READ c1
2215 IF c0<256 THEN DRAW c0,c1: GO TO 2200
2220 READ c2
2225 IF c0=256 THEN PLOT c1,c2: GO TO 2200
2230 READ c3
2235 IF c0=257 THEN CIRCLE c1,c2,c3: GO TO 2200
2240 GO TO 2200
5000 DATA -12,-23,-11,-24,-9,-26,-8,-27,-6,-28,-4,-29,-3,-29,-1,-29,0,-29,2,
 -29,4,-29,5,-28,7,-27,9,-26,10.-25,12,-23,13,-22
5005 DATA 12,-23,10,-25,9,-26,7,-27,5,-28,4,-29,2,-29,0,-29
5010 DATA -1,-29,-3,-29,-4,-29,-6,-28,-8,-27,-9,-26,-11,-24,0,0
5100 DATA 256,111,89,34,0,0,43,-34,0,0,-43,256,100,120,28,30,28,-30,257,
 127,110,13,256,127,110,0,8,256,127,109,-4,11
5105 DATA 256,123,88,0,-l1,256,133,88,0,-l2,256,142,136,0,13,-6,0,0,-7,256,114,
 136,0,20,256,109,155,10,0,256,106,152,16,0,256,104,149,18,0,256,109,146,10,0
5110 DATA 258,mh,1,5115,256,256,128,132,8,9,-15,0,8,-9,256,128,132,258,mh,0,5120
5115 DATA 256,136,142,-8,-10,-8,10,256,128,148,0,-15
5120 DATA 257,44,135,15,257,40,140,3,257,52,140,3,256,46,137,3,-6,-2,0,
 256,40,132,0,-3,4,-4,5,0,257,41,140,1,257,53,140,1
5130 DATA 256,44,154,0,10,256,44,116,0,-10,256,64,135,10,0,256,24,135,-10,
 0,256,41,145,3,0,1,-2,256,48,143,2,2,3,0
5140 DATA 256,30,123,-8,-8,256,60,147,8,8,256,32,148,-8,8,256,60,122,8,-8
5150 DATA 256,39,128,-2,-3,1,-1,2,0,2,2
5190 DATA 259 
 
A kdo to neopíše, ten Fanču, Cossaca i mě pěkně naštve!!!