dettagli - Amiga Magazine

dettagli - Amiga Magazine dettagli - Amiga Magazine

amigamagazine.info
from amigamagazine.info More from this publisher
08.11.2012 Views

Abbiamo parlato di ... Come al solito, Arninet si rivela una riserva inesauribile per i programma- tori Amiga. Ecco i riferimenti agli archivi contenenti r pacchetti citati in questa puntata (e ad alcuni archivi supplementari): GUI4CLI dev/gui/gui4cli.lha MUIRexx dev/mui/MUIRexx~2~2.lha TritonRexx util/rexx/TritonRexx376.lha ZedRexx util/rexx/ZedREXX.lha (versione dimostrativa) RexxARPlib util/rexx/ral3p3. lha e docs/hyper/RexxArpGuide. lha VAREXX util/rexx/varexx.lha EasyGUI dev/e/amigae.lha (pacchetto di Amiga E) dev/e/EasyGUI.lha (versione aggiornata) dev/e/frumSPlugsll.lha (plug-in) dev/e/Egui-Tools.lha (plug-in e altro) dev/e/multiGUI.lha (finestre multiple) dev/e/Plugin-Bitmap.1ha (plug-in) dev/e/Plugin-TIB.lha (plug-in) MUSE dev/e/Muse.lha Oberon/BGUI dev/obero/bguiob41-7.lha Oberon/GUIEnv dev/obero/guienv376~upl.lha Modula-2/EAGUI dev/gui/M2EAGUI.lha Ada/MUI dev/lang/amiga-ada.1ha ne deila GIJI non e di tipo logico, come per gli altri framework, ma di tipo fisico 11 programmatore deve specificare le coordi- nate e le dimensioni (in pixel di schermo) di ogni componente della GUI, rinuncidn- do alla ridimensionabilità e alla sensibilita al tont in LISO (a meno di implementarla ' inanualmente') Si tratta di un difetto gra- ve, solo par7ialinente controbilanciato dal- la maggiore flessibilith nella gestione degli eventi (fra i quali spicca la possibiliti di ri- Lezione dei messaggi ARexx) Anche in questo la descr17ione "'ld GUI sfmt- ta le liste di F, che però non sono trattate in modo gerarchico (proprio perché si trat- ta di descriLione fisica), oltre di gad- get, possono essere indicati menu, ele- menti grafici, shortcut da tastiera ed eventi di vario tipo I1 programmatore può intera- gire con la GLTI attraverso l'uso di un certo numero di funzioni esportate dal modulo MUSE, che per la verità non ci sono parse proprio coinodissime Considerato anche i1 maggior supporto di terLe parti disponibile per EasyGUI, ci sentiamo di sconsigliare 1 uso di MUSE per i casi più coinuni Altri linguaggi Per esigenze piu sofisticate, è possibile ricorrere ai plz~g-zn, La nostra breve trattazione non esaurisce di certo la gamma dei linguaggi e degli ambienti per la generazione di GUI disponibili su Amigd Molti ovvero estensioni di EasyGUI (implementate come OBJECT di essi, almeno in qualche implementazione, hanno un gedi Amiga E) che forniscono gadget piu complessi o non- stole di GIJI integrato (è i1 caso del Hasic, dello Sn~allTalk, standard, e\entualmente inteifdcciandosi con oggetti BOO- del Logo ), anche se spesso piuttosto primitivo Quasi tutti i PSI preesistenti, dicerse iaccolte di plz~g-zn di terze parti so- linguaggi possono poi interkacciarsi in qualche modo con i no disponibili su Aininet piu diftusi programmi per il disegno di interfacce grafiche, come GadToolsHox (Oberon), oppure con i framework più EasyGUI non è l unica alternativa per i1 programmatore diffusi, conle BGUI (ancora Oberon), MUI (Ada) o EAGUI Amiga E (che, ricordiamolo, può sempre ricorrere a uno (Modula-2) Insomma, anche con i iingiiaggi meno diffiisi 11 qualunque dei bdmework generici), i1 pacchetto MUSE si problema maggiore e quello delld scelta deii'dpproccio piu propone di offrire fun~ionalith analoglie quando non superiori In realta, MUSE soffre di un grave difetto la descri~ioconveniente E dell'esisten7a di questi problemi, in verità, possiamo solo essere contenti! A

Campi stellari La realizzazione di un campo tridimensionale in assembly Negli ultimi tempi, non solo le pagine di Amiga Magazine, ma anche quelle di altre famose testate dedicate alla pro- grammazione, sono state letteralmente affollate di articoli che, per mezzo di equazioni, calcoli matriciali, vettori, e quant'altro la matematica moderna mette a disposizione, tentano di infondere al lettore le basi per la programmazio- ne di un Engine 3D. Purtroppo, come noto, l'attuale gene- razione di Amiga, non è particolarmente adatta alla gestio- ne della grafica 3D, sia a causa del suo sottosistema grafico orientato ai bitplane, sia per la cronica indisponibilità di CPU e memoria veloce sulla gran parte delle macchine in- stallate. Inoltre molti, per mancanza di voglia, o a causa di scarse conoscenze matematiche, non sono in grado di affrontare letture impegnative sul tracciamento di poligoni, sull'imple- mentazione dello 2-Buffer o sulle tecniche di texture, ma preferirebbero semplicemente riuscire a realizzare sul pro- prio Amiga semplici effetti tridimensionali, da utilizzare in piccole realizzazioni software, come demo, intro, ma anche effetti video, animazioni e così via. Nulla comunque esclu- de che, una volta acquisite le necessarie basi di partenza, non si possa poi appr'ofondire l'argomento grazie all'aiuto di testi o pubblicazioni specifiche. Owiamente questo articolo non si prefigge l'obiettivo di affrontare in maniera completa le problematiche relative al tracciamento di punti in uno spazio 3D, ma più semplice- mente intende dare un approccio semplice e lineare al pro- grammatore Amiga che possiede già delle minime cono- scenze di base della programmazione a livello hardware e che vuole cominciare a "masticare" del 3D realizzando un campo di stelle (pixel) che si avvicinano in direzione dell'osservatore. Come sempre, useremo il linguaggio as- sembly, che permette di avere potenza sufficiente, anche su macchine dotate di 68000 o 68020. Consigliamo anche a chi non è direttamente interessato alla creazione di campi stellari, di leggere con attenzione I'inte- ro articolo. Questo infatti può anche essere considerato un pretesto per cominciare ad avvicinare in maniera niente af- fatto teorica la grafica 3D e tecniche di programmazione particolari. L'obiettivo 1 Cominciamo definendo esattamente cosa realizzare: voglia- mo avere un certo numero di punti che, originandosi nella zona centrale dello schermo (teoricamente lontano dall'os- servatore, ossia da chi guarda il monitor), sembrino awici- narsi sempre di più, fino a uscire dai bordi esterni del qua- dro. Per avere una resa migliore, in seguito faremo in mo- do di variare il colore dei pixel tracciati, così che quelli più lontani risultino più scuri, mentre quelli più vicini, appaia- no più chiari. Tutto questo per sopperire al fatto che i pixel, pur avvicinandosi, non aumentano di dimensione. Coloro che non avessero ancora ben chiaro il risultato che otterremo, pensino ad un comune videogioco spaziale 3D, nel quale la navicella del giocatore, che la osserva posteriormente, naviga in linea retta verso le profondità dello spazio, mentre le stelle, o il pulviscolo spaziale si awicinano velocemente. La teoria minima l Come è facilmente immaginabile anche da chi è completa- mente a digiuno di nozioni sulla grafica tridimensionale, ciascuna stella è costituita da un punto definito da tre coor- dinate: Xp, Xp e Zp. Xp definisce la posizione orizzontale - - del punto, da sinistra a destra; Yp quella verti- cale dall'alto verso il basso; Zp la distanza del punto dall'osserva- tore (figura 1). Lo schermo del computer si basa invece sulle sole coordinate Xs e Ys (fi- gura 2), trattandosi di un sistema bidimensio- Fig. 1 - Gli assi del mondo 30.

Abbiamo parlato di ...<br />

Come al solito, Arninet si rivela una riserva inesauribile per i programma-<br />

tori <strong>Amiga</strong>. Ecco i riferimenti agli archivi contenenti r pacchetti citati in<br />

questa puntata (e ad alcuni archivi supplementari):<br />

GUI4CLI dev/gui/gui4cli.lha<br />

MUIRexx dev/mui/MUIRexx~2~2.lha<br />

TritonRexx util/rexx/TritonRexx376.lha<br />

ZedRexx util/rexx/ZedREXX.lha (versione dimostrativa)<br />

RexxARPlib util/rexx/ral3p3. lha e docs/hyper/RexxArpGuide. lha<br />

VAREXX util/rexx/varexx.lha<br />

EasyGUI dev/e/amigae.lha (pacchetto di <strong>Amiga</strong> E)<br />

dev/e/EasyGUI.lha (versione aggiornata)<br />

dev/e/frumSPlugsll.lha (plug-in)<br />

dev/e/Egui-Tools.lha (plug-in e altro)<br />

dev/e/multiGUI.lha (finestre multiple)<br />

dev/e/Plugin-Bitmap.1ha (plug-in)<br />

dev/e/Plugin-TIB.lha (plug-in)<br />

MUSE dev/e/Muse.lha<br />

Oberon/BGUI dev/obero/bguiob41-7.lha<br />

Oberon/GUIEnv dev/obero/guienv376~upl.lha<br />

Modula-2/EAGUI dev/gui/M2EAGUI.lha<br />

Ada/MUI dev/lang/amiga-ada.1ha<br />

ne deila GIJI non e di tipo logico, come<br />

per gli altri framework, ma di tipo fisico 11<br />

programmatore deve specificare le coordi-<br />

nate e le dimensioni (in pixel di schermo)<br />

di ogni componente della GUI, rinuncidn-<br />

do alla ridimensionabilità e alla sensibilita<br />

al tont in LISO (a meno di implementarla<br />

' inanualmente') Si tratta di un difetto gra-<br />

ve, solo par7ialinente controbilanciato dal-<br />

la maggiore flessibilith nella gestione degli<br />

eventi (fra i quali spicca la possibiliti di ri-<br />

Lezione dei messaggi ARexx) Anche in<br />

questo la descr17ione "'ld GUI sfmt-<br />

ta le liste di F, che però non sono trattate<br />

in modo gerarchico (proprio perché si trat-<br />

ta di descriLione fisica), oltre di gad-<br />

get, possono essere indicati menu, ele-<br />

menti grafici, shortcut da tastiera ed eventi<br />

di vario tipo I1 programmatore può intera-<br />

gire con la GLTI attraverso l'uso di un certo<br />

numero di funzioni esportate dal modulo<br />

MUSE, che per la verità non ci sono parse<br />

proprio coinodissime Considerato anche i1<br />

maggior supporto di terLe parti disponibile<br />

per EasyGUI, ci sentiamo di sconsigliare<br />

1 uso di MUSE per i casi più coinuni<br />

Altri linguaggi<br />

Per esigenze piu sofisticate, è possibile ricorrere ai plz~g-zn,<br />

La nostra breve trattazione non esaurisce di<br />

certo la gamma dei linguaggi e degli ambienti<br />

per la generazione di GUI disponibili su Amigd Molti<br />

ovvero estensioni di EasyGUI (implementate come OBJECT di essi, almeno in qualche implementazione, hanno un gedi<br />

<strong>Amiga</strong> E) che forniscono gadget piu complessi o non- stole di GIJI integrato (è i1 caso del Hasic, dello Sn~allTalk,<br />

standard, e\entualmente inteifdcciandosi con oggetti BOO- del Logo ), anche se spesso piuttosto primitivo Quasi tutti i<br />

PSI preesistenti, dicerse iaccolte di plz~g-zn di terze parti so- linguaggi possono poi interkacciarsi in qualche modo con i<br />

no disponibili su Aininet piu diftusi programmi per il disegno di interfacce grafiche,<br />

come GadToolsHox (Oberon), oppure con i framework più<br />

EasyGUI non è l unica alternativa per i1 programmatore diffusi, conle BGUI (ancora Oberon), MUI (Ada) o EAGUI<br />

<strong>Amiga</strong> E (che, ricordiamolo, può sempre ricorrere a uno (Modula-2) Insomma, anche con i iingiiaggi meno diffiisi 11<br />

qualunque dei bdmework generici), i1 pacchetto MUSE si problema maggiore e quello delld scelta deii'dpproccio piu<br />

propone di offrire fun~ionalith analoglie quando non superiori<br />

In realta, MUSE soffre di un grave difetto la descri~ioconveniente<br />

E dell'esisten7a di questi problemi, in verità,<br />

possiamo solo essere contenti! A

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!