lunedì 10 ottobre 2011

tutorial XNA introduzione alla creazione di video giochi

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-xna-introduzione-alla-programma_1082.aspx





Introduzione



In questa seria di articoli che fanno parte del tutorial per la creazione di video giochi, vedremo come imparare a creare video giochi con la tecnologia XNA.
La serie di questi articoli fornisce le basi, per acquisire le conoscenze per la programmazione dei video giochi, in ambito Windows, ma facilmente adottabile anche per la console Xbox.



Vedremo i primi passi di come utilizzare le funzionalità dell’ambiente di sviluppo Visual Studio 2010 e le classi del Framework XNA 4, il tutto tramite il linguaggio di programmazione C#.



Il risultato finale, sarà la visualizzazione di una scritta nel nostro gioco, il tutto come mostrato in figura 1.





Figura 1




Creazione del gioco



Si crea un nuovo gioco, chiamato “Gioco” (il nome è scelto in base al vostro gradimento, selezionando la categoria XNA, e tra i modelli disponibili quelli relativo a Windows. Nella finestra esplora soluzione, fate click sul progetto denominato “GiocoContent”, questo progetto, ha il compito di aggiungere elementi di contenuti, come i font, immagini, effetti e tanto altro.
Fate click sul pulsante destro, e selezionate la voce “Add” e successivamente la voce “New Item”, nella finestra che viene aperta (figura 2) selezione il modello con la dicitura “Sprint Font”




Figura 2




In questo modo possiamo gestire il testo in modo che possiamo applicare un determinato stile. Lasciamo di default, il nome che ci viene suggerito, ossia “SprintFont1.spritefont”.
Confermiamo il tutto, tramite il pulsante “Add”.



Se apriamo il file appena aggiunto, vedremo che è un file di tipo XML, con determinati nodi.
Questo file, permette di impostare ,il tipo di carattere, la grandezza, Il tipo di carattere ed altro ancora.



Dopo la dichiarazione di classe, si crea un oggetto di tipo sprintfont, che ci permette di gestire a livello di classe il testo.



GraphicsDeviceManager graphics;



SpriteBatch spriteBatch;



//gestione font



SpriteFont spriteFont;









Dopo la dichiarazione di oggetti che mette in automatico visual studio, ossia GraphicDeviceManager e spritebatch, scriviamo un oggetto di tipo “SpriteFont”, il tutto come mostrato nel seguente frammento di codice.




public class Game1 : Microsoft.Xna.Framework.Game



{





GraphicsDeviceManager graphics;



SpriteBatch spriteBatch;



//gestione font



SpriteFont spriteFont;







A questo punto, dobbiamo inizializzare l’oggetto SpriteFont, creato in precedenza, con il contenuto creato in precedenza.
Nell’evento “LoadContent”, tramite il metodo load della classe Content, impostiamo il nostro contenuto.
Qui di seguito si riporta il frammento di codice d’esempio.




protected override void LoadContent()



{



// Create a new SpriteBatch, which can be used to draw textures.



spriteBatch = new SpriteBatch(GraphicsDevice);



//imposto l'oggetto sprintFont con il contenuto



spriteFont = Content.Load<SpriteFont>("SpriteFont1");





// TODO: use this.Content to load your game content here



}



Nel caso, che si vuole chiudere l’applicazione, tramite il pulsante “Esc” della tastiera, si deve aggiungere nell’evento update, la gestione di tale pulsante.
Qui di seguito si riporta il codice di tale operazione.


protected override void Update(GameTime gameTime)



{



// Allows the game to exit



if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)



this.Exit();





// TODO: Add your update logic here



// tramite il pulsante esc chiudo il gioco



if (Keyboard.GetState().IsKeyDown(Keys.Escape))



this.Exit();



base.Update(gameTime);



}







Ora, non resta che impostare la scritta a video.
Nell’evento draw, dopo il metodo clear, dobbiamo utilizzare il metodo DrawString dell’oggetto spritebatch, per scrivere del testo, tale metodo,accetta diversi parametri, come l’oggetto sprinfont, creato in precedente, il testo, la posizione, definita tramite un oggetto di tipo Vector2, ed il colore.
Il tutto va eseguito tra il metodo Begin e End, sempre dell’oggetto spriteBatch.




protected override void Draw(GameTime gameTime)



{



GraphicsDevice.Clear(Color.CornflowerBlue);



// Imposto il testo



spriteBatch.Begin();



spriteBatch.DrawString(spriteFont, "Testo", new Vector2(0, 0), Color.White);



spriteBatch.End();





// TODO: Add your drawing code here





base.Draw(gameTime);



}





Qui di seguito si riporta il codice completo del nostro primo gioco.




public class Game1 : Microsoft.Xna.Framework.Game



{



GraphicsDeviceManager graphics;



SpriteBatch spriteBatch;



//gestione font



SpriteFont spriteFont;





public Game1()



{



graphics = new GraphicsDeviceManager(this);



Content.RootDirectory = "Content";



}





/// <summary>



/// Allows the game to perform any initialization it needs to before starting to run.



/// This is where it can query for any required services and load any non-graphic



/// related content. Calling base.Initialize will enumerate through any components



/// and initialize them as well.



/// </summary>



protected override void Initialize()



{



// TODO: Add your initialization logic here





base.Initialize();



}





/// <summary>



/// LoadContent will be called once per game and is the place to load



/// all of your content.



/// </summary>



protected override void LoadContent()



{



// Create a new SpriteBatch, which can be used to draw textures.



spriteBatch = new SpriteBatch(GraphicsDevice);



//imposto l'oggetto sprintFont con il contenuto



spriteFont = Content.Load<SpriteFont>("SpriteFont1");





// TODO: use this.Content to load your game content here



}





/// <summary>



/// UnloadContent will be called once per game and is the place to unload



/// all content.



/// </summary>



protected override void UnloadContent()



{



// TODO: Unload any non ContentManager content here



}





/// <summary>



/// Allows the game to run logic such as updating the world,



/// checking for collisions, gathering input, and playing audio.



/// </summary>



/// <param name="gameTime">Provides a snapshot of timing values.</param>



protected override void Update(GameTime gameTime)



{



// Allows the game to exit



if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)



this.Exit();





// TODO: Add your update logic here



if (Keyboard.GetState().IsKeyDown(Keys.Escape))



this.Exit();



base.Update(gameTime);



}





/// <summary>



/// This is called when the game should draw itself.



/// </summary>



/// <param name="gameTime">Provides a snapshot of timing values.</param>



protected override void Draw(GameTime gameTime)



{



GraphicsDevice.Clear(Color.CornflowerBlue);



spriteBatch.Begin();



spriteBatch.DrawString(spriteFont, "Testo", new Vector2(0, 0), Color.White);



spriteBatch.End();





// TODO: Add your drawing code here





base.Draw(gameTime);



}



}







Centrare il testo



Qui di seguito vediamo una tecnica di come centrare il testo nella nostra finestra
Si crea a livello di classe, un oggetto di tipo Vector2, che avrà il compito di gestire la posizione del nostro font.
Qui di seguito si riporta l’esempio di codice.




GraphicsDeviceManager graphics;



SpriteBatch spriteBatch;



//gestione font



SpriteFont spriteFont;



//oggetto per la posizione



Vector2 posizioneTesto;







Nell’evento loadContent, dobbiamo impostare le coordinate di posizionamento per l’oggetto di tipo Vector2 creato in precedenza.
Qui di seguito si riporta il frammento di codice.




protected override void LoadContent()



{



// Create a new SpriteBatch, which can be used to draw textures.



spriteBatch = new SpriteBatch(GraphicsDevice);



//imposto l'oggetto sprintFont con il contenuto



spriteFont = Content.Load<SpriteFont>("SpriteFont1");



//imposto le coordinate della posizione



posizioneTesto = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2, graphics.GraphicsDevice.Viewport.Height / 2);





// TODO: use this.Content to load your game content here



}







Terminata questa parte, si passa all’evento Draw, nel quale andremo ad impostare il testo da visualizzare
Si crea un oggetto Vector2, che avrà il compito di gestire il testo di orgine.
Nel metodo DrawString, impostiamo la visualizzazione, passando come valori, un oggetto di tipo sprintFont, creato in precedenza, il testo da visualizzare, l’oggetto vector2 relativo al posizionamento del testo, il colore del testo, il tipo di rotazione, il testo di origine, scala ed effetti.
Qui di seguito si riporta il frammento di codice, relativo al metodo Draw, per tali operazioni.




protected override void Draw(GameTime gameTime)



{



GraphicsDevice.Clear(Color.CornflowerBlue);



spriteBatch.Begin();



Vector2 vectorTesto = spriteFont.MeasureString("Testo") / 2;





spriteBatch.DrawString(spriteFont, "Testo", posizioneTesto, Color.White, 0, vectorTesto, 1.0f, SpriteEffects.None, 0.5f);



spriteBatch.End();





// TODO: Add your drawing code here





base.Draw(gameTime);



}





Conclusioni



In questo articolo, abbiamo visto come gestire del testo e prendere confidenza con questa tecnologia.
Si è voluta fornire al lettore, le basi, per comprendere il funzionamento di base di questa tecnologia, ed avvicinarsi alle classi di XNA 4.
Il testo, è un elemento spesso utilizzato nella creazione di giochi ed effetti particolari.

domenica 9 ottobre 2011

da Roma a Stintino con mezzi pubblici (pullman e nave)

Il fuori tema di questo mese, è dedicato alla vacanza che ho fatto a luglio a Stintino.
Partendo da Roma, si può facilmente arrivare, con mezzi pubblici, o meglio nave e pullman di linea, evitando così costi per la propria macchina, inquinamento e traffico.
Come fare? semplice.
Da Roma Civitavecchia, sono partito con le linee Grimaldi, che arrivano a Porto Torres, da li, tramite l'autolinea pubblica Arst Sardegna http://www.arst.sardegna.it/index.html sono arrivato (in 20 minuti) a Stintino.
Qui http://www.arst.sardegna.it/orari_e_autolinee/Trova_la_tua_destinazione_e_gli_orari_di_partenza/percorso.html?calcola=calcola+il+percorso&comune=PORTO+TORRES&arrivo=827&partenza=1110 trovate gli orari in partenza da Porto Torres.

In caso di problemi o cambio di orari, vi consiglio di calcolare il percorso dalla home page del sito, ossia qui http://www.arst.sardegna.it/index.html impostando come parametri i seguenti.
Per il comune di Partenza, selezionare Porto Torres, fermata P.torres via Mare (pensiline), mentre per il luogo d'arrivo, impostate Stintino.
Che dirvi... buon viaggio :- DD

tutorial Silverlight il controllo rating vb.net c#

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_tutorial-silverlight-4-il-controllo-rati_1068.aspx



Introduzione




Nel toolkit di Silverlight, scaricabile dal seguente sito http://silverlight.codeplex.com/ estende con nuovi controlli quelli presenti in Silverlight 4, fornendo al programmatore, strumenti che migliorano lo sviluppo del software.



In questo articolo, vedremo l'utilizzo del controllo rating.



Inseriamo, il controllo rating nella nostra form, verrà visualizzato un controllo con 5 stelle.
Qui di seguito riportiamo il codice xaml di tale controllo.



Codice XAML





<toolkit:Rating Height="36" HorizontalAlignment="Left" Value="0.1" Margin="64,62,0,0" Name="rating1" VerticalAlignment="Top" Width="200" SelectionMode="Continuous">



</toolkit:Rating>





La proprietà itemCount, imposta il numero delle immagini visibili, nel nostro esempio, verranno visualizzate 3 stelle.
La proprietà Value, imposta il valore di default che viene visualizzata appena si carica il nostro controllo.



Si fa presente, che tale valore, ha un valore minimo uguale a "0" e massimo uguale a "1".



Questa proprietà, ci torna il valore, selezionato dall'utente durante il click o evento valuechanged.



La proprietà Itemcount, si può sostituire con i sotto tag, di tipo ratingitem, qui di seguito riportiamo un esempio del file xaml.



Codice XAML



<toolkit:Rating Height="68" HorizontalAlignment="Left" Value="0.5" Margin="90,127,0,0" Name="rating2" VerticalAlignment="Top" Width="200" >



<toolkit:RatingItem ></toolkit:RatingItem>



<toolkit:RatingItem ></toolkit:RatingItem>



<toolkit:RatingItem >



</toolkit:RatingItem>



</toolkit:Rating>





Un'altra proprietà interessante, è la proprietà "SelectionMode" che permette di impostare il tipo di selezione.
Si hanno due valori, e precisamente il valore "Continuous", in cui abbiamo la selezione continua, ossia le immagini vengono selezionate in maniera continuatià, partendo da sinsitra a destra.



Con il valore "Individual" vengono selezionati singole immagini, e quindi singole stelle, una alla volta.



Qui di seguito si riporta un esempio di tale proprietà.



Codice XAML



<toolkit:Rating Height="68" HorizontalAlignment="Left" Value="0.5" SelectionMode="Continuous" Margin="90,127,0,0" Name="rating2" VerticalAlignment="Top" Width="200" >



<toolkit:RatingItem Foreground="Blue" ></toolkit:RatingItem>



<toolkit:RatingItem Foreground="Blue" ></toolkit:RatingItem>



<toolkit:RatingItem Foreground="Blue" >



</toolkit:RatingItem>



</toolkit:Rating>









Conclusioni
L'articolo, ha voluto fornire l'utilizzo di base di questo controllo, un controllo, che può tornare utile in quelle applicazioni, in cui si devono apportare delle valutazioni.
Il suo utilizzo è semplice ed immediato. Ricordiamo che quando si installa il toolkit, si instanno anche esempi e manuali.

sabato 8 ottobre 2011

Net 4 print screen salvare in un file immagine la videata VB.Net e C#

In questo frammento di codice, viene illustrata una tecnica per salvare in un file immagine, ciò che è visualizzato a video, il tutto emulando il tasto "stampa" della tastiera





VB.Net



Private Sub BtnSchermata_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSchermata.Click



'emulo la pressione del taso press



SendKeys.SendWait("%{PRTSC}")



'oggetto che contiene le informazioni



Dim DatiSchermata As IDataObject



'ottengo i dati in memoria



DatiSchermata = Clipboard.GetDataObject()



'oggetti che salva l'immagine in formato bmp della schermata



Dim immagine As Bitmap



'converto l'oggetto



immagine = DirectCast(DatiSchermata.GetData(DataFormats.Bitmap), Bitmap)



'Salvo l'oggetto



immagine.Save("C:\\Varie\\schermata.bmp")



End Sub



C#





private void btnSchermata_Click(object sender, EventArgs e)



{



//emulo la pressione del taso press



SendKeys.SendWait("%{PRTSC}");



//oggetto che contiene le informazioni



IDataObject DatiSchermata;



//ottengo i dati in memoria



DatiSchermata = Clipboard.GetDataObject();



//oggetti che salva l'immagine in formato bmp della schermata



Bitmap immagine;



//converto l'oggetto



immagine = (Bitmap)DatiSchermata.GetData(DataFormats.Bitmap);



//Salvo l'oggetto



immagine.Save("C:\\Varie\\schermata.bmp");



}

venerdì 7 ottobre 2011

download free cms php e ajax

Il software JQooBe scaricabile dal seguente sito http://www.jqoobe.org/ è un cms gratuito che utilizza il linguaggio di programmazione Php e la tecnologia Ajax.
Il software è completamente gratuito, inoltre il sito è consultabile anche in lingua italiana.
Per il download e maggiori informazioni, visitate il sito indicato.

giovedì 6 ottobre 2011

Labview 2011 tour

In varie città italiane, si svolgerà dal 18 ottobre al 24 novembre, il LabView http://italy.ni.com/labview-tour, una serie d'incontri gratuiti, per conoscere il software Labview.
A questo indirizzo http://www.youtube.com/watch?v=TeJJdlob4rw trovate una presentazione di tali eventi, che invito a partecipare, visto l'argomento d'interesse.
L'evento della durata di una giornata, è articolo in due tematiche, la mattina riguarda la parte introdutiva, per conoscere le potezialità offerte da questo software, mentre nella sessione pomeridiana, la parte avanzata di questo strumento.
Qui http://sine.ni.com/nievents/app/overview/p/eventId/45738/site/nie/country/it/lang/it/scope/country/location/it e qui http://sine.ni.com/nievents/app/overview/p/eventId/45758/site/nie/country/it/lang/it/scope/country/location/it trovate le varie indicazioni.
L'evento è gratuito, ma per poter partecipare, bisogna registarsi ai siti indicati in precedenza.
Che dirvi... buono studio :-D

WinForms HTML Editor source .net C#





























Come riportato dal seguente blog http://blogs.msdn.com/b/carlnol/archive/2011/07/30/winforms-html-editor.aspx è disponibile un esempio in .Net e precisamente tramite il linguaggio di programmazione C#, di un editor per le pagine web html.

Il programma, riporta diverse funzionalità, che permettono la creazione, modifica di pagine web.

Il sorgente completo si può scaricare dal seguente sito http://code.msdn.microsoft.com/WinForms-HTML-Editor-01dbce1a.


che dirvi... buona programmazione.

mercoledì 5 ottobre 2011

rivista gratuita di economia finanza politica imprenditoriale e tempo libero

La rivista costo Zero, http://www.costozero.it/modulo_richiesta.asp è un magazine, con uscita mensile, che riporta notizie, approfondimenti, articoli e tanto altro, sul mondo dell'economia, finanza, politica imprenditoriale e tempo libero.
Per ricevere gratuitamente a casa il mensile, registrarsi al seguente sito http://www.costozero.it/modulo_richiesta.asp compilando il modulo riportato nel sito.
Tempo un mese, e riceverete gratuitamente a casa il mensile, senza nessun costo.
Che dire.... buona lettura :-DD

martedì 4 ottobre 2011

download Light Image Reizer portatile, software per ridimensionare le immagini

















Antonio, dell'istituto Majorana di Gela http://www.istitutomajorana.it/, ci informa di una nuova uscita in ambito di software gratuiti e portatili.Il software Light Image Reizer scaricabile da qui http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=1534&Itemid=33 è un software gratuito e portatile, che non richiede nessuna installazione, permette di ridimensionare le immagini. Inoltre, converte le immagini in formato PDF.Per maggiori informazioni, visitate il sito indicato.

lunedì 3 ottobre 2011

download free Sweet Home 3D Portable

L'amico Antonio dell'Istituto Majorana di Gela, mi ha segnalato un interessante software portatile, che non richiede l'installazione, del programma Sweet Home 3D Portable, scaricabile gratuitamente da questo sito http://www.winpenpack.com/main/download.php?view.1027
Il programma permette la creazione di arredi e piantine degli appartamenti, creazione di scenari di casa.
Un buon software.

domenica 2 ottobre 2011

Invocare da codice un metodo di una classe VB.Net e C#

Qui di seguito, si riporta una tecnica di come invocare un metodo di una classe, passandogli un parametro, il tutto tramite il linguaggio di programmazione VB.Net e C#.
Tramite l'utilizzo dei delegate, vediamo come invocare un metodo.



Si crea un delegato
VB.Net



Public Delegate Function MioMetodoHandler(ByVal parametro As String) As String



C#



delegate string MioMetodoHandler(string parametro);



Creazione del metodo
VB.Net



Public Shared Function Metodo(ByVal Valore As String) As String



Return ("Valore passato: " + Valore)



End Function




C#



public static string Metodo(string Valore)



{



return "Valore passato: " + Valore;



}



Invocare il codice
VB.Net



Private Sub BtnInvoca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInvoca.Click



'oggetto delegato, che accetta due argomenti, il delegato, il nome della classe in cui ci troviamo, ed il metodo



Dim dl As [Delegate] = [Delegate].CreateDelegate(GetType(MioMetodoHandler), GetType(Form1), "Metodo")



'visualizzo a video il risultato dell'invocazione del metodo



MessageBox.Show(dl.DynamicInvoke("testo"))



End Sub




C#



private void BtnInvoca_Click(object sender, EventArgs e)



{



//oggetto delegato, che accetta due argomenti, il delegato, il nome della classe in cui ci troviamo, ed il metodo



Delegate dl = Delegate.CreateDelegate(typeof(MioMetodoHandler), typeof(Form1), "Metodo");



//visualizzo a video il risultato dell'invocazione del metodo



MessageBox.Show((string)dl.DynamicInvoke("Testo"));





}

sabato 1 ottobre 2011

Creazione di una document library in Sharepoint 2010

Riporto l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_creazione-di-una-document-library-in-sha_1069.aspx





Introduzione



Le raccolte documenti, sono dei contenitori nelle quali si trovano i nostri file caricati, in questo articolo, vedremo come crearne in Microsoft Sharepoint 2010.



Vedaimo come creare una document library per contenere diversi file.
Dopo aver aperto il propro portale (non l'amministrazione di Sharepoint) nella pagina princiaple, selezionando il menu "Site Actions" viene aperto un menu con una serie di voci (Figura 1).





Figura 1



Per la creazione di una document libary, o facciamo click sull'apposita voce, ossia "New Document Library" oppure selezioniamo la voce "View All Site content" che riporta tutte le documenti library e liste del sito.
Facciamo click su quest'ultima voce.



Verrà aperta una finestra, nella quale possiamo gestire i nostri contenuti, come document library o liste (figura 2)





Figura 2



Tramite la voce "Create" si ha la possibilità di creare diversi oggetti, tra cui anche una document libary.
Nella finestra che viene aperta (figura 3) i modelli messi a disposizione, sono divisi per categoria. Tra i primi risultati, troviamo quelli relativi alla creazione di una document library.





Figura 3



Selezionando il modello di nostro interesse, nella parte destra, viene visualizzata una descrizione, oltre alla possibilità di inserire il nome, o passare nella finestra delle opzioni per una più approfondita personalizzazione.



Confermiamo il tutto, tramite il pulsante "Create", tempo qualche secondo e verrà creata la nostra documenti library, in modo che possiamo aggiungere dei documenti.





Figura 4



Nella document library, in questa nuova versione di Sharepoint, viene attivato la barra ribbon, con possibilità di gestire la libreria dei contenuti oppure i documenti.
La voce "Documents", lavora sui singoli file, mentre la voce di menu library, sulla gestione document libari.
Per personalizzarla, facciamo click sulla voce Library Settings.
La pagina che viene aperta(figura 4), ci permette di personalizzare la nostra liberia, applicando determinate impostazioni.





Figura 5



Oltre alle impostazioni della document library, possiamo gestire la visualizzazione, le colonne, ed altro ancora.



facciamo un rapido riepilogo delle varie voci.
La voce "title, description and navigation" permette la gestione del titolo descrizione e se applicare o no, nel menu rapido, il collegamento alla document libary.
Il versioning, ci permette di abilitare, togliere e personalizzare la gestione delle versioni dei file che inseriamo nella raccolta documenti.
Altre impostazioni, permettono di impostare le colonne di default, i workflow, inserire un indicatore di valutazione, e tanto altro.
Prima di concludere, vediamo che aggiungere una colonna alla nostra raccolta documenti.
Nella parte inferiore, sezione column, selezioniamo la voce "Create Column" la quale ci permtte di creare una colonna.
Nella finestra che viene aperta (figura 6) , dobbiamo impostare il nome della colonna, il tipo se è numerico, testo, ecc,





Figura 6



Altri campo permettono la gestione della descrizione, se è un dato obbligatorio, il numero massimo dei caratteri, se è una colonna calcolata, il valore di default, se visualizzarlo nella raccolta documenti.
A questo punto confermiamo il tutto tramite il pulsante ok.
Se aggiungete un nuovo documento, vedrete anche la colonna appena creata.



Conclusioni




Si è visto come creare una raccolta documenti in Sharepoint 2010. Naturalmente, le funzionalità che si possono fare su tale strumento, sono notevoli, l'articolo ha fornito le basi per la personalizzazione di una "document library" di questa nuova versione di Sharepoint.