EVENTI E COMANDI PER LO STANDARD FKISS/FKISS2 Documento originale di Chad Randall crandall@msen.com Ultima update del 31 Dec 1997 ! Traduzione in italiano di KD2.1976 Per collaborazioni,commneti ed aiuti scrivetemi : KD2.1976 Headquarter : Kd2(SPAM)@racine.ra.it KD2 comic boards and dolls kiss set ! @ 1999 By KD2 Graph .A.r.r. 1 Feb 1999 PRIMA DI INIZIARE ! ------------------------------------------------------------------ Vi consiglio vivamente di leggre prima il file Kiss1.txt per ca- pire questi comandi, siccome molti di essi fanno riferimento alle impostazioni di base ! EVENTI FKISS/FKISS2 STANDARD ------------------------------------------------------------------ Uso ; ;@evento() ; Deve essere tutto attaccato !!! All'inizio ricordarsi di inserire la stringa di avvio : ; ;@EventHandler ; ALARM(numero) Viene inizializzato quando il valore del contatore di un timer raggiunge lo zero ! Esempio ; ;begin() ;@ timer(1,5000) ;valore 1 ; ;@alarm(1) ;alarm richiama 1 ;@ unmap("Mut_fr.cel") ; In questo caso l'evento alarm e' richiamato dal timer ! Quando sono passati 5000 msec (ricordatevi che si parla di microsecondi e che 1 msec = 1/100 di secondo) il timer re- stituisce il valore 1 ! Quindi per fare scomparire (comando "unmap") le mutande sara' necessario richiamare il valore 1 ! Questo e' fatto da alarm seguito dal valore da richiamare fra parentesi ! APART("xxx.cel","yyy.cel") Viene inizializzato quando l'oggetto xxx non tocca piu' l'og- getto yyy(quando escono dalla collisione)! Vale per oggetti che si toccano ! Se gli oggetti non sono sovrapposti bisognera' mettere l'og- getto xxx sovrapposto all'yyy e poi rispostare ancora l'og- getto xxx fuori ! Esempio ; ;@apart("xxx.cel","yyy.cel") ;@ move(#3,50,100) ; Vogliamo fare in modo che quando facciamo uscire dalla colli- sione xxx da yyy l'oggetto #3 si sposti di 50 px lungo l'asse x e 100 px lungo l'asse y). Farlo uscire puntando col mouse sull'oggetto e spostarlo tenen- do premuto il tasto sinistro ! Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! BEGIN() Viene inizializzato subito, appena carichiamo la doll !Utile se vogliamo mostrare messaggi ,caricare animazioni e o file musivali ! Esempio ; ;Begin() ;@ unmap("sss.cel") ;@ music("3x3eyes.mid") ;@ notify("Il terzo occhio...!!!") ; Appena caricata la doll avremo che sss diventa invisibile, suona la musica .mid e appare la stringa "Il yerzo ochhio...!!!". CATCH(#numero) oppure ("xxx.cel") Viene inizializzato quando pressiamo col rasto sinistro del mouse su un'oggetto che puo' essere spostato (quindi FIX=0). Esempio ; ;@catch(#3) ;@ map("vvv.cel") ; Premendo sull'oggetto movibile #3 accade che l'oggetto vvv ricom- pare o compare. FIXCATCH(#numero) oppure ("xxx.cel") Come per il catch solo che vale per oggetti fissi(FIX >0). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! DROP(#numero) oppure ("xxx.cel") Viene inizializzato quando dopo che abbiamo pressato un'oggetto rilasciamo il tasto sinistro del mouse ! Vale solo se l'oggetto e' movibile(FIX=0). Esempio uguale a catch ! FIXDROP(#numero) oppure ("xxx.cel") Come per il drop solo che vale per oggetti fissi(FIX >0). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! END() Viene inizializzato quando chiudete la doll ! Utile per visualiz- zare stringhe e o suoni ! Esempio uguale a begin ! COL(numero) Simile al comando set ! in questo caso lo usate per cambiare la palette (vedere la linea %pal_1.kcf per il numero corrispondente)! IN(#1,#2) Viene inizializzato quando l'area di contorno dell'oggetto #1 (per area di contorno intendo il rettangolo invisibile che delimita il vostro oggetto...infatti esso e' formato da piu' rettangoli invisi- bili che ne delimitano lo spazio !) tocca l'area del #2 ! Gli oggetti non devono toccarsi all'inizio ! Se si toccano e sono sovrapposti , fare uscire l'#1, farlo sovrap- porre col #2 ancora e uscire di nuovo ! Questo evento e' di tipo FKISS level 2.0 e puo' non essere sup- portato da altri viewer piu' vecchi ! OUT(#1,#2) E' il contrario di in. I due oggetti devono partire che si toccano ed essere sovrapoposti...facendone uscire uno l'evento si inizializ- za. Questo evento e' di tipo FKISS level 2.0 e puo' non essere sup- portato da altri viewer piu' vecchi ! STILLIN(#1,#2) Come per in solo che viene inizializzato se #1 tocca #2 indipenden- temente se sono separati o sovrapposti ! Questo evento e' di tipo FKISS level 2.0 e puo' non essere sup- portato da altri viewer piu' vecchi ! STILLOUT(#1,#2) Come per out solo che viene inizializzato se #1 esce dall'area di #2 indipendentemente se sono separati o sovrapposti ! Questo evento e' di tipo FKISS level 2.0 e puo' non essere sup- portato da altri viewer piu' vecchi ! INITIALIZE() Inizializza i comandi prima che qualsiasi informazione sia visualiz- zata ! Un'ottima pozizione nella quale possiamo settare tutti gli oggetti da non visualizzare all'inizio (vedi comando "Unmap"). SET(numero da 0-9) Viene inizializzato quando l'utente accede al set corrispondente ! NEVER() Non inizializza nulla !Un buon posto se vuoi inserire il codice che non vuoi inizializzare subito ! Questo evento e' di tipo FKISS level 2.0 e puo' non essere sup- portato da altri viewer piu' vecchi ! PRESS(#numero) oppure ("xxx.cel") Come catch ma indipendentemente se fissato o no ! RELEASE(#numero) oppure ("xxx.cel") Come drop ma indipendentemente se fissato o no ! UNFIX(#1) Viene inizializzato quando il valore dell'oggetto #1 raggiunge lo 0. VERSION(numero versione) Informa l'utente se usa un viewer che non supporta il level corrente. Esempio ; ;@EventHandler ;@nothing() ;@version(2) ;@ unmap("warning.cel") ; In questo caso se il viewer non supporta la vesrione 2 l'utente verra' avvertito dal file "warning.cel" ( che dovete creare con su scritto che "Il vostro viewer non supporta questa versione !"). Ovviamente se il viewer lo supporta con il comando nothing verra' chiusa automatcamente la finestra di avvio ! Se il messaggio compare e lo sivuole mandare via basta aggiungere dopo begin : ; ;@begin() ;@release("warning.cel") oppure anche press ;@ unmap("warning.cel") ; COMANDI FKISS/FKISS2 STANDARD ------------------------------------------------------------------ Uso ; ;@ comando() ; Occorre uno spazio prima del comando ! ALTMAP(#numero) oppure ("xxx.cel") Inverte un oggetto mappato in un oggetto non mappato(alias invisi- bile) e viceversa. CHANGECOL(Palette) Cambia la palette dell'oggetto con un'altra. CHANGESET(Set) Cambia il set corrente con un'altro. DEBUG("Stringa da visualizzare") Visualizza un messaggio.Nelle nuove versioni del PlayFKISS questo comando non funziona proprio correttamente...consiglio di usare il comando notify. NOTIFY("Stringa da visualizzare") Stessa cosa di debug. Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFFIXED(#1,timer,durata) Setta il valore del timer che gli volete dare se l'oggetto #1 e' fissato(FIX >0). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFNOTFIXED(#1,timer,durata) Setta il valore del timer che gli volete dare se l'oggetto #1 e' movibile(FIX=0). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFMAPPED("xxx.cel",timer,durata) Setta il valore del timer che gli volete dare se l'oggetto .cel e' mappato(visibile). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFNOTMAPPED("xxx.cel",timer,durata) Setta il valore del timer che gli volete dare se l'oggetto .cel non e' mappato(invisibile). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFMOVED(#1,timer,durata) Setta il valore del timer che gli volete dare se l'oggetto #1 e' stato mosso.Per mosso si intende che le sue coordinate sono di- verse da quelle iniziali(specificate nel file .cnf). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! IFNOTMOVED(#1,timer,durata) Setta il valore del timer che gli volete dare se l'oggetto #1 non e' stato mosso.Per mosso si intende che le sue coordinate sono di- verse da quelle iniziali(specificate nel file .cnf). Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! MAP(#numero) oppure ("xxx.cel") Se l'oggetto e' stato precedentemente unmappato(invisibile), lo si puo' far tornare visibile. Se l'oggetto e' gia' mappato il comando non provochera' alcun effetto ! UNMAP(#numero) oppure ("xxx.cel") Se l'oggetto e'mappato(visibile), lo si puo'rendere invisibile. Se l'oggetto e' gia' unmappato il comando non provochera' alcun effetto ! MOVE(#1,X,Y) Nuove un oggetto #1 nelle coordinate specificate. Occhio perche' le coordinate non solo quelle dello chermo ma quelle relative all'oggetto. Esempio ; ;@alarm(1) ;@ move(#2,40,50) ; In questo caso l'oggetto #2 verra' mosso di 40 px verso l'asse x e 50 verso l'asse y.Se volete farlo muovere in altri quadranti usate il - davanto al numero ! MOVEBYX(#1,#2,offset x) Muove un oggetto #1 lungo l'asse x del valore specificato prenden- do come centro l'oggetto #2. Per muoverlo nella direzione opposta usre il - davanti al numero. Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! Esempio ; ;@press(#1) ;@ movebyx(#2,#1,10) ; Premendo sull'oggetto #1 faremo spostare di 10 px lungo l'asse x l'oggetto #2, ma il fulcro sono le coordinate dell'oggetto #1. MOVEBYY(#1,#2,offset y) Uguale come per movebyx solo che l'oggetto si muove lungo l'asse y.Questo evento e' di tipo FKISS level 2.1 e puo' non essere sup- portato da altri viewer piu' vecchi ! MOVERANDX(#1,minimo,massimo) Muove un oggetto #1 a casaccio lungo l'asse x.Il valore varia tra il minimo e il massimo. Esempio ; ;@press(#1) ;@ moverandx(#2,-10,10) ; Pressando su #1 muoveremo l'oggetto #2 di un valore scelto a casac- cio tra -10 e 10.Provando a spingere ripetutamente sull'oggetto que- sto si muove lungo l'asse x avanti e indietro. Potrebbe simulare benissimo il ronzio di un'ape !!! Il miglior comando ,per fare questo, rimane forse moverand perche' comprende sia l'asse x che quello y.La limitazione netta e' che purtroppo non possiamo immettere l'area casuale come per moverandx e moverandye quindi l'oggetto potrá andare in qualsiasi area del- lo schermo. MOVERANDY(#1,minimo,massimo) Come per moveranx, solo che qui si usa l'asse y. MOVETORAND(#1) L'oggetto #1 si muove casualmente in determinati MOVETO(#1,x,y) Simile al comando move solo che in questo caso le coordinate corri- spondono a quelle reali dello schermo. MUSIC("3X3eyes.mid") Esegue il file midi 3x3eyes.mid. NOP() Non esegue nessun comando.Equvale a "No operation" nel linguaggio assembler. QUIT() Indica al programma di chiudere la sessione corrente.In pratica chiude la doll che state usando. RANDOMTIMER(numero,minimo,massimo) Simile a timer solo che in questo caso il tempo e' segnato da un numero casuale compreso tra il minimo e il massimo valore che gli avete assegnato. SETFIX(#1,valore di fix) Praticamente date il valore di FIX che volete al'oggetto #1. SOUND("arghh.wav") oppure("arghh.au") Esegue il file sonoro arghh.wav oppure .au !Questi sono i file attualmente supportati (.wav e .au). TIMER(durata) Fa partire un timer il cui valore e' espresso in msec. Esempio ; ;@press(#1) ;@ timer(1,1000) ; ;@alarm(1) ;@ map("xxx.cel") Pressando col mouse sull'oggetto #1 si attiva il timer 1 di 1000 msec(1 microsecondo = 1/100 di secondo). Il timer 1 viene richiamato dal comando alarm. Quando il con- tatore avviato col comando timer 1 raggiunge 0 l'oggetto xxx.cel verra' mappato(visibile). TRANSPARENT(#1,valore) oppure("xxx.cel",valore) Il valore di trasparenza lo si puo' settare all'inzio (vedi il documento Kiss1_it.txt). Pero' con questo comando lo potete fare in qualsiasi momento. Vi ricordo che il valore va da 0(totalmente visibile) a 256 (totalmente trasparente,cioe' invisibile). VIEWPORT(x,y) Questo comando cambia la visuale dello schermo nelle coordinate che avete immesso ! Utile se avete una doll piu' grande delle dimensioni dello scher- mo e non volete usare il mouse per scrollare. Esempio ; ;@press(#1) ;@ viewport(150,150) ; Premendo sull'oggetto #1 la visuale scrollera' da quella attuale verso le nuove coordinate. WINDOWSIZE(x,y) Non ho chiaro questo comando, intendo di quanto sia inutile ! Penso si attivi quando avete la finestra rimpicciolita e volete allargarla di un certo valore ! Boh...! NOTE SUGLI EVENTI E COMANDI FKISS 3 ------------------------------------------------------------------ Sono un casino...e tutt'ora me li sto studiando ! Del resto questi nuovi comandi non sono ancora perfetti al 100% e non hanno un file di testo esauriente ! Quando avro' piu' documentazione cerchero' di realizzare un terzo documento solo per loro ! Se qualcuno riesce magari, a capirci molto piu' di me,(qui en- triamo nella programmazione stretta con le variabili), puo' benis- simo provare lui stesso arealizzare il prossimo manuale ! Basta che me lo dica per tempo, pero' ! PER FINIRE ------------------------------------------------------------------ Per ulteriori esempi vi rimando alle mie doll o a quelle di altri autori. Spero di avere risolto almeno la meta' dei vostri dubbi ! Per collaborazioni,commenti vari : KD2@racine.ra.it Grazie per la vostra attenzione e buone dolls ! 2 Feb 1999. By KD2.1976