A downloadable game

1 ' *** INICIALIZACIÓN GRÁFICOS
1 SCREEN 1,2,0:COLOR 15,1,1:KEYOFF:WIDTH 32:CLEAR 1500:DEFINT A-U:FOR I=0TO 3:S$="":FOR J=1TO 32:READ A$:S$=S$+CHR$(VAL("&h"+A$)):NEXT:SPRITE$(I)=S$:NEXT:FOR I=0TO 63:READ A$:FOR J=768TO 1024STEP 64:VPOKE J+I,VAL("&H"+A$):NEXT J,I:FOR I=0TO 4:READ A
2 ' *** PINTAR FONDO Y SPRITES (el SOUND 7 es para activar en todos los canales el tono sin ruido 10111000 = 184, el SOUND 12 es la duración de cada sonido y el SOUND 10 indicamos que el canal C usará el volumen de la envolvente 13
2 VPOKE8204+I,A:NEXT:FOR I=0TO22:READ A$:PRINT A$:NEXT:PUTSPRITE 1,(50,168),15,0:PUTSPRITE 2,(86,168),15,2:PUTSPRITE 0,(120,5),14,3:ON SPRITE GOSUB 6:SPRITE ON:H=4:Y=190:A$="PUSH SPACE":B$="GAME  OVER":C$=A$:SOUND 7,184:SOUND 12,15:SOUND 10,16:GOTO5
3 ' *** MOVIMIENTO BOLA (en vez de un PUTSPRITE que escribe 4 registros de memoria hacemos 2 VPOKE, uno para la Y y otro para la X de la bola)
3 X=X+W:Y=Y+V:VPOKE 6912,Y:VPOKE 6913,X:E=6145+X\8+(Y\8)*32:A=VPEEK(E):B=VPEEK(E+31):C=VPEEK(E+33):D=VPEEK(E+64):Z=Z-(Y-V-1-Z)*(D>97):W=W+2*W*((B>97AND W<0)OR(C>97AND W>0)):V=V+1.5*V*((V>0 AND D>97)OR(A>97 AND V<0))-.5*((Y<Z AND V<1)OR(V>=0 AND V<8))
4 ' *** MOVIMIENTO PALAS pintamos el nº de sprite y la posición Y con VPOKE así solo cambiamos 2 registros de memoria en vez de 4 que escribe PUT SPRITE
4 S=STICK(0):F=F-4*(F<8AND(S>4OR S=1))+4*(F>0AND(S=0OR(S>1AND S<5))):L=L-(F=8)+L*(F<>8):VPOKE 6918,F:VPOKE 6916,168-F:G=G+4*(G>0AND S>0AND S<6)-4*(G<8 AND(S=0OR S>5)):M=M-(G=0)+M*(G<>0):VPOKE 6922,G:VPOKE 6920,160+G:ON-(Y<168)GOTO 3
5 ' *** MUERTE (el SOUND 8,0 es para detener el sonido del canal A (altura/velocidad bola) y eñ SOUND 8,13 para volverlo a activar. El SOUND 5,1 es para el todo del sonido de soltar bola y el SOUND 13,1 para que suene)
5 Y=Y-(Y<188):VPOKE 6912,Y:LOCATE 21,11:PRINT C$:SOUND 8,0:S=STRIG(0):IF S=0 GOTO 5 ELSE SOUND 5,1:SOUND 13,1:SOUND 8,0:H=H-1:VPOKE 6717,48+H:LOCATE 21,11:PRINT"          ":V=4:W=-1.4:X=136:Y=-4:Z=50:G=8:IF H=0 THEN C$=B$:H=4:GOTO 3 ELSE C$=A$:GOTO 3
6 ' *** COLISIÓN BOLA CON PALAS (movemos la Y y volvemos a pintar la bola con VPOKE para que deje de saltar el ON SPRITE GOSUB sin tener que hacer un SPRITE OFF y luego un SPRITE ON
6 Y=Y-2:VPOKE 6912,Y:V=V+1.1*V*(V>0 AND ((X>68 AND (G=8 OR M>2)) OR (X<68 AND (F=0 OR L>2))))+2.5*V*(V>0 AND ((X>68 AND (G=4 OR (G=0 AND M<3))) OR (X<68 AND (F=4 OR (F=8 AND L<3))))):Z=Y-V*2:SOUND 5,16+V:SOUND 13,1:RETURN
7 ' *** SPRITES PALAS
7 DATA 60,F8,FE,FF,7F,7F,1F,7,1,0,0,0,0,0,0,0,     0,0,0,80,E0,F8,FE,FE,FF,7F,1F,6,0,0,0,0
8 DATA 0,0,0,0,0,3F,7F,FF,FF,7F,3F,0,0,0,0,0,      0,0,0,0,0,FC,FE,FF,FF,FE,FC,0,0,0,0,0
9 DATA 0,0,0,1,7,1F,7F,7F,FF,FE,F8,60,0,0,0,0,     6,1F,7F,FF,FE,FE,F8,E0,80,0,0,0,0,0,0,0
10 ' *** SPRITE BOLA
10 DATA 0,0,0,3,7,E,1D,1B,1F,1B,1F,F,7,3,0,0,      0,0,0,E0,F0,F8,FC,FC,FC,FC,FC,F8,F0,E0,0,0
11 ' *** VPOKES
11 DATA 3C,7E,E7,C3,C3,E7,7E,3C
12 DATA 0,0,0,0,0,0,0,0
13 DATA 1,3,7,F,1F,3F,7F,FF
14 DATA FF,7F,3F,1F,F,7,3,1
15 DATA 1,1,3,3,7,F,3F,FF
16 DATA FF,3F,F,7,3,3,1,1
17 DATA FF,FC,F0,E0,C0,C0,80,80
18 DATA 80,80,C0,C0,E0,F0,FC,FF
19 ' *** COLORES
19 DATA 164,74,70,100,76
20 ' *** MAPA
20 DATA qiqiqiqi~eqiqiqita`
21 DATA ifaaaaa}g|faaaaaaaa
22 DATA qaaaaaaawlaaaaaaaav
23 DATA iaaaaaaaaaaa†…aaai
24 DATA qaavquaaaaaa€aaaq
25 DATA iaaqpqaaaaaa‡„aaai  KOTAI 2021
26 DATA qaawqtaaaaaaaaaaaaq
27 DATA iaaaaaaaaaaaaaaaazi
28 DATA qkaaaaaaanimaaaaaiq
29 DATA iqaaaaaaaihiaaaaa{i
30 DATA qiaaaaaaaoilaaaaaaq
31 DATA iraaaaaaaaaaaaaaaai
32 DATA qaaaaaaaaaaaaaaxaaq
33 DATA iaaaaaaaaaaaaaaxaai
34 DATA qaa†…vuaaaaaaanmaaq
35 DATA iaa‡„wtaaaaaaaolaai
36 DATA qaaaaaaaaaaaaaaaaaq
37 DATA isaaaaaaaaaaaaaaazi   BALLS
38 DATA qisaaaaaaaaaaaaaziq
39 DATA iqisaaaaaaaaaaaziqi
40 DATA qa}isaaaaaaaaazi~aq
41 DATA igaqixaaaaaaaxiqadi
42 DATA qiqiqlaaaaaaaoqiqiq
490 '
500 ' *** VARIABLES
510 ' A = VPEEK arriba de la bola
520 ' B = VPEEK izquierda de la bola
530 ' C = VPEEK derecha de la bola
540 ' D = VPEEK abajo de la bola
550 ' E = dirección VPEEK
560 ' F = posición pala izquierda en 3 valores:(0= \; 4= -;  8= /;)
570 ' G = posición pala derecha en 3 valores: (0= \; 4= -; 8= /;
580 ' H = bolas/vidas
590 ' I = bucles nivel 1
600 ' J = bucles nivel 2
610 ' K =
620 ' L = tiempo que llevamos con la palanca izquierda levantada
630 ' M = tiempo que llevamos con la palanca derecha levantada
640 ' N =
650 ' O =
660 ' P =
670 ' Q =
680 ' R =
690 ' S =
700 ' T =
710 ' U =
720 ' V = velocidad del eje Y de la bola
730 ' W = velocidad del eje X de la bola
740 ' X = X de la bola
750 ' Y = Y de la bola
760 ' Z = altura del salto (Y en la que la bola empieza a perder velocidad)

Download

Download
pinball.dsk 720 kB
Download
PINBALL_COMMENTED.ASC 4.5 kB
Download
PINBALL_COMPRESSED.ASC 2.4 kB

Development log

Leave a comment

Log in with itch.io to leave a comment.