15/10/14 14:12
Thejuster
Salve ragazzi.
Oggi espongo un mio piccolo dilemma al quale sto ancora pensando a come risolvere.
Ma non riesco a trovare un indizio o un qualche esempio su cui affidarmi.
Vi spiego semplicemente cosa voglio fare.
prendete esempio questa immagine.
gdunlimited.net/forums/uploads/gallery/category_69/…
sono tanti elementi grafici disposti su una griglia, ed ogni singolo oggetto ha come dimensione 32x32 px.
Ma ci sono alcuni oggetti che hanno dimensioni superiori esempio 32x64 o 64x64
quello che volevo fare era un tracking degli oggetti.
Ho pensato di usare il Bitmap.GetPixel per sapere se l'oggetto continua o si ferma li a 32 pixel.
L'algoritmo che voglio scrivere è questo.
parto da 0 ed arrivo a 32.
se l'ultimo pixel 32 ha come colore trasparente, ferma e disegna un rettangolo 32x32
se invece non è di colore trasparente continua il traking fino a 64 ed esegui una nuova verifica.
Provando a fare ciò, sbaglio sicuramente qualche passaggio.
su alcune parti funziona ed alcune no.
A sinistra l'immagine normale su griglia
a destra con il tracking
Dove sbaglio? o ancora meglio sapete un modo migliore per fare ciò?
Oggi espongo un mio piccolo dilemma al quale sto ancora pensando a come risolvere.
Ma non riesco a trovare un indizio o un qualche esempio su cui affidarmi.
Vi spiego semplicemente cosa voglio fare.
prendete esempio questa immagine.
gdunlimited.net/forums/uploads/gallery/category_69/…
sono tanti elementi grafici disposti su una griglia, ed ogni singolo oggetto ha come dimensione 32x32 px.
Ma ci sono alcuni oggetti che hanno dimensioni superiori esempio 32x64 o 64x64
quello che volevo fare era un tracking degli oggetti.
Ho pensato di usare il Bitmap.GetPixel per sapere se l'oggetto continua o si ferma li a 32 pixel.
L'algoritmo che voglio scrivere è questo.
parto da 0 ed arrivo a 32.
se l'ultimo pixel 32 ha come colore trasparente, ferma e disegna un rettangolo 32x32
se invece non è di colore trasparente continua il traking fino a 64 ed esegui una nuova verifica.
Provando a fare ciò, sbaglio sicuramente qualche passaggio.
su alcune parti funziona ed alcune no.
Bitmap b = new Bitmap(Tileset); //Prendo la grafica Graphics g = Graphics.FromImage(b); for (int i = 0; i < b.Width; i += 32) { for (int j = 0; j < b.Height; j += 32) { Color c = b.GetPixel(i, j); if (c.Name == "0") //Se il colore è trasparente { g.DrawRectangle(Pens.Red, new Rectangle(i, j, 32, 32)); } else { g.FillRectangle(Brushes.Yellow, new Rectangle(i, j, 32, 32)); } } }
A sinistra l'immagine normale su griglia
a destra con il tracking
Dove sbaglio? o ancora meglio sapete un modo migliore per fare ciò?
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer