<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>the void. &#187; disegnare su schermo</title>
	<atom:link href="http://francescomalatesta.net/tag/disegnare-su-schermo/feed/" rel="self" type="application/rss+xml" />
	<link>http://francescomalatesta.net</link>
	<description>&#34;La Mia Ignoranza Non Ha Lacune.&#34;</description>
	<lastBuildDate>Sat, 21 Aug 2010 09:42:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Disegnare una Sprite su schermo &#8211; Grafica &#8211; XNA Tutorials</title>
		<link>http://francescomalatesta.net/2009/12/28/disegnare-una-sprite-su-schermo-grafica-xna-tutorials/</link>
		<comments>http://francescomalatesta.net/2009/12/28/disegnare-una-sprite-su-schermo-grafica-xna-tutorials/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:24:43 +0000</pubDate>
		<dc:creator>FrancescoMalatesta</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[disegnare su schermo]]></category>
		<category><![CDATA[francesco malatesta]]></category>
		<category><![CDATA[guida]]></category>
		<category><![CDATA[immagini]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://francescomalatesta.net/?p=303</guid>
		<description><![CDATA[In questo articolo scopriremo come si può disegnare su schermo una sprite con XNA. Come prima cosa avviamo l&#8217;ambiente di sviluppo e creiamo un nuovo progetto (Come si fa?). Ora, quello che noi dobbiamo fare essenzialmente è innanzitutto caricare in memoria la nostra sprite. Successivamente, andare a modificare il codice del metodo Draw per poter [...]]]></description>
			<content:encoded><![CDATA[<p>In questo articolo scopriremo come si può disegnare su schermo una sprite con XNA. Come prima cosa avviamo l&#8217;ambiente di sviluppo e creiamo un nuovo progetto (<a href="http://francescomalatesta.net/2009/12/26/creazione-di-un-nuovo-progetto-inizio-e-preparazione-xna-tutorials/" target="_blank">Come si fa?</a>). Ora, quello che noi dobbiamo fare essenzialmente è innanzitutto caricare in memoria la nostra sprite. Successivamente, andare a modificare il codice del metodo Draw per poter disegnare sullo schermo quello che vogliamo.</p>
<p>Ecco l&#8217;immagine che disegneremo su schermo:</p>
<p style="text-align: center;"><img class="alignnone" src="http://francescomalatesta.net/wp-content/uploads/2009/11/1257516198558_f.jpg" alt="" width="189" height="250" /></p>
<p style="text-align: center;">Autostima alle stelle, eh?</p>
<ul>
<li><strong>Importiamo l&#8217;immagine nel progetto.</strong></li>
</ul>
<p>Come prima cosa, dobbiamo importare la nostra immagine in modo tale da essere riconosciuta. Le possibilità, in questo caso, sono due:</p>
<ol>
<li>Importare l&#8217;immagine con il ContentManager;</li>
<li>Caricare l&#8217;immagine direttamente da file;</li>
</ol>
<p>Ovviamente, spiegherò sia un metodo che l&#8217;altro.</p>
<p>Per caricare un&#8217;immagine con il ContentManager, importiamo il file cliccando con il pulsante destro su <strong>Content</strong>, nella scheda Esplora Soluzioni, selezionando quindi <em>Aggiungi -&gt; Elemento Esistente</em>.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-305" title="123" src="http://francescomalatesta.net/wp-content/uploads/2009/12/123.jpg" alt="123" width="249" height="212" /></p>
<p style="text-align: center;"><em>La voce Content evidenziata nella scheda Esplora Soluzioni.</em></p>
<p style="text-align: left;">Si aprirà una classica finestra di apertura file: selezioniamo il file da importare e confermiamo. Ora ecco come appare la voce Content:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-306" title="asd" src="http://francescomalatesta.net/wp-content/uploads/2009/12/asd.jpg" alt="asd" width="242" height="241" /></p>
<p style="text-align: left;"><strong>Attenzione: </strong>quando importerete l&#8217;immagine (se usate la mia immagine di esempio) il nome non è lo stesso. Ho modificato il nome direttamente da Esplora Soluzioni per rendere l&#8217;uso del file più agevole.</p>
<p style="text-align: left;">Bene, adesso dobbiamo aggiungere il codice: innanzitutto facciamo le prime modifiche subito dopo la dichiarazione dell&#8217;oggetto SpriteBatch.</p>
<pre class="brush: csharp;">
public class Game1 : Microsoft.Xna.Framework.Game
    {
        GraphicsDeviceManager graphics;
        SpriteBatch spriteBatch;

        // Ecco la nostra texture.
        Texture2D immagine;

        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = &quot;Content&quot;;
        }
</pre>
<p>Come potete vedere, ho dichiarato un nuovo oggetto di tipo Texture2D: rappresenta esattamente la nostra immagine. Ora dobbiamo dire a quest&#8217;oggetto di prendere come immagine di riferimento la nostra. Il codice da utilizzare, posto nel metodo LoadContent, è il seguente:</p>
<pre class="brush: csharp;">
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
            immagine = Content.Load&lt;Texture2D&gt;(&quot;texture&quot;);
        }
</pre>
<p>In parole povere abbiamo usato il metodo Load del ContentManager (con tipo Texture2D) e abbiamo passato come parametro una stringa contenente il nome del file importato <strong>senza</strong> estensione.</p>
<p>Con questa istruzione abbiamo completato questo tipo di caricamento. Spesso, tuttavia, per alcune scelte è possibile evitare tutto questo procedimento, caricando la nostra Texture in modo differente. Nello specifico, il metodo che sto per illustrare permette di caricare la texture specificando il percorso della nostra immagine.</p>
<p>Supponiamo che nella cartella dell&#8217;eseguibile del gioco ci sia un&#8217;altra cartella, che chiameremo Graphics. In questa cartella vi sarà la nostra immagine. Ecco un&#8217;immagine per farvi capire meglio.</p>
<p style="text-align: center;"><a href="http://francescomalatesta.net/wp-content/uploads/2009/12/Senza-titolo-61.jpg"><img class="alignnone size-medium wp-image-307" title="Senza titolo-6" src="http://francescomalatesta.net/wp-content/uploads/2009/12/Senza-titolo-61-300x211.jpg" alt="Senza titolo-6" width="300" height="211" /></a></p>
<p style="text-align: center;">(Click per Ingrandire)</p>
<p style="text-align: left;">Stavolta, per caricare la nostra texture, ecco cosa dovremo fare:</p>
<p style="text-align: left;">Senza aggiungere con il ContentManager il nostro file, basterà cambiare il metodo LoadContent come riportato qui di seguito:</p>
<pre class="brush: csharp;">
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
            immagine = Texture2D.FromFile(GraphicsDevice, &quot;Graphics/texture.jpg&quot;);
        }
</pre>
<p>Stavolta abbiamo utilizzato il metodo FromFile della classe Texture2D. Come parametri del metodo passiamo l&#8217;oggetto GraphicDevice e una stringa che contiene il percorso del file. Nulla di più, e anche in questo modo la nostra texture è pronta per essere utilizzata!</p>
<ul>
<li><strong>Disegnamo la Sprite su schermo</strong></li>
</ul>
<p>La <strong>fase di disegno </strong>è ancora più semplice.</p>
<p>Come prima cosa passiamo dal metodo LoadContent al metodo Draw: basterà aggiungere queste tre righe di codice per disegnare la nostra Sprite.</p>
<pre class="brush: csharp;">
        protected override void Draw(GameTime gameTime)
        {
            GraphicsDevice.Clear(Color.CornflowerBlue);

            spriteBatch.Begin();

            spriteBatch.Draw(immagine, new Vector2(0, 0), Color.White);

            spriteBatch.End();

            // TODO: Add your drawing code here
            base.Draw(gameTime);
        }
</pre>
<p>Per prima cosa abbiamo avviato lo SpriteBatch, l&#8217;oggetto che si occupa delle operazioni di disegno. <em>Ricordatevi, il metodo Begin() deve essere sempre chiamato prima di qualsiasi disegno</em>, altrimenti vi verrà restituito un errore.</p>
<p>Successivamente chiamiamo il metodo Draw, al quale passiamo i seguenti parametri:</p>
<ul>
<li>nome dell&#8217;oggetto Texture2D da disegnare,</li>
<li>la posizione dell&#8217;oggetto sullo schermo,</li>
<li>il colore da usare per il channel modulation (vi basti sapere per ora che usare Color.White è più che sufficiente, in seguito vedremo cosa succede variando questo valore)</li>
</ul>
<p>Infine richiamiamo il metodo End() dello SpriteBatch. Ed ecco il risultato sullo schermo:</p>
<p style="text-align: center;"><a href="http://francescomalatesta.net/wp-content/uploads/2009/12/Senza-titol654.jpg"><img class="alignnone size-medium wp-image-309" title="Senza titol654" src="http://francescomalatesta.net/wp-content/uploads/2009/12/Senza-titol654-300x234.jpg" alt="Senza titol654" width="300" height="234" /></a></p>
<p style="text-align: center;">(Click per Ingrandire)</p>
<p style="text-align: left;">Come vedete, basta veramente poco a disegnare qualcosa su schermo. Nei prossimi articoli vedremo un pò come realizzare animazioni, ruotare queste texture ed ingrandirle o rimpicciolirle.</p>
<p style="text-align: left;">Bye <img src='http://francescomalatesta.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffrancescomalatesta.net%2F2009%2F12%2F28%2Fdisegnare-una-sprite-su-schermo-grafica-xna-tutorials%2F&amp;linkname=Disegnare%20una%20Sprite%20su%20schermo%20%26%238211%3B%20Grafica%20%26%238211%3B%20XNA%20Tutorials"><img src="http://francescomalatesta.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://francescomalatesta.net/2009/12/28/disegnare-una-sprite-su-schermo-grafica-xna-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
