The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
COCHES & CICLOPES (Y SATURNO)
#7
As promised here goes the tweaked version of the cyclops game.

I decided to go with this "demo" versión because the code of the original game is very similar to the one in the cars, so the interest in it should be even lower Smile

On top of that, this version lets me show the true purpose of the sprite routine behind these games: Act as a simple but easy to use routine that lets the novice programmer (a.k.a. "me") concentrate in other aspects of the game.

In this version there is no gameplay, but you can move the "cyclops" witn the keys QAZX and PLNM. You'll see this time 4 bouncing saturns in the screen. Pressing the Y key changes the number of saturns from 1 to 8. Given that each planet is composed by 2 sprites (the planet itself and its shadow) it can make a total of 18 sprites in the screen moving simultaneously. Obviously the speed is very compromised when reaching a high number of sprites but my goal is to show that is feasible to have a reasonable number of moving sprites controlled from basic without caring for the annoying flashing.

The code (incluides at least one routine from our personal best Zx Basic Programmer Britlion):

Code:
REM CYCLOP'S SATURN BOUNCING PONGOLFSKET DELUXE EDITION SPECIAL VMAX FUSSBALL MASTER #include <sinclair.bas> #include <keys.bas> DIM MAXSATURNOS AS UBYTE LET MAXSATURNOS=3 INICIODELTODO: IF MAXSATURNOS>7 THEN LET MAXSATURNOS=0: END IF PAPER 6: BORDER 5:INK 0: CLS FOR A=0 TO 9: PRINT AT A,0;PAPER 5;INK 0;" ": NEXT A PRINT AT 1,13;PAPER 6;INK 0;" ";AT 2,13;PAPER 6;INK 0;" " PRINT AT 1,17;PAPER 6;INK 0;" ";AT 2,17;PAPER 6;INK 0;" " PRINT AT 8,3;PAPER 6;INK 0;" " PRINT AT 7,3;PAPER 6;INK 0;" " PLOT 0,0: DRAW 255,0:DRAW 0,112: DRAW -255,0: DRAW 0,-112 PLOT 0,30: DRAW 30,0: DRAW 0,52: DRAW -30,0 PLOT 255,30: DRAW -30,0: DRAW 0,52: DRAW 30,0 PLOT 128,0: DRAW 0,112 CIRCLE 128,56,20 PAPER 6 PLOT 108,136: DRAW 0,31:DRAW -10,0: DRAW 0,17: DRAW 28,0: DRAW 0,-17: DRAW -12,0: DRAW 0,-31 PLOT 140,136: DRAW 0,31:DRAW -10,0: DRAW 0,17: DRAW 28,0: DRAW 0,-17: DRAW -12,0: DRAW 0,-31 PLOT 0,112: DRAW 30,24:DRAW 195,0: DRAW 30,-24 PAPER 5 'CIRCLE 220,170,8: CIRCLE 217,172,2: CIRCLE 223,172,2: PLOT 216,167: DRAW 8,0,2 'PLOT 10,160: DRAW 8,-4,2: DRAW 12,5,3: DRAW 9,3,4: DRAW 1,8,3: DRAW -10,2,3: DRAW -8,-1,3: DRAW -10,-2,4: DRAW -2,-10,3 DIM GOLUNO, GOLDOS AS UBYTE doubleSizePrintChar(1,13,48+MAXSATURNOS+1) DIM X,Y,XA,YA,FRAMEX,FRAMEY,FRAMEXA,FRAMEYA AS UINTEGER DIM XD,YD,XDA,YDA,FRAMEXD,FRAMEYD,FRAMEXDA,FRAMEYDA AS UINTEGER DIM XS,YS,XSA,YSA,FRAMESY,FRAMESYA AS UINTEGER DIM ALTURA,ALTURAA,VHG AS UBYTE DIM VELSX,VELSY AS BYTE DIM REBOTE AS INTEGER LET GOLUNO=0: LET GOLDOS=0 LET X=80:LET Y=0: LET XA=80: LET YA=0 LET FRAMEX=(INT(X) MOD 8): LET FRAMEXA=(INT (XA) MOD 8) IF FRAMEX THEN LET FRAMEX=8-FRAMEX: END IF IF FRAMEXA THEN LET FRAMEXA=8-FRAMEXA: END IF LET FRAMEY=INT(Y) MOD 8: LET FRAMEYA=INT (YA) MOD 8 LET XD=176:LET YD=240: LET XDA=176: LET YDA=240 LET FRAMEXD=(INT(XD) MOD 8): LET FRAMEXDA=(INT (XDA) MOD 8) IF FRAMEXD THEN LET FRAMEXD=8-FRAMEXD: END IF IF FRAMEXDA THEN LET FRAMEXDA=8-FRAMEXDA: END IF LET FRAMEYD=INT(YD) MOD 8: LET FRAMEYDA=INT (YDA) MOD 8 LET XS=132:LET YS=121: LET XSA=132: LET YSA=121 LET FRAMESY=INT(YS) MOD 8: LET FRAMESYA=INT(YSA) MOD 8 LET ALTURA=10: LET ALTURAA=10: LET REBOTE=30: LET VHG=10 LET VELSX=0: LET VELSY=0 DIM SATURNOXY (0 TO 7,0 TO 7) AS INTEGER => {{132,121,132,121,10,10,30,10},_ 'X,Y,XA,YA,ALTURA,ALTURAA,REBOTE,REBOTENEG {132,20,132,20,10,10,30,10},_ {132,170,132,170,10,10,30,10},_ {132,40,132,40,10,10,30,10},_ {132,60,132,60,10,10,30,10},_ {132,80,132,80,10,10,30,10},_ {132,100,132,100,10,10,30,10},_ {132,150,132,150,10,10,30,10}} spriteh (16) xorsprite (X,Y,@CICLOPE+(FRAMEY*384)+(FRAMEX*48),XA,YA,@vacio) xorsprite (XD,YD,@CICLOPE+(FRAMEYD*384)+(FRAMEXD*48),XDA,YDA,@vacio) FOR N=0 TO MAXSATURNOS LET FRAMESY=SATURNOXY(N,1) MOD 8 spriteh (6) xorsprite (SATURNOXY(N,0),SATURNOXY(N,1),@SOMBRA+(FRAMESY*48),SATURNOXY(N,2),SATURNOXY(N,3),@vacio) spriteh (10) xorsprite (SATURNOXY(N,0)-SATURNOXY(N,4),SATURNOXY(N,1),@SATURNO+(FRAMESY*48),SATURNOXY(N,2)-SATURNOXY(N,5),SATURNOXY(N,3),@vacio) NEXT SALTOUNO: BUCLEPPAL: IF MULTIKEYS(KEYX) AND Y<240 THEN LET Y=Y+1: END IF IF MULTIKEYS(KEYZ) AND Y>0 THEN LET Y=Y-1: END IF IF MULTIKEYS(KEYA) AND X<176 THEN LET X=X+1: END IF IF MULTIKEYS(KEYQ) AND X>64 THEN LET X=X-1: END IF IF MULTIKEYS(KEYM) AND YD<240 THEN LET YD=YD+1: END IF IF MULTIKEYS(KEYN) AND YD>0 THEN LET YD=YD-1: END IF IF MULTIKEYS(KEYL) AND XD<176 THEN LET XD=XD+1: END IF IF MULTIKEYS(KEYP) AND XD>64 THEN LET XD=XD-1: END IF IF MULTIKEYS(KEYY) THEN LET MAXSATURNOS=MAXSATURNOS+1: GOTO INICIODELTODO: END IF LET XS=XS+VELSX: IF (XS>185 OR XS<80) THEN LET XS=XSA: LET VELSX=VELSX*-1: END IF LET YS=YS+VELSY: IF (YS>240 OR YS<1) THEN LET YS=YSA: LET VELSY=VELSY*-1: GOSUB GOL: END IF LET FRAMEY=INT(Y) MOD 8: LET FRAMEYA=INT (YA) MOD 8 LET FRAMEX=(INT(X) MOD 8): LET FRAMEXA=(INT (XA) MOD 8) IF FRAMEX THEN LET FRAMEX=8-FRAMEX: END IF IF FRAMEXA THEN LET FRAMEXA=8-FRAMEXA: END IF LET FRAMEYD=INT(YD) MOD 8: LET FRAMEYDA=INT (YDA) MOD 8 LET FRAMEXD=(INT(XD) MOD 8): LET FRAMEXDA=(INT (XDA) MOD 8) IF FRAMEXD THEN LET FRAMEXD=8-FRAMEXD: END IF IF FRAMEXDA THEN LET FRAMEXDA=8-FRAMEXDA: END IF 'LET REBOTE=REBOTE-INT(REBOTE/VHG) 'LET ALTURA=ALTURA+INT(REBOTE/VHG)-1: IF ALTURA<6 THEN LET REBOTE=40: GOSUB FRENAZO: END IF 'REBOTE=11 PARADO LET VELSX=0: LET VELSY=0 'LET FRAMESY=INT(YS) MOD 8: LET FRAMESYA=INT(YSA) MOD 8 'IF ALTURA<14 AND (X-XS)>65526 AND ((Y-YS)-4)>65528 THEN GOSUB CHOQUEUNO: END IF 'IF ALTURA<14 AND (XD-XS)>65526 AND ((YD-YS)-4)>65528 THEN GOSUB CHOQUEDOS: END IF spriteh (16) xorsprite (X,Y,@CICLOPE+(FRAMEY*384)+(FRAMEX*48),XA,YA,@CICLOPE+(FRAMEYA*384)+(FRAMEXA*48)) xorsprite (XD,YD,@CICLOPE+(FRAMEYD*384)+(FRAMEXD*48),XDA,YDA,@CICLOPE+(FRAMEYDA*384)+(FRAMEXDA*48)) 'spriteh (6) 'xorsprite (XS,YS,@SOMBRA+(FRAMESY*48),XSA,YSA,@SOMBRA+(FRAMESYA*48)) 'spriteh (10) 'xorsprite (XS-ALTURA,YS,@SATURNO+(FRAMESY*48),XSA-ALTURAA,YSA,@SATURNO+(FRAMESYA*48)) FOR N=0 TO MAXSATURNOS LET SATURNOXY(N,6)=SATURNOXY(N,6)-INT (SATURNOXY(N,6)/SATURNOXY(N,7)) LET SATURNOXY(N,4)=SATURNOXY(N,4)+INT (SATURNOXY(N,6)/SATURNOXY(N,7))-1: IF SATURNOXY(N,4)<6 THEN LET SATURNOXY(N,6)=40+INT(RND*80): GOSUB FRENAZO: END IF LET FRAMESY=SATURNOXY(N,1) MOD 8 LET FRAMESYA=SATURNOXY(N,3) MOD 8 spriteh (6) xorsprite (SATURNOXY(N,0),SATURNOXY(N,1),@SOMBRA+(FRAMESY*48),SATURNOXY(N,2),SATURNOXY(N,3),@SOMBRA+(FRAMESYA*48)) spriteh (10) xorsprite (SATURNOXY(N,0)-SATURNOXY(N,4),SATURNOXY(N,1),@SATURNO+(FRAMESY*48),SATURNOXY(N,2)-SATURNOXY(N,5),SATURNOXY(N,3),@SATURNO+(FRAMESYA*48)) NEXT SALTODOS: LET YA=Y: LET XA=X LET YDA=YD: LET XDA=XD LET XSA=XS: LET YSA=YS: LET ALTURAA=ALTURA FOR N=0 TO 7 LET SATURNOXY(N,2)=SATURNOXY(N,0): LET SATURNOXY(N,3)=SATURNOXY(N,1): LET SATURNOXY(N,5)=SATURNOXY(N,4) NEXT GOTO BUCLEPPAL STOP CHOQUEUNO: LET VELSX=65531-(X-XS) LET VELSY=65532-((Y-YS)-4) LET REBOTE=(ABS(VELSX)+ABS(VELSY))*25: IF REBOTE<40 THEN LET REBOTE=40: END IF RETURN CHOQUEDOS: LET VELSX=65531-(XD-XS) LET VELSY=65532-((YD-YS)-4) LET REBOTE=(ABS(VELSX)+ABS(VELSY))*25: IF REBOTE<40 THEN LET REBOTE=40: END IF RETURN FRENAZO: IF VELSX THEN LET VELSX=(ABS(VELSX)-0.5)*(ABS(VELSX)/VELSX): END IF IF VELSY THEN LET VELSY=(ABS(VELSY)-0.8)*(ABS(VELSY)/VELSY): END IF RETURN GOL: IF ALTURA<40 AND XS<155 AND XS>110 THEN GOSUB GOLAZO: END IF RETURN GOLAZO: IF YS<16 THEN LET GOLUNO=GOLUNO+1: END IF IF YS>230 THEN LET GOLDOS=GOLDOS+1: END IF IF GOLUNO>9 THEN GOTO PLGANA: END IF IF GOLDOS>9 THEN GOTO PLGANA: END IF doubleSizePrintChar(1,13,48+GOLDOS) doubleSizePrintChar(1,17,48+GOLUNO) RETURN PLGANA: doubleSizePrint(7,4,"¡CAMPEONES! ") PAUSE 1: PAUSE 0 GOTO INICIODELTODO STOP #include "sprite3.bas" vacio: ASM vacio: DEFB 0,0,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 DEFB 0,0,0,0,0,0,0,0 END ASM CICLOPE: ASM ; ASM source file created by SevenuP v1.20 ; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain ; ASM source file created by SevenuP v1.20 ; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain ;GRAPHIC DATA: ;Pixel Size: ( 24, 16) ;Char Size: ( 3, 2) ;Frames: 8 ;Sort Priorities: X char, Char line, Y char, Frame number ;Data Outputted: Gfx ;Interleave: Sprite ;Mask: No ciclop_n_r: DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 60, 60, 0,121,222, 0,121 DEFB 206, 0,249,223, 0,252, 63, 0 DEFB 255,255, 0,255,255, 0,124, 62 DEFB 0,123,222, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 13,240, 0, 25,216 DEFB 0, 60, 60, 0,127,254, 0,127 DEFB 254, 0,252, 63, 0,251,223, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,127,254, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 28, 56 DEFB 0, 59,220, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,255,255, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,127,254, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 63,252, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,255,255, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,127,254, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 63,252, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,255,255, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,127,254, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 63,252, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,255,255, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,127,254, 0, 63,252, 0, 31 DEFB 248, 0, 15,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 63,252, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,255,255, 0 DEFB 255,255, 0,255,255, 0,127,254 DEFB 0,124, 62, 0, 57,220, 0, 25 DEFB 200, 0, 13,240, 0, 3,192, 0 DEFB 3,192, 0, 15,240, 0, 31,248 DEFB 0, 63,252, 0,127,254, 0,127 DEFB 254, 0,255,255, 0,252, 63, 0 DEFB 249,223, 0,249,207, 0,121,222 DEFB 0,124, 62, 0, 63,252, 0, 31 DEFB 248, 0, 12, 48, 0, 3,192, 0 ciclop_ne_r: DEFB 1,224, 0, 7,248, 0, 15,252 DEFB 0, 31,158, 0, 63, 47, 0, 62 DEFB 119, 0,127,119,128,127,167,128 DEFB 127,199,128,103,255,128, 59,255 DEFB 0, 61,255, 0, 30,254, 0, 14 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 6,120, 0, 15,116 DEFB 0, 31,166, 0, 63,199, 0, 39 DEFB 255, 0,123,255,128,125,255,128 DEFB 126,255,128,126,255,128, 63,255 DEFB 0, 63,255, 0, 31,254, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 7,248, 0, 11,252 DEFB 0, 29,254, 0, 62,255, 0, 62 DEFB 255, 0,127,255,128,127,255,128 DEFB 127,255,128,127,255,128, 63,255 DEFB 0, 63,255, 0, 31,254, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 6,248, 0, 15,252 DEFB 0, 31,254, 0, 63,255, 0, 63 DEFB 255, 0,127,255,128,127,255,128 DEFB 127,255,128,127,255,128, 63,255 DEFB 0, 63,255, 0, 31,254, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 7,248, 0, 15,252 DEFB 0, 31,254, 0, 63,255, 0, 63 DEFB 255, 0,127,255,128,127,255,128 DEFB 127,255,128,127,255,128, 63,255 DEFB 0, 63,255, 0, 31,254, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 7,248, 0, 15,252 DEFB 0, 31,254, 0, 63,255, 0, 63 DEFB 255, 0,127,255,128,127,255,128 DEFB 127,255,128,127,255,128, 63,255 DEFB 0, 63,255, 0, 31,254, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 DEFB 1,224, 0, 7,248, 0, 15,252 DEFB 0, 31,254, 0, 63,255, 0, 63 DEFB 255, 0,127,255,128,127,255,128 DEFB 127,255,128,127,255,128, 63,255 DEFB 0, 63,159, 0, 31, 46, 0, 14 DEFB 116, 0, 7,120, 0, 1,224, 0 DEFB 1,224, 0, 7,248, 0, 15,252 DEFB 0, 31,254, 0, 63,255, 0, 63 DEFB 255, 0,127,255,128,127,159,128 DEFB 127, 47,128,126,119,128, 63,119 DEFB 0, 63,167, 0, 31,198, 0, 15 DEFB 252, 0, 7,248, 0, 1,224, 0 ciclop_e_r: DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 29 DEFB 227,128, 62,193,192, 62,221,192 DEFB 62,221,192, 62,221,192, 29,227 DEFB 128, 31,247,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 6,194 DEFB 0, 14,221, 0, 30,221,128, 30 DEFB 221,128, 61,227,192, 63,247,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,220, 0, 5,226 DEFB 0, 15,247, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 7 DEFB 254, 0, 3,252, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 63,255,192, 31,255 DEFB 128, 31,255,128, 15,255, 0, 5 DEFB 226, 0, 3,204, 0, 0,240, 0 DEFB 0,240, 0, 3,252, 0, 7,254 DEFB 0, 15,255, 0, 31,255,128, 31 DEFB 255,128, 63,255,192, 63,255,192 DEFB 63,255,192, 61,227,192, 30,193 DEFB 128, 30,221,128, 14,221, 0, 6 DEFB 222, 0, 3,236, 0, 0,240, 0 ciclop_se_r: DEFB 0,120, 0, 1,254, 0, 3,191 DEFB 0, 7,191,128, 15,127,192, 14 DEFB 255,192, 25,251,224, 31,241,224 DEFB 31,236,224, 31,222,224, 15,205 DEFB 192, 15,195,192, 7,255,128, 3 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,251 DEFB 0, 7,241,128, 15,236,192, 15 DEFB 222,192, 31,205,224, 31,195,224 DEFB 31,255,224, 31,255,224, 15,255 DEFB 192, 15,255,192, 7,255,128, 3 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,222, 0, 3,205 DEFB 0, 7,195,128, 15,255,192, 15 DEFB 255,192, 31,255,224, 31,255,224 DEFB 31,255,224, 31,255,224, 15,255 DEFB 192, 15,255,192, 7,255,128, 3 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,255 DEFB 0, 7,255,128, 15,255,192, 15 DEFB 255,192, 31,255,224, 31,255,224 DEFB 31,255,224, 31,255,224, 15,255 DEFB 192, 15,255,192, 7,255,128, 3 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,255 DEFB 0, 7,255,128, 15,255,192, 15 DEFB 255,192, 31,255,224, 31,255,224 DEFB 31,255,224, 31,255,224, 15,255 DEFB 192, 15,255,192, 7,255,128, 3 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,255 DEFB 0, 7,255,128, 15,255,192, 15 DEFB 255,192, 31,255,224, 31,255,224 DEFB 31,255,224, 31,255,224, 15,255 DEFB 192, 15,255,192, 7,255,128, 3 DEFB 255, 0, 1,190, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,255 DEFB 0, 7,255,128, 15,255,192, 15 DEFB 255,192, 31,255,224, 31,255,224 DEFB 31,255,224, 31,255,224, 15,191 DEFB 192, 15,191,192, 7,127,128, 2 DEFB 255, 0, 1,254, 0, 0,120, 0 DEFB 0,120, 0, 1,254, 0, 3,255 DEFB 0, 7,255,128, 15,255,192, 15 DEFB 255,192, 31,191,224, 31,191,224 DEFB 31,127,224, 30,255,224, 9,251 DEFB 192, 15,241,192, 7,236,128, 3 DEFB 223, 0, 1,206, 0, 0,120, 0 ciclop_s_r: DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,189,224, 7 DEFB 195,224, 15,255,240, 15,255,240 DEFB 15,195,240, 15,185,240, 7, 57 DEFB 224, 7,185,224, 3,195,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,195, 0, 1,255 DEFB 128, 3,255,192, 7,195,224, 7 DEFB 185,224, 15, 57,240, 15,185,240 DEFB 15,195,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,255,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,185, 0, 1, 57 DEFB 128, 3,185,192, 7,195,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,255,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,255,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,255,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,255,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,255,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,255,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,255,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,255,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,255,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,255,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,255,192, 1 DEFB 255,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,255,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,255,240, 15,255,240, 7,255 DEFB 224, 7,255,224, 3,189,192, 1 DEFB 195,128, 0,255, 0, 0, 60, 0 DEFB 0, 60, 0, 0,255, 0, 1,255 DEFB 128, 3,255,192, 7,255,224, 7 DEFB 255,224, 15,255,240, 15,255,240 DEFB 15,189,240, 15,195,240, 7,255 DEFB 224, 7,255,224, 3,195,192, 1 DEFB 185,128, 0,251, 0, 0, 60, 0 ciclop_sw_r: DEFB 0, 30, 0, 0,127,128, 0,253 DEFB 192, 1,253,224, 3,254,240, 3 DEFB 255,112, 7,255,152, 7, 15,248 DEFB 7, 55,248, 7,123,248, 3,177 DEFB 240, 3,195,240, 1,231,224, 0 DEFB 255,192, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1, 15,224, 3, 55,240, 3 DEFB 123,240, 7,177,248, 7,195,248 DEFB 7,231,248, 7,255,248, 3,255 DEFB 240, 3,255,240, 1,255,224, 0 DEFB 255,192, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,123,128, 0,177 DEFB 192, 1,195,224, 3,231,240, 3 DEFB 255,240, 7,255,248, 7,255,248 DEFB 7,255,248, 7,255,248, 3,255 DEFB 240, 3,255,240, 1,255,224, 0 DEFB 255,192, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1,255,224, 3,255,240, 3 DEFB 255,240, 7,255,248, 7,255,248 DEFB 7,255,248, 7,255,248, 3,255 DEFB 240, 3,255,240, 1,255,224, 0 DEFB 255,192, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1,255,224, 3,255,240, 3 DEFB 255,240, 7,255,248, 7,255,248 DEFB 7,255,248, 7,255,248, 3,255 DEFB 240, 3,255,240, 1,255,224, 0 DEFB 255,192, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1,255,224, 3,255,240, 3 DEFB 255,240, 7,255,248, 7,255,248 DEFB 7,255,248, 7,255,248, 3,255 DEFB 240, 3,255,240, 1,255,224, 0 DEFB 255,192, 0,125,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1,255,224, 3,255,240, 3 DEFB 255,240, 7,255,248, 7,255,248 DEFB 7,255,248, 7,255,248, 3,253 DEFB 240, 3,253,240, 1,254,224, 0 DEFB 255, 64, 0,127,128, 0, 30, 0 DEFB 0, 30, 0, 0,127,128, 0,255 DEFB 192, 1,255,224, 3,255,240, 3 DEFB 255,240, 7,253,248, 7,253,248 DEFB 7,254,248, 7,255,120, 3,255 DEFB 144, 3, 15,240, 1, 55,224, 0 DEFB 251,192, 0,113,128, 0, 30, 0 ciclop_w_r: DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,239,248, 1 DEFB 199,184, 3,187,124, 3,187,124 DEFB 3,187,124, 3,131,124, 1,199 DEFB 184, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 55,128, 0,123 DEFB 96, 0,187,112, 1,187,120, 1 DEFB 131,120, 3,199,188, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 51,192, 0, 71 DEFB 160, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,255,240, 0 DEFB 127,224, 0, 63,192, 0, 15, 0 DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,255,252, 3,255,252, 1,255 DEFB 248, 1,255,248, 0,239,240, 0 DEFB 71,160, 0, 59,192, 0, 15, 0 DEFB 0, 15, 0, 0, 63,192, 0,127 DEFB 224, 0,255,240, 1,255,248, 1 DEFB 255,248, 3,255,252, 3,255,252 DEFB 3,239,252, 3,199,188, 1,187 DEFB 120, 1,187,120, 0,187,112, 0 DEFB 67, 96, 0, 55,192, 0, 15, 0 ciclop_nw_r: DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 240, 0,120,248, 0,244,252, 0 DEFB 238,252, 1,206,254, 1,197,254 DEFB 1,227,254, 1,247,230, 0,255 DEFB 220, 0,255,188, 0,127,120, 0 DEFB 63,112, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 30,224, 0, 46 DEFB 240, 0, 69,248, 0,227,252, 0 DEFB 247,228, 1,255,222, 1,255,190 DEFB 1,255,126, 1,255,126, 0,255 DEFB 252, 0,255,252, 0,127,248, 0 DEFB 63,240, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 208, 0,127,184, 0,255,124, 0 DEFB 255,124, 1,255,254, 1,255,254 DEFB 1,255,254, 1,255,254, 0,255 DEFB 252, 0,255,252, 0,127,248, 0 DEFB 63,240, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 31, 96, 0, 63 DEFB 240, 0,127,248, 0,255,252, 0 DEFB 255,252, 1,255,254, 1,255,254 DEFB 1,255,254, 1,255,254, 0,255 DEFB 252, 0,255,252, 0,127,248, 0 DEFB 63,240, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 240, 0,127,248, 0,255,252, 0 DEFB 255,252, 1,255,254, 1,255,254 DEFB 1,255,254, 1,255,254, 0,255 DEFB 252, 0,255,252, 0,127,248, 0 DEFB 63,240, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 240, 0,127,248, 0,255,252, 0 DEFB 255,252, 1,255,254, 1,255,254 DEFB 1,255,254, 1,255,254, 0,255 DEFB 252, 0,255,252, 0,127,248, 0 DEFB 63,240, 0, 31,224, 0, 7,128 DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 240, 0,127,248, 0,255,252, 0 DEFB 255,252, 1,255,254, 1,255,254 DEFB 1,255,254, 1,255,254, 0,255 DEFB 252, 0,248,252, 0,116,248, 0 DEFB 46,240, 0, 30,224, 0, 7,128 DEFB 0, 7,128, 0, 31,224, 0, 63 DEFB 240, 0,127,248, 0,255,252, 0 DEFB 255,252, 1,255,254, 1,248,254 DEFB 1,244,254, 1,238,254, 0,206 DEFB 252, 0,197,252, 0, 99,248, 0 DEFB 55,240, 0, 31,224, 0, 7,128 END ASM SATURNO: ASM ; ASM source file created by SevenuP v1.20 ; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain ;GRAPHIC DATA: ;Pixel Size: ( 24, 16) ;Char Size: ( 3, 2) ;Frames: 8 ;Sort Priorities: X char, Char line, Y char, Frame number ;Data Outputted: Gfx ;Interleave: Sprite ;Mask: No saturno_r: DEFB 3,192, 0, 30,184, 0,109, 86 DEFB 0,154,137, 0,149, 9, 0,106 DEFB 134, 0, 16, 56, 0, 10,144, 0 DEFB 5, 96, 0, 3,192, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 1,224, 0, 15, 92, 0, 54,171 DEFB 0, 77, 68,128, 74,132,128, 53 DEFB 67, 0, 8, 28, 0, 5, 72, 0 DEFB 2,176, 0, 1,224, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0,240, 0, 7,174, 0, 27, 85 DEFB 128, 38,162, 64, 37, 66, 64, 26 DEFB 161,128, 4, 14, 0, 2,164, 0 DEFB 1, 88, 0, 0,240, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0,120, 0, 3,215, 0, 13,170 DEFB 192, 19, 81, 32, 18,161, 32, 13 DEFB 80,192, 2, 7, 0, 1, 82, 0 DEFB 0,172, 0, 0,120, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 60, 0, 1,235,128, 6,213 DEFB 96, 9,168,144, 9, 80,144, 6 DEFB 168, 96, 1, 3,128, 0,169, 0 DEFB 0, 86, 0, 0, 60, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 30, 0, 0,245,192, 3,106 DEFB 176, 4,212, 72, 4,168, 72, 3 DEFB 84, 48, 0,129,192, 0, 84,128 DEFB 0, 43, 0, 0, 30, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 15, 0, 0,122,224, 1,181 DEFB 88, 2,106, 36, 2, 84, 36, 1 DEFB 170, 24, 0, 64,224, 0, 42, 64 DEFB 0, 21,128, 0, 15, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 7,128, 0, 61,112, 0,218 DEFB 172, 1, 53, 18, 1, 42, 18, 0 DEFB 213, 12, 0, 32,112, 0, 21, 32 DEFB 0, 10,192, 0, 7,128, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 END ASM SOMBRA: ASM ; ASM source file created by SevenuP v1.20 ; SevenuP (C) Copyright 2002-2006 by Jaime Tejedor Gomez, aka Metalbrain ;GRAPHIC DATA: ;Pixel Size: ( 24, 16) ;Char Size: ( 3, 2) ;Frames: 8 ;Sort Priorities: X char, Char line, Y char, Frame number ;Data Outputted: Gfx ;Interleave: Sprite ;Mask: No sombra_r: DEFB 5, 64, 0, 10,160, 0, 21, 80 DEFB 0, 10,160, 0, 5, 64, 0, 2 DEFB 128, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 2,160, 0, 5, 80, 0, 10,168 DEFB 0, 5, 80, 0, 2,160, 0, 1 DEFB 64, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 1, 80, 0, 2,168, 0, 5, 84 DEFB 0, 2,168, 0, 1, 80, 0, 0 DEFB 160, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0,168, 0, 1, 84, 0, 2,170 DEFB 0, 1, 84, 0, 0,168, 0, 0 DEFB 80, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 84, 0, 0,170, 0, 1, 85 DEFB 0, 0,170, 0, 0, 84, 0, 0 DEFB 40, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 42, 0, 0, 85, 0, 0,170 DEFB 128, 0, 85, 0, 0, 42, 0, 0 DEFB 20, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 21, 0, 0, 42,128, 0, 85 DEFB 64, 0, 42,128, 0, 21, 0, 0 DEFB 10, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 10,128, 0, 21, 64, 0, 42 DEFB 160, 0, 21, 64, 0, 10,128, 0 DEFB 5, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 DEFB 0, 0, 0, 0, 0, 0, 0, 0 END ASM BUFFERATTRSATURNO: ASM DEFB 0,0,0,0,0,0 END ASM BUFFERATTRCICLOPEUNO: ASM DEFB 0,0,0,0,0,0 END ASM BUFFERATTRCICLOPEDOS: ASM DEFB 0,0,0,0,0,0 END ASM STOP SUB doubleSizePrintChar(y AS UBYTE, x AS UBYTE, thingToPrint AS UBYTE) ' Prints a single character double sized. ' Takes X and Y values as character positions, like print. ' takes an ascii code value for a character. ' By Britlion, 2012. ASM LD A,(IX+5) ;' Y value CP 22 JP NC, doubleSizePrintCharEnd ;' A=y value LD E,A AND 24 ; calculate OR 64 ; screen LD H,A ; address LD A,E ; FOR AND 7 ; row OR a ; Y RRA RRA RRA RRA LD E,A LD A,(IX+7) ;' X Value CP 30 JP NC, doubleSizePrintCharEnd ADD A,E ;' correct address for column value. (add it in) LD L,A EX DE,HL ;' Save it in DE LD A,(IX+9) ;'Character CP 164 ;' > UDG "U" ? JP NC, doubleSizePrintCharEnd CP 32 ;' < space+1? JP C, doubleSizePrintCharEnd CP 144 ;' >144? JP NC, doubleSizePrintCharUDGAddress LD L,A LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ;' multiply by 8. LD BC,(23606) ;' Chars ADD HL,BC ;' Hl -> Character data. EX DE,HL ;' DE -> character data, HL-> screen address. JP doubleSizePrintCharRotateLoopCharStart doubleSizePrintCharUDGAddress: LD HL,(23675) ;'UDG address SUB 144 ADD A,A ;multiply by 8. ADD A,A ADD A,A ADD A,L LD L,A JR NC, doubleSizePrintCharUDGAddressNoCarry INC H doubleSizePrintCharUDGAddressNoCarry: ;' At this point HL -> Character data in UDG block. EX DE,HL ;' DE -> character data, HL-> screen address. doubleSizePrintCharRotateLoopCharStart: LD C,2 ;' 2 character rows. doubleSizePrintCharRotateLoopCharRowLoopOuter: LD b,4 ;' 4 source bytes to count through per character row. doubleSizePrintCharRotateLoopCharRowLoopInner: PUSH BC LD A,(DE) ;' Grab a bitmap. PUSH DE LD B,4 doubleSizePrintCharRotateLoop1: RRA PUSH AF RR E POP AF RR E DJNZ doubleSizePrintCharRotateLoop1 LD B,4 doubleSizePrintCharRotateLoop2: RRA PUSH AF RR D POP AF RR D DJNZ doubleSizePrintCharRotateLoop2 LD (HL),D ;' Output first byte INC HL ;' Move right LD (HL),E ;' Second half. DEC HL ;' Move left INC H ;' Move down LD (HL),D ;' Output second row (copy of first), first byte. INC HL ;' Move right LD (HL),E ; Output second row, second BYTE DEC HL ; Move left INC H ; Move down. POP DE INC DE POP BC DJNZ doubleSizePrintCharRotateLoopCharRowLoopInner ; CALL __DECY+2 ;'Jump into the DRAW next_line_down routine, at a convenient point (accounting for the INC H above) ; Can't seem to call to this at the moment! Here in longhand form: ld a, h AND 7 jr nz, doubleSizePrintCharRotateNextCharRow ld a, l add a, 32 ld l, a jr c, doubleSizePrintCharRotateNextCharRow ld a, h SUB 8 ld h, a doubleSizePrintCharRotateNextCharRow: DEC C JR NZ, doubleSizePrintCharRotateLoopCharRowLoopOuter doubleSizePrintCharEnd: END ASM END SUB SUB doubleSizePrint(y AS UBYTE, x AS UBYTE, thingToPrint$ AS STRING) 'Uses doubleSizePrintChar subroutine to print a string. 'By Britlion, 2012 DIM n AS UBYTE FOR n=0 TO LEN thingToPrint - 1 doubleSizePrintChar(y,x,CODE thingToPrint$(n) ) x=x+2 NEXT n END SUB


Attached Files
.zip   CICLOPDEMO.zip (Size: 6.34 KB / Downloads: 1,153)
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)