Colore di trasparenza :(

martedì 22 agosto 2006 - 22.17

Hakai87 Profilo | Newbie

Salve a tutti,
nel mio programma ho una PictureBox con una immagine che rappresenta un terreno di gioco. Ora dovrei mettere sopra al terreno un personaggio che si muova nello spazio delimitato nella picturebox. La parte del codice è pronta il problema è l'immagine :( come faccio a mettere sopra il pg ma che si veda dietro di lui il terreno?sapevo di questa storia del colore che non si vede ma non so come usarlo e con quale classe questo membro è usabile :(
aiutatemi :D

ciao

[uso Sharpdevelop ... il programma è in c#]

Brainkiller Profilo | Guru

>nel mio programma ho una PictureBox con una immagine che rappresenta
>un terreno di gioco. Ora dovrei mettere sopra al terreno un personaggio
>che si muova nello spazio delimitato nella picturebox. La parte

Ciao,
prova con il metodo MakeTransparent() della classe Bitmap. Una volta caricato il tuo sprite applichi il MakeTransparent passando come parametro il colore che vuoi far diventare trasparente (in gergo tecnico la maschera/mask).

Seconda soluzione usa DirectX (managed) in particolare DirectDraw utile per fare giochini 2D.
ciao


David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

Hakai87 Profilo | Newbie

Sono ancora abbastanza inesperto. DirectX non ho la più pallida idea di come si usi

Per quanto riguarda la Bitmap quando ne creo una mi dice:
'System.Drawing.Bitmap.Bitmap()' è inaccessibile a causa del livello di protezione.
Che posso fare?
Io setto il bitmap nella classe(private class)iniziale(quella del form) e poi scrivo bmp = new Bitmap(); nel public InizioGioco()

Il resto funziona molto bene .. devo dire che il c# è veramente molto potente come linguaggio(e lo conosco molto poco quello che mi affascina)

un'altra domandina ... c'è un modo per far fermare il tutto per pochi secondi?del tipo c'è l'animazione e devi attendere che finisca prima di andare avanti nel gioco? :( pensavo mettendo un timer ma speravo ci fosse un metodo + semplice (tipo wait 2sec :D)

totti240282 Profilo | Guru

Private Sub MakeTransparent_Example2(ByVal e As PaintEventArgs) ' Create a Bitmap object from an image file. Dim myBitmap As New Bitmap("Grapes.gif") ' Draw myBitmap to the screen. e.Graphics.DrawImage(myBitmap, 0, 0, myBitmap.Width, _ myBitmap.Height) ' Get the color of a background pixel. Dim backColor As Color = myBitmap.GetPixel(1, 1) ' Make backColor transparent for myBitmap. myBitmap.MakeTransparent(backColor) ' Draw the transparent bitmap to the screen. e.Graphics.DrawImage(myBitmap, myBitmap.Width, 0, myBitmap.Width, _ myBitmap.Height) End Sub
C'è solo un capitano !!!!!!

Hakai87 Profilo | Newbie

Ho messo il codice:
public void MakeTransparent_Example2(PaintEventArgs e)
{

// Create a Bitmap object from an image file.
Bitmap myBitmap = new Bitmap("Grapes.gif");

// Draw myBitmap to the screen.
e.Graphics.DrawImage(
myBitmap, 0, 0, myBitmap.Width, myBitmap.Height);

// Get the color of a background pixel.
Color backColor = myBitmap.GetPixel(1, 1);

// Make backColor transparent for myBitmap.
myBitmap.MakeTransparent(backColor);

// Draw the transparent bitmap to the screen.
e.Graphics.DrawImage(
myBitmap, myBitmap.Width, 0, myBitmap.Width, myBitmap.Height);
}

Ma non so come settare la location , il size e soprattutto quale è l'immagine @_@
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5