Imported contents: kraptor_final_apr_03_2004.tar.gz
[kraptor.git] / extras / doc / es / cinemati.txt
blob283f3364e3cdeb08ccf8a64d7088cb253e756a75
1 Engine de cinematicas mediante scripting y bitmaps y animaciones\r
2 Por Kronoman\r
3 En memoria de mi querido padre\r
4 Copyright (c) Septiembre de 2002\r
5 ---------------------------------------------------------------------\r
6 Algunas ideas:\r
7 \r
8 El texto del script es leido desde un campo ->dat de un objeto\r
9 DATAFILE de Allegro.\r
10 Se lee como una cadena de chars, donde cada linea termina con un\r
11 caracter 10 (LF, guarda compatibilidad con archivos de Linux!)\r
12 Se va interpretando linea a linea.\r
13 Por cada linea obtenida, se separa en parametros, y luego, el 1er parametro\r
14 es tomado y se llama a la funcion que lo interpreta.\r
15 Para listar las funciones se tiene una estructura con la instruccion (char)\r
16 y el puntero a la funcion que la interpreta.\r
17 Se busca en esta lista la instruccion ingresada.\r
18 La funcion devuelve 0 si OK, -1 en falla.\r
19 La funcion no recibe parametros. Los parametros de la linea estan\r
20 almacenados en matrices globales.\r
21 Son 3 matrices globales que contienen diferentes interpretaciones\r
22 de los parametros.\r
23 1) Parametros interpretados como enteros int\r
24 2) Parametros interpretados como strings de char\r
25 3) Todo lo que quedo despues de la primera instruccion (linea completa\r
26    sin 1era instruccion)\r
27 Ademas, cada matriz contiene la cantidad de parametros interpretados,\r
28 para poder comprobar si el usuario se olvido algun parametro.\r
29 ---------------------------------------------------------------------\r
30 Multimedia:\r
32 Las animaciones son archivos FLIC (fli/flc), y el texto subtitulado\r
33 sincronizado va en un objeto aparte sincronizado con los frames del FLIC\r
34 Las imagenes fijas son bitmaps\r
35 Los sonidos son samples\r
36 La musica es MOD (para DUMB) \r
37 La musica por AHORA NO ESTA IMPLEMENTADA, POR COMPLICACIONES CON EL \r
38 poll que precisa la musica en DUMB!!!\r
39 ---------------------------------------------------------------------\r
40 Bitmap de buffer:\r
42 El engine dibuja a un bitmap de buffer de 640x480, donde luego\r
43 es enviado a pantalla cuando esta listo [ajustando la proporcion\r
44 a la resolucion de pantalla].\r
45 ---------------------------------------------------------------------\r
46 Sintaxis:\r
48 TODAS LAS INSTRUCCIONES Y PARAMETROS DEBEN IR SEPARADOS POR UN (1) ESPACIO!\r
49 EL ENGINE ES SENSIBLE A MAYUSCULAS/MINUSCULAS\r
50 Todo lo que comienze con # es comentario y esa linea es IGNORADA.\r
51 Las instrucciones son del tipo \r
52     [instruccion] [parametro] [parametro] [etc]\r
53 NOTAR el espacio entre [parametro] y [parametro], etc...\r
54 ---------------------------------------------------------------------\r
55 Juego de instrucciones para el script principal:\r
56 El script principal indica la secuencia de eventos que deben producirse,\r
57 es decir, que animaciones reproducir, que sonidos tocar, etc.\r
58 NOTAR que los parametros NO son opcionales, olvidarselos puede ocurrir\r
59 en resultados IMPREDECIBLES! (no hay comprobacion de errores...)\r
61 # comentario\r
62    Toda linea que comienze con # es IGNORADA (se considera un comentario)\r
63    OK\r
64    \r
65 cls [r] [g] [b]\r
66     Limpia la pantalla a color [r] [g] [b] (color RGB 0..255 c/u)\r
67     OK\r
69 fade_out [velocidad]\r
70    Realiza una transicion a color negro \r
71    [velocidad] 1..64 (lento-rapido)\r
72    OK\r
74 fade_out_color [r] [g] [b] [velocidad]\r
75    Realiza una transicion al color [r] [g] [b]\r
76    [velocidad] 1..64 (lento-rapido)\r
77    OK\r
78     \r
79 rect [x] [y] [x2] [y2] [r] [g] [b]\r
80    Dibuja un rectangulo desde [x] [y] a [x2] [y2]\r
81    [r] [g] [b] es el color, en valores RGB 0..255\r
82    OK\r
83     \r
84 rectfill [x] [y] [x2] [y2] [r] [g] [b]\r
85    Dibuja un rectangulo LLENO desde [x] [y] a [x2] [y2]\r
86    [r] [g] [b] es el color, en valores RGB 0..255\r
87    OK\r
88     \r
89 line [x] [y] [x2] [y2] [r] [g] [b]\r
90    Dibuja una linea desde [x] [y] a [x2] [y2]\r
91    [r] [g] [b] es el color, en valores RGB 0..255\r
92    OK\r
93     \r
94 locate [x] [y] [w]\r
95     Posiciona la salida de texto en [x] [y] con ancho [w]\r
96     Setea el borde [w] como 'filo' o 'borde' para las salidas de texto (echo)\r
97     Al llegar el texto a esa posicion, hace word-wrap\r
98     OK\r
99     \r
100 text_color [r] [g] [b]\r
101    Setea el color del texto a colocar en futuras llamadas\r
102    [r] [g] [b] es el color, en valores RGB 0..255\r
103    OK\r
104    \r
105 text_back [r] [g] [b]\r
106    Setea el color del FONDO del  texto a colocar en futuras llamadas\r
107    [r] [g] [b] es el color, en valores RGB 0..255\r
108    Si algun  [r] [g] [b] es < 0 (ej: -1) el fondo del texto es transparente\r
109    OK\r
111 text_font [font]\r
112    Cambia la fuente de las salidas de echo; si no se pone [font],\r
113    se volvera al font original de la BIOS.\r
114    [font] debe ser un objeto de tipo 'font' contenido en el archivo\r
115    de la cinematica.\r
116    OK\r
118 echo [texto]\r
119     Escribe el [texto] en pantalla, con word-wrap al borde seteado\r
120     Desplaza la coordenada [y] hacia abajo y [x] al origen anterior (salto de linea)\r
121     OK\r
123 echo_centre_x [texto]\r
124     Escribe el [texto] centrado en [x] en pantalla, con word-wrap al borde seteado\r
125     Desplaza la coordenada [y] hacia abajo y [x] al origen anterior (salto de linea)\r
126     OK\r
128 echo_centre_xy [texto]\r
129     Escribe el [texto] centrado en [x] e [y] en pantalla, con word-wrap al borde seteado\r
130     Desplaza la coordenada [y] hacia abajo y [x] al origen anterior (salto de linea)\r
131     OK\r
133 rest [milisegundos]\r
134      Espera [milisegundos] antes de continuar la interpretacion...\r
135      Si [milisegundos] <= 0, espera por una tecla...\r
136      OK\r
137      \r
138 set_palette [paleta_256_colores]\r
139    Setea la paleta de colores actual al objeto PALETA [paleta_256_colores]\r
140    Esto es lento, porque ademas, calcula la tabla RGB para la paleta\r
141    OK\r
143 set_palette_default\r
144    Setea la paleta default de la placa VGA\r
145    OK\r
146    \r
147 blit [x] [y] [bitmap]\r
148    Coloca el [bitmap] en [x] [y]\r
149    OK\r
150    \r
151 sprite [x] [y] [sprite]\r
152    Coloca el [sprite] en [x] [y] filtrando el color de mascara\r
153    OK\r
154    \r
155 stretch_blit [x] [y] [w] [h] [bitmap]\r
156    Coloca el [bitmap] en [x] [y] estirandolo a ancho [w] y alto [h]\r
157    OK\r
159 play_sample [sample] [vol] [pan] [freq]\r
160     Lanza un sonido con el volumen, paneo y frecuencia. \r
161     El volumen y paneo van desde 0 (min/izq) hasta 255 (max/derecho), \r
162     127 es la mitad del parlante. \r
163     Frecuencia es relativa mas que absoluta: 1000 representa la frecuencia a la que \r
164     el sonido fue grabado, 2000 es el doble, 3000 el triple, 500 la mitad, etc   \r
165     OK\r
167 clear_fli_back [r] [g] [b]\r
168         Esto es una 'bandera' que permite que cuando se ejecute un FLI,\r
169         antes de mostrar el primero cuadro, se limpie a color [r] [g] [b]\r
170         Coloque [r] [g] [b] = -1 para que no se limpie la pantalla\r
171         El default es limpiar a negro...\r
172     OK\r
174 keyboard_cancel_fli [valor]\r
175         Esto permite que el usuario cancele una animacion fli al apretar una tecla\r
176         El default es 0 [NO]\r
177         Cualquier valor <> que 0, indica que si. (Usar -1 por las dudas)\r
178     OK\r
180 play_fli [x] [y] [w] [h] [loop] [objeto_fli] [script_fli]\r
181     Ejecuta una animacion FLI contenida en el DAT. \r
182         NOTA: esto modifica la paleta de colores! si hubiera algo dibujado, podria\r
183         verse raro, e incluso, el fondo puede cambiar si el flag clear_fli_back no esta seteado\r
184     [x] [y] son las coordenadas de la esquina superior izquierda \r
185             donde deben ponerse los cuadros.\r
186     [w] [h] es el ancho y alto del fli (se estirara!)\r
187     [loop]   Indica la cantidad de veces que deben repetirse los cuadros.\r
188           *NOTA* Al llegar al final, el script cuenta de nuevo desde el primer frame\r
189                 por lo tanto, el [script_fli] comienza de nuevo.\r
190     [objeto_fli] Indica el objeto de tipo FLI a reproducir, contenido en el DAT.\r
191     [script_fli] Indica el script (objeto de tipo TXT) que contiene el sonido,\r
192                  subtitulos, etc del FLI.\r
193                  Ver mas adelante la documentacion para saber como es el formato.\r
194         OK\r
195 ---------------------------------------------------------------------\r
196 Formato del [scrip_fli] para el comando "play_fli"\r
198 Es un objeto de texto tipo TXT que indica los sonidos, y subtitulos frame x frame\r
199 [NOTA DEBUG: los subtitulos NO estan implementados todavia]\r
200 NOTA: los frames se comienzan contando desde 1\r
202 El formato es asi:\r
203 [FRAME_n]\r
204 snd = [sample]\r
206 ----------\r
207 Ejemplo:\r
209 [FRAME_11]\r
210 snd = explosion\r
212 [FRAME_48]\r
213 snd = final\r