Newsgroup: it.comp.lang.delphi
Titolo: MAPPA ROMBOIDALE : SECOND STEP







GRAZIEEEEEE!!!!


il primo passo è riuscito con buoni risultati... 
ora però viene il secondo.... ossia:


come posso visualizzare la matrice? Io ho creato il 
tutto, ma (ovviamente) la


mia matrice è solo caricata in memoria... Dovrei a 
questo punto visualizzarla in modo


grafico... ACCETTO QUALUNQUE GENERE DI 
CONSIGLIO!!!! :)


 




1) Lieto d'aiutarti!
2) Nei Newsgroup si usa postare in formato testo, non in html!
   Non è un vizio procedurale, ma una necessita' sostanziale.
   Impegna meno spazio ed è piu' veloce nel trasferimento.
   Inoltre, il tuo attuale messaggio su alcuni mailer
   corre il rischio di essere visualizzato cosi:
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
   <HTML><HEAD><META content=3D"text/html; charset=3Diso-8859-1" =
   http-equiv=3DContent-Type>
   <META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
   <STYLE></STYLE></HEAD><BODY bgColor=3D#ffffff>
   <DIV><FONT face=3DArial size=3D2>
   <DIV><FONT face=3DArial size=3D2>GRAZIEEEEEE!!!!</FONT></DIV>
   <DIV><FONT face=3DArial size=3D2>il primo passo =E8 riuscito con buoni =
   risultati...=20
   ora per=F2 viene il secondo.... ossia:</FONT></DIV>
   <DIV><FONT face=3DArial size=3D2>come posso visualizzare la matrice? Io =
   ho creato il=20
   tutto, ma (ovviamente) la</FONT></DIV>
   <DIV><FONT face=3DArial size=3D2>mia matrice =E8 solo caricata in =
   memoria... Dovrei a=20
   questo punto visualizzarla in modo</FONT></DIV>
   <DIV><FONT face=3DArial size=3D2>grafico... ACCETTO QUALUNQUE GENERE
DI=20
   CONSIGLIO!!!! :)</FONT></DIV>
   <DIV>&nbsp;</DIV></FONT></DIV></BODY></HTML>
   <!-- Abbiate Pazienza ;)-->
3) L'argomento è interessante,
   ma posta qualche pezzetto di codice!
   La matrice, ad esempio, come e' definita?
   altrimenti corriamo il rischio di non intenderci!
Ciao!
Ammatwain


dunque per una mappa tipo civilization, la cosa e' piuttosto complicata.
Visto che interessa a piu' di uno e che ho fatto qualcosa del genere, ho
uploadato il mio programma (con sorgenti) qui:
http://www.dsi.unive.it/~nlugato/mappa.zip
Non aspettatevi di capire granche', perche' e' abbastanza complesso e
ovviamente incasinato e assolutamente senza commenti (come si confa' a un
buon programmatore :))
Comunque il fatto e' che la porzione di mappa da visualizzare e' inclinata
di 45°, quindi si fara'
  for ix:=0 to 12 do  // 12 = tile da visualizzare
   for iy:=-ix to ix do
    visualizzatile;
questo seleziona una porzione di mappa a forma di "quadro delle carte da
poker":
    o
  ooo
ooooo
  ooo
    o
ovviamente, essendo le caselle romboidali anch'esse, verra' alla fine
visualizzato un grande rettangolo sullo schermo (come presumibilmente
vogliamo)
oooooooooo
 oooooooooo
oooooooooo
 oooooooooo
VisualizzaTile + o - e' cosi':
dxdraw.surface.Draw( (ix*32)-(iy*32) , ((ix*32)+(iy*32)) div 2,
rect(0,0,64,32),sourcesurface,true);
le posizioni come si vede sono:
x = (ix*32)-(iy*32)
y = ((ix*32)+(iy*32)) div 2
y e' diviso per 2 perche' le caselle che uso io sono 64x32 (dei rombi
disposti orizzontalmente).
come vedete i calcoli non sono banali come sarebbero se le caselle fossero
quadrate o rettangolari.. infatti ho penato non poco per trovare queste
espressioni (le ho trovate empiricamente :)
Nella vaga speranza che si sia capito qualcosa, vi saluto :)
{MSX}


dunque per una mappa tipo civilization, la cosa e' piuttosto complicata.



dunque per una mappa tipo civilization, la cosa e' piuttosto complicata.






Ehm... credo che devi rifare il file zip perchè è 
vuoto! :)))


Comunque grazie di 
tutto!