<?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>iPhoneandGo &#187; bubble touch</title>
	<atom:link href="http://www.iphoneandgo.it/tag/bubble-touch/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.iphoneandgo.it</link>
	<description>Dall&#039; ABC all&#039; SDK, il vostro laboratorio online per iPhone, iPad e Mac.</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:01:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>Bubble Touch ! finalmente in appstore !!</title>
		<link>http://www.iphoneandgo.it/2010/11/03/bubble-touch-finalmente-in-appstore/</link>
		<comments>http://www.iphoneandgo.it/2010/11/03/bubble-touch-finalmente-in-appstore/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 13:16:27 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Applicazioni iphone]]></category>
		<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=3850</guid>
		<description><![CDATA[Forse qualcuno di voi si ricorda ancora&#8230; : era marzo / aprile del 2009 quando i gemelli PiXy e BugMaN hanno voluto condividere con iPhoneandGo l&#8217;esperienza di creare un videogame per iPhone / iPod Touch : Bubble Touch ! Bubble Touch ! un videogame made in italy oggi disponibile in appstore&#8230;! Ci hanno messo piu&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>Forse qualcuno di voi si ricorda ancora&#8230; : era marzo / aprile del 2009 quando i gemelli PiXy e BugMaN hanno voluto condividere con iPhoneandGo l&#8217;esperienza di creare un videogame per iPhone / iPod Touch : Bubble Touch !</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2010/11/foto-3.PNG" rel="lightbox[3850]" title="foto 3"><img class="size-medium wp-image-3851 aligncenter" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="foto 3" src="http://www.iphoneandgo.it/wp-content/uploads/2010/11/foto-3-300x200.PNG" alt="foto 3" width="300" height="200" /></a></p>
<p><span id="more-3850"></span>Bubble Touch ! un videogame made in italy oggi disponibile in appstore&#8230;! Ci hanno messo piu&#8217; di un anno, ma la loro idea, la loro passione li ha portati a termine.. probabilmente non con pochi problemi, indecisioni, e situazioni che nel corso di questi 2 anni hanno rivoluzionato il mondo iPhone, e dei developer in generale.</p>
<p>Un simpatico gioco, adatto ai piu&#8217; piccoli ma divertente anche per i piu&#8217; adulti, da livelli base (easy) per passare sempre piu&#8217; a livelli avanzati alla ricerca della Bubble da toccare !!</p>
<p>Bella grafica, fluida.. e ottima giocabilita&#8217;&#8230; ma che dire&#8230; a sentire gli autori pochi giorni fa&#8230; se da un lato si aspettano e hanno avuto un discreto successo, dall&#8217;altro guardano ai piccoli errori, e a quella che potrebbe gia&#8217; diventare una nuova versione di Bubble Touch !.</p>
<p>Speriamo che presto ci vogliano raccontare tutti i retroscena di questa bella avventura tutta italiana e delle esperienze positive e negative che hanno vissuto&#8230;</p>
<p>Nel frattempo vi riepilogo gli articoli che hanno dato inizio a questa avventura :</p>
<p><a title="read mroe about Bubble Touch dei gemelli PiXy e BugMaN … inizia l’avventura !" href="../2009/02/08/bubble-touch-dei-gemelli-pixy-e-bugman-inizia-lavventura/">Bubble Touch dei gemelli PiXy e BugMaN … inizia l’avventura !</a></p>
<p><a title="read mroe about Bubble Touch per iPhone e la definizione del progetto." href="../2009/02/16/bubble-touch-per-iphone-e-la-definizione-del-progetto/">Bubble Touch per iPhone e la definizione del progetto.</a></p>
<p><a title="read mroe about Voglio fare un gioco per iPhone anch’io, come posso iniziare ? da Bubble Touch, PiXy ci dice come" href="../2009/02/23/voglio-fare-un-gioco-per-iphone-anchio-come-posso-iniziare-da-bubble-touch-pixy-ci-dice-come/">Voglio fare un gioco per iPhone anch’io, come posso iniziare ? da Bubble Touch, PiXy ci dice come</a></p>
<p><a title="read mroe about Gestione file XML su iPhone / iPod Touch (BubbleTouch)" href="../2009/03/02/gestione-file-xml-su-iphone-ipod-touch-bubbletouch/">Gestione file XML su iPhone / iPod Touch (BubbleTouch)</a></p>
<p><a title="read mroe about Diario di un videogame per iPhone: Bubble Touch ! per iPhone and Go." href="../2009/03/09/diario-di-un-videogame-per-iphone-bubble-touch-per-iphone-and-go/">Diario di un videogame per iPhone: Bubble Touch ! per iPhone and Go.</a></p>
<p>Per ora e&#8217; tutto</p>
<p>iPhoneandGo.</p>
<p>P.s. Per chi e&#8217; curioso, e desideroso di acquistare questa bella applicazione questo e&#8217; l&#8217;<a href="http://itunes.apple.com/it/app/bubble-touch/id395737253?mt=8" target="_blank">appstore link.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2010/11/03/bubble-touch-finalmente-in-appstore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PVR Texture con OpenGLES per iPhone.</title>
		<link>http://www.iphoneandgo.it/2009/04/29/pvr-texture-con-opengles-per-iphone/</link>
		<comments>http://www.iphoneandgo.it/2009/04/29/pvr-texture-con-opengles-per-iphone/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 21:53:54 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[iPhone OS]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2536</guid>
		<description><![CDATA[I ragazzi di BubbleTouch continuano ininterrotamente la loro corsa verso la realizzazione completa del loro primo videogame per iPhone. Hanno molte cose ancora da raccontarci ed oggi ci vogliono spiegare un argomento molto specifico e tecnico: l&#8217;ottimizzazione delle texture utilizzando il formato PVR. Oggi parliamo di Texture con particolare riguardo a qualche ottimizzazione che possiamo [...]]]></description>
			<content:encoded><![CDATA[<p>I ragazzi di BubbleTouch continuano ininterrotamente la loro corsa verso la realizzazione completa del loro primo videogame per iPhone.</p>
<p>Hanno molte cose ancora da raccontarci ed oggi ci vogliono spiegare un argomento molto specifico e tecnico: l&#8217;ottimizzazione delle texture utilizzando il formato PVR.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/screenshot-20090112-191747.png" rel="lightbox[2536]" title="screenshot-20090112-191747"><img class="aligncenter size-full wp-image-2537" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="screenshot-20090112-191747" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/screenshot-20090112-191747.png" alt="" width="480" height="320" /></a></p>
<p><span id="more-2536"></span>Oggi parliamo di Texture con particolare riguardo a qualche ottimizzazione che possiamo fare per i nostri<br />
programmi che usano OpenGLES.</p>
<p>Di base l&#8217;Iphone SDK supporta vari formati grafici e come molti di voi sanno di solito viene usato il formato PNG per gestire le texture.</p>
<p>Quello che proponiamo con questo tutorial è l&#8217;utilizzo di un formato non molto noto ma che ha molti vantaggi se utilizzato in certi casi.</p>
<p>Il formato in questione è il PVR in particolare PVRTC compression format che devira da PowerVR, analizziamo brevemente vantaggi e svantaggi che si hanno nell&#8217;utilizzare tale formato.</p>
<p>I vantaggi ad utilizzare tale formato:<br />
•	riduce lo spazio richiesto dalla texture (è un formato compresso)<br />
•	minore spazio equivale a minore banda utilizzata e quindi caricamento della texture più veloce<br />
•	la decompressione della texture è fatta tramite l&#8217;hardware grafico messo a disposizione dall&#8217;Iphone / Ipod Touch ergo è più veloce<br />
•	caricamento e conversione molto facile da implementare</p>
<p>Mentre gli svantaggi / limiti sono:<br />
•	qualità più bassa (parliamo di texture compresse)<br />
•	altezza e larghezza della texture devono essere una potenza di 2<br />
•	altezza e larghezza della texture devono coincidere</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/slide42.jpg" rel="lightbox[2536]" title="slide42"><img class="aligncenter size-full wp-image-2538" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="slide42" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/slide42.jpg" alt="" width="320" height="178" /></a></p>
<p>Per quanto riguarda la creazione di texture in formato PVR l&#8217;Iphone SDK ha un tool al suo interno che permette di convertire<br />
da formati grafici noti ( PNG, JPG, TIFF e altri ) al formato PVR il tutto tramite riga di comando da un semplice terminale.</p>
<p>Se abbiamo XCode con l&#8217;Iphone SDK installato nella cartella di default (/Developer/Platforms/) avremo allora il tool chiamato texturetool direttamente dentro la cartella /Developer/Platforms/Iphone.platform/Developer/usr/bin/.</p>
<p>Texturetool permette di creare 4 varianti del formato PVRTC, in base a queste possiamo quindi trovare un buon compromesso tra compressione e perdita di qualità.</p>
<p>I parametri da passare a texturetool sono molto semplici e li possiamo vedere anche attraverso l&#8217;help del programma stesso:<br />
user$ texturetool -h<br />
Usage: texturetool [-hlm] [-e ] [-p<br />
] -o  [-f<br />
] input_image<br />
-h                      Display this help menu.<br />
-l                      List available encoders, individual encoder options, and file formats.<br />
-m                      Generate a complete mipmap chain from the input image.<br />
-e             Encode texture levels with .<br />
-p<br />
Output a PNG preview of the encoded output to<br />
. Requires -e option.<br />
-o              Write processed image to .<br />
-f<br />
Set file<br />
for  image.</p>
<p>In particolare come encoder utilizzeremo proprio PVRTC mentre possiamo giocare con il formato scegliendo tra PVR o RAW con le seguenti opzioni aggiuntive:<br />
&#8211;channel-weighting-linear<br />
&#8211;channel-weighting-perceptual<br />
&#8211;bits-per-pixel-2<br />
&#8211;bits-per-pixel-4<br />
Di base se lanciamo texturetool senza specificare opzioni avremo il formato &#8211;bits-per-pixel-4, &#8211;channel-weighting-linear.</p>
<p>Per convertire un ipotetico file prova.png in prova.pvr (con formato a 4bpp (bits per pixel)) scriviamo:<br />
texturetool -e PVRTC -f PVR &#8211;channel-weighting-linear &#8211;bits-per-pixel-4 -o prova.pvr prova.png</p>
<p>Vediamo dal punto di vista della grandezza quanto conviene:</p>
<p>Ad esempio una texture a 32bpp di dimensioni 256&#215;256 occupa non compressa circa 256kb, se usiamo una compressione a 4bbp avremo<br />
una texture che occupa 32kb più qualcosina per l&#8217;header del formato .pvr.</p>
<p>Per il caricamento delle texture dentro la nostra applicazione utilizziamo un&#8217;estensione di OPENGLES chiamata glCompressedTexImage2D;<br />
in particolare per chi ha accesso al Developer Connection di Apple è presente una classe PVRTextureLoader che fa già tutto quello che ci serve<br />
per caricare texture compresse in PVR.</p>
<p>Per voi e&#8217; tutto i ragazzi PiXy e BugMaN&#8230;e un ringraziamento da Sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/04/29/pvr-texture-con-opengles-per-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Diario di sviluppo di un gioco per iPhone: Bubble Touch !</title>
		<link>http://www.iphoneandgo.it/2009/04/11/diario-di-sviluppo-di-un-gioco-per-iphone-bubble-touch/</link>
		<comments>http://www.iphoneandgo.it/2009/04/11/diario-di-sviluppo-di-un-gioco-per-iphone-bubble-touch/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 06:50:49 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2449</guid>
		<description><![CDATA[Anche il mese di Marzo i ragazzi PiXy e BugMaN si son dati da fare nello sviluppo della realizzazione del loro gioco per iPhone : Bubble Touch !. In questo articolo ci racconteranno con nuove schermate grafiche molto originali i passi per perfezionare la gestione dei menù, dei bonus implementando anche font personalizzati. BugMaN: In [...]]]></description>
			<content:encoded><![CDATA[<p>Anche il mese di Marzo i ragazzi PiXy e BugMaN si son dati da fare nello sviluppo della realizzazione del loro gioco per iPhone : Bubble Touch !. In questo articolo ci racconteranno con nuove schermate grafiche molto originali i passi per perfezionare la gestione dei menù, dei bonus implementando anche font personalizzati.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/bonus.jpg" rel="lightbox[2449]" title="bonus"><img class="aligncenter size-full wp-image-2451" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="bonus" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/bonus.jpg" alt="" width="410" height="224" /></a><br />
<span id="more-2449"></span><strong>BugMaN</strong>: In questo mese, visto il poco tempo a disposizione, abbiamo continuato a sviluppare la parte di gestione dei Menù: in particolare<br />
oltre al lavoro svolto a Febbraio si è cercato di dare un volto ai menù relativi agli obiettivi di ogni singolo livello e ai risultati una<br />
volta che il livello è stato completato.</p>
<p>Ma vediamo con ordine cosa abbiamo realizzato:</p>
<p><strong>Codice</strong>:</p>
<p><em>Scelta del pianeta</em>:</p>
<p>Ora i pianeti attivi danzando allegramente mentre quelli ancora non sbloccati non saranno visualizzabili e quindi selezionabili finché<br />
non si completano tutti i livelli (in tutto 9) del pianeta precedente.</p>
<p>E&#8217; stato cambiato il tasto per tornare al menù principale (ma ancora non ci siamo!!!).</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/1-selezione-pianeta.jpg" rel="lightbox[2449]" title="1-selezione-pianeta"><img class="aligncenter size-full wp-image-2452" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="1-selezione-pianeta" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/1-selezione-pianeta.jpg" alt="" width="490" height="330" /></a><br />
<em>Scelta del livello</em>:</p>
<p>PiXy ha realizzato un nuovo font (versione black e versione white) che utilizzeremo per tutto il gioco.<br />
Ora per la realizzazione di questa schermata (e anche di altre) è stata aggiunta alla classe che gestisce i menù<br />
la possibilità di gestire dei piccoli widgets esterni che hanno anche la possibilità di essere animati.</p>
<p>Se l&#8217;utente fa clic (in questo caso touch) su un tassello che compone un livello, sulla destra vengono visualizzati<br />
nome, punteggio e stelle (un modo immediato per sapere come si è finito precedentemente il livello).</p>
<p>Il tasto Play permette di giocare il livello selezionato mentre con Back si torna alla scelta dei pianeti.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/2-selezione-livello.jpg" rel="lightbox[2449]" title="2-selezione-livello"><img class="aligncenter size-full wp-image-2453" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="2-selezione-livello" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/2-selezione-livello.jpg" alt="" width="490" height="330" /></a><br />
<em>Obiettivi</em>:</p>
<p>Una volta scelto un livello apparirà una schermata che riassume gli obiettivi da raggiungere per completarlo:<br />
•	In alto avremo nome del livello e stelle (se è già stato completato/giocato)<br />
•	Al centro troviamo il numero di palline da colpire (per ogni colore)<br />
•	In basso abbiamo invece:<br />
•	la direzione da dove escono le palline<br />
•	il numero totale di palline<br />
•	il tasto play per giocare il livello</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/3-obiettivi.jpg" rel="lightbox[2449]" title="3-obiettivi"><img class="aligncenter size-full wp-image-2454" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="3-obiettivi" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/3-obiettivi.jpg" alt="" width="490" height="330" /></a><br />
<em>Risultati</em>:</p>
<p>In base al raggiungimento degli obiettivi abbiamo 2 schermate differenti.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/5-completed.jpg" rel="lightbox[2449]" title="5-completed"><img class="aligncenter size-full wp-image-2455" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="5-completed" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/5-completed.jpg" alt="" width="490" height="330" /></a><br />
La prima è &#8220;Level completed&#8221; che appare in caso di superamento del livello, in questa<br />
schermata sono state realizzate le animazioni delle varie zone ma mancano ancora da inserire<br />
le statistiche e il punteggio in stelle.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/5-failed.jpg" rel="lightbox[2449]" title="5-failed"><img class="aligncenter size-full wp-image-2456" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="5-failed" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/5-failed.jpg" alt="" width="490" height="330" /></a><br />
La seconda è utilizzata in caso non si raggiunga l&#8217;obiettivo&#8230; non abbiamo ancora deciso<br />
se visualizzare le statistiche o meno.</p>
<p><strong>BugMaN</strong>: Dal solo punto di vista del codice abbiamo:<br />
•	Convertito tutti gli sfondi nel formato PVR (ne parleremo nella prossima puntata)<br />
•	studiato possibilità per implementare la gestione dell&#8217;Audio tramite OpenAL<br />
•	iniziato a studiare e valutare l&#8217;utilizzo di Facebook Connect</p>
<p><em>Design</em>:</p>
<p>Bonus (Bubble)</p>
<p><strong>PiXy</strong>: Finalmente durante il mese di Marzo abbiamo definito una lista completa dei bonus che saranno presenti all&#8217;interno<br />
del gioco. Tutti questi bonus prenderanno il nome di Bubble, in quanto saranno racchiusi tutti all&#8217;interno<br />
di una bolla.<br />
Il nome del gioco Bubble Touch, vuole proprio indicare che saranno loro i protagonisti, in quanto renderanno<br />
il gioco divertente e pieno di imprevisti.<br />
Come gia&#8217; accennato nelle puntate precedenti, all&#8217;interno del gioco sara&#8217; presente una &#8220;Bubble Gallery&#8221; dove<br />
potremmo guardare tutte le bolle che abbiamo scoppiato e capire bene quali sono i loro effetti.</p>
<p>Definito il design dei bonus ho subito pensato a fare una prima bozza grafica per ognuno di loro, alcune Bubble<br />
sono venute proprio bene e credo le manterro&#8217; anche nella versione definitiva, altre sono sicuramente da sistemare.</p>
<p>Ecco, in anteprima, un&#8217;immagine in cui sono presenti tutti i bonus :</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/04/bonus1.jpg" rel="lightbox[2449]" title="bonus1"><img class="aligncenter size-full wp-image-2457" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="bonus1" src="http://www.iphoneandgo.it/wp-content/uploads/2009/04/bonus1.jpg" alt="" width="410" height="224" /></a><br />
<strong>Grafica</strong>:<br />
<em>Mappe dei pianeti </em></p>
<p><strong>PiXy</strong>: Durante la fine del mese ho incominciato a lavorare alle mappe dei 5 pianeti, in particolare alle immagini che<br />
saranno poi suddivise in nove parti (una per livello) e che si comporanno quando il giocatore avra&#8217; completato<br />
un intero pianeta.</p>
<p><strong>Musica</strong>:</p>
<p><strong>PiXy</strong>: Abbiamo pensato di avere una soundtrack musicale differente per ogni pianeta, ho quindi incominciato a comporre<br />
qualcosina. Per realizzare la musica del gioco sto utilizzando MilkyTracker, un&#8217;applicazione open source che si rifa&#8217;<br />
al buon vecchio FT2 (Fast Tracker 2).<br />
I tracker in genere sono software che fanno da sequencer e servono per comporre musica utilizzando campioni sonori<br />
(ad esempio file .wav) da disporre all&#8217;interno di pattern.<br />
Un pattern altro non e&#8217; che un &#8220;foglio&#8221; di musica, formato da differenti righe che viene suonato sequenzialmente.<br />
Maggiori informazioni su programmi di questo tipo le potete trovare qui: <a href="http://en.wikipedia.org/wiki/Tracker " target="_blank">http://en.wikipedia.org/wiki/Tracker </a></p>
<p>per voi Sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/04/11/diario-di-sviluppo-di-un-gioco-per-iphone-bubble-touch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BOX2D per iPhone: ovvero la fisica dei corpi grazie a BugMan !</title>
		<link>http://www.iphoneandgo.it/2009/03/16/box2d-per-iphone-ovvero-la-fisica-dei-corpi-grazie-a-bugman/</link>
		<comments>http://www.iphoneandgo.it/2009/03/16/box2d-per-iphone-ovvero-la-fisica-dei-corpi-grazie-a-bugman/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 08:02:51 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2313</guid>
		<description><![CDATA[Box2d è un simulatore di corpi rigidi in 2D sviluppato in C++. E&#8217; molto utile perché permette in poche righe di creare un motore fisico e quindi al posto di crearsi tutte quelle routine per l&#8217;animazione degli oggetti lasciamo ad Dott. Isaac Newton di farlo per noi attraverso le regole della Fisica Caratteristiche del motore [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/immagine-3.png" rel="lightbox[2313]" title="immagine-3"><img class="size-full wp-image-2314 alignright" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="immagine-3" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/immagine-3.png" alt="" width="281" height="420" /></a></p>
<p><a href="http://www.box2d.org/" target="_blank"><span class="il">Box2d</span></a> è un simulatore di corpi rigidi in 2D sviluppato in C++. E&#8217; molto utile perché permette in poche righe di creare un motore fisico e quindi al posto di crearsi tutte quelle routine per l&#8217;animazione degli oggetti lasciamo ad Dott. Isaac Newton di farlo per noi attraverso le regole della Fisica <img src='http://www.iphoneandgo.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Caratteristiche del motore fisico:</h3>
<h4><strong>Collision</strong></h4>
<ul>
<li>Continuous collision detection.</li>
<li>Contact callbacks: add, persist, remove.</li>
<li>Convex polyons and circles.</li>
<li>Multiple shapes per body</li>
<li>One-shot contact manifolds</li>
<li>Incremental sweep-and-prune broadphase</li>
<li>Efficient pair management</li>
<li>Fast broadphase AABB queries</li>
<li>Collision groups and categories</li>
</ul>
<p><a href="http://www.iphoneandgo.it/2009/03/16/box2d-per-iphone-ovvero-la-fisica-dei-corpi-grazie-a-bugman/" target="_self">continua&#8230;</a><span id="more-2313"></span></p>
<h3>Physics</h3>
<ul>
<li>Continuous physics with time of impact island solver.</li>
<li>Persistent body-joint-contact graph</li>
<li>Island solution and sleep management</li>
<li>Contact, friction, and restitution</li>
<li>Stable stacking with a linear-time solver</li>
<li>Revolute, prismatic, distance, pulley, gear, and mouse joints</li>
<li>Joint limits, motors, and friction</li>
<li>Momentum decoupled position correction</li>
<li>Fairly accurate reaction forces/impulses</li>
</ul>
<h3>System</h3>
<ul>
<li>Small block and stack allocators</li>
<li>Centralized tuning parameters</li>
<li>Highly portable C++ with no use of STL containers</li>
</ul>
<h3>Testbed</h3>
<ul>
<li>OpenGL with <a href="http://freeglut.sourceforge.net/" target="_blank">Freeglut</a></li>
<li>Graphical user interface with <a href="http://www.cs.unc.edu/%7Erademach/glui/" target="_blank">GLUI</a></li>
<li>Easily switch between tests using GUI</li>
<li>Test framework for easily adding new tests</li>
<li>Mouse picking and the bomb!</li>
<li>VC8 project files</li>
</ul>
<p>In particolare il TestBed ha anche un progetto per Xcode così da poter provare su Macosx<br />
i vari esempi (sono tanti e tutti documentatissimi).</p>
<p>Dicevamo che è scritto in C++, in particolare la maggior parte delle funzioni e dei tipi iniziano con il prefisso <em>b2.</em></p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/corpifisica.jpg" rel="lightbox[2313]" title="corpifisica"><img class="aligncenter size-full wp-image-2326" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="corpifisica" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/corpifisica.jpg" alt="" width="277" height="523" /></a></p>
<p><em></em>E&#8217; facilmente integrabile in qualunque progetto per Iphone, vediamo brevemente quali sono i passi da compiere per crearsi un progetto che abbia un motore <span class="il">Box2d</span> al suo interno.</p>
<p>1) Scaricarsi il codice sorgente di <span class="il">Box2d</span> da <a href="http://sourceforge.net/projects/box2d" target="_blank">http://sourceforge.net/projects/<span class="il">box2d</span></a></p>
<p>Attualmente la versione è la 2.0.1  (13 Aprile 2008)</p>
<p>2) Scompattare il tutto su una cartella</p>
<p>3) Creare o aprirsi un progetto Xcode (magari uno che abbia una vista OpenGLEs)</p>
<p>4) Copiare (anche tramite drag &amp; drop) la cartella Source dentro il nostro progetto Xcode</p>
<p>5) Nella propria view includere l&#8217;header di <span class="il">Box2d</span></p>
<p>#include &#8220;<span class="il">Box2D</span>.h&#8221;</p>
<p>6) Rinominare il file della view in .mm (per mischiare C++ e objective C)</p>
<p>7) Inizialiare un mondo prima di procedere con l&#8217;attivazione della vista OpenGLES</p>
<p>Qualcosa di simile:</p>
<p>Da qualche parte definisco le variabili:</p>
<p>b2AABB worldAABB;<br />
b2World *m_world;</p>
<p>E poi l&#8217;init del mondo è :</p>
<p>// inizializzo le coordinate del mondo<br />
worldAABB.lowerBound.Set(-100.0f, -100.0f);<br />
worldAABB.upperBound.Set(100.0f, 100.0f);</p>
<p>// Definisco il vettore di gravità<br />
b2Vec2 gravity(0, -9.81f);</p>
<p>// Do we want to let bodies sleep?<br />
bool doSleep = true;</p>
<p>// Costruisco il mondo<br />
m_world= new b2World(worldAABB, gravity, doSleep);</p>
<p>// Definisco il corpo ground (terreno)<br />
b2BodyDef groundBodyDef;<br />
groundBodyDef.position.Set(0.0f, -15.0f);</p>
<p>// Call the body factory which allocates memory for the ground body<br />
// from a pool and creates the ground box shape (also from a pool).<br />
// The body is also added to the world.<br />
b2Body* groundBody = m_world->CreateBody(&amp;amp;amp;amp;amp;amp;groundBodyDef);</p>
<p>// Define the ground box shape.<br />
b2PolygonDef groundShapeDef;</p>
<p>// The extents are the half-widths of the box.<br />
groundShapeDef.SetAsBox(50.0f, 10.0f);</p>
<p>// Add the ground shape to the ground body.<br />
groundBody->CreateShape(&amp;amp;amp;amp;amp;amp;groundShapeDef);</p>
<p>8 ) Nel main loop (se vogliamo la DrawView della nostra vista OpenGLES) faccio avanzare<br />
la fisica del mondo:</p>
<p>float32 timeStep = 1.0f / 60.0f;<br />
int32 iterations = 10;</p>
<p>// Instruct the world to perform a single step of simulation. It is<br />
// generally best to keep the time step and iterations fixed.<br />
m_world->Step(timeStep, iteration);</p>
<p>(timeStep può essere benissimo animationInterval che usiamo per la view)</p>
<p>9) a questo punto si possono creare oggetti e usando una draw adatta disegnarli per vedere cosa<br />
succede, per esempio se mi creo un cerchio in questo modo:</p>
<p>posX e posY sono la posizione del cerchio<br />
m_body è un oggetto (body) inizializzato così:   b2Body *m_body;<br />
m_world è il nostro mondo creato in precedenza<br />
ang è l&#8217;angolo di rotazione (in radianti)</p>
<p>// Define the dynamic body. We set its position and call the body<br />
b2BodyDef bodyDef;</p>
<p>bodyDef.position.Set(posX, posY);<br />
bodyDef.angle = ang; // the body&#8217;s angle in radians.<br />
//bodyDef.linearDamping = 0.0f;<br />
//bodyDef.angularDamping = 0.01f;<br />
//bodyDef.isBullet = false;<br />
bodyDef.angularDamping = 0.02f;</p>
<p>m_body = m_world->CreateBody(&amp;amp;amp;amp;amp;bodyDef);</p>
<p>// Define box shape for our dynamic body.<br />
b2CircleDef circleDef;</p>
<p>// Set the box density to be non-zero, so it will be dynamic.<br />
circleDef.density = 1.0f;</p>
<p>// Override the default friction.<br />
circleDef.friction = 0.3f;</p>
<p>// Add the shape to the body.<br />
m_body->CreateShape(&amp;amp;amp;amp;amp;circleDef);</p>
<p>// Now tell the dynamic body to compute it&#8217;s mass properties base<br />
// on its shape.<br />
m_body->SetMassFromShapes();</p>
<p>Se vedete il codice al body va associato uno shape che sarà poi la forma che permette di controllarne la fisica, le collisioni e molto altro.<br />
Se poi vogliamo disegnare questo oggetto procediamo in opengles a disegnare uno Sprite (c&#8217;e&#8217; l&#8217;esempio dell&#8217;SDK che puo&#8217; tornare utile) con la posizione corretta che prendiamo in questo modo:</p>
<p>// Vettore posizione del body:</p>
<p>b2Vec2 position = m_body->GetPosition();</p>
<p>// X sarà position.x e Y sarà position.y</p>
<p>// Angolo di rotazione del body</p>
<p>float32 angle = m_body->GetAngle();</p>
<p>Una volta presi questi parametri il disegno dell&#8217;oggetto è semplicemente tuto codice openGLES:</p>
<p>glPushMatrix();</p>
<p>glEnable(GL_TEXTURE_2D);<br />
glBindTexture(GL_TEXTURE_2D, spriteTexture);</p>
<p>if(m_isBlend) {<br />
// Set a blending function to use<br />
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);<br />
// Enable blending<br />
glEnable(GL_BLEND);<br />
}</p>
<p>glTranslatef(position.x, position.y, 0.0f);<br />
glRotatef(angle*(180/b2_pi), 0.0, 0.0, 1.0f);</p>
<p>glVertexPointer(2, GL_FLOAT, 0, m_vertices);<br />
glEnableClientState(GL_VERTEX_ARRAY);</p>
<p>// va tolto il colore se è textured!!! SI MA LO FACCIO SU SETTEXTURE<br />
glColor4f(m_color_r, m_color_g, m_color_b, 1.0);</p>
<p>glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);</p>
<p>if(m_isBlend) {<br />
glDisable(GL_BLEND);<br />
}</p>
<p>if(m_isTextured) {<br />
glDisable(GL_TEXTURE_2D);<br />
}</p>
<p>glPopMatrix();</p>
<p>Per voi BugMan e un caloroso ringraziamento da Sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/03/16/box2d-per-iphone-ovvero-la-fisica-dei-corpi-grazie-a-bugman/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Diario di un videogame per iPhone: Bubble Touch ! per iPhone and Go.</title>
		<link>http://www.iphoneandgo.it/2009/03/09/diario-di-un-videogame-per-iphone-bubble-touch-per-iphone-and-go/</link>
		<comments>http://www.iphoneandgo.it/2009/03/09/diario-di-un-videogame-per-iphone-bubble-touch-per-iphone-and-go/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:41:51 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2286</guid>
		<description><![CDATA[Ormai anche il mese di febbraio è passato e i due fratelli (Twins) PiXy e BugMaN ci vogliono raccontare a che punto sono arrivati con la realizzazione del loro videogame: Bubble Touch. Menù, effetti audio, grafica.. tutti ingredienti fondamentali per una buona realizzazione.. Durante il mese di Febbraio il gioco non ha subito grosse evoluzioni [...]]]></description>
			<content:encoded><![CDATA[<p>Ormai anche il mese di febbraio è passato e i due fratelli (Twins) PiXy e BugMaN ci vogliono raccontare a che punto sono arrivati con la realizzazione del loro videogame: Bubble Touch. Menù, effetti audio, grafica.. tutti ingredienti fondamentali per una buona realizzazione..</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/game-1.png" rel="lightbox[2286]" title="game-1"><img class="aligncenter size-full wp-image-2287" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="game-1" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/game-1.png" alt="" width="490" height="330" /></a></p>
<p><span id="more-2286"></span>Durante il mese di Febbraio il gioco non ha subito grosse evoluzioni dal punto di vista del gameplay.<br />
Questo perchè abbiamo preferito concentrarci sui menu, sulla pulizia e il refactoring (mettere a fattor comune classi e metodi) del codice. Inoltre abbiamo cercato di rendere il codice sorgente molto piu’ corto, leggibile e semplice da usare. Tutti gli sforzi fatti sicuramente andranno ad incidere positivamente anche per i mesi successivi e per i prossimi giochi (se ce ne saranno) che potranno riutilizzare il codice scritto per Bubble Touch.<br />
Ma vediamo nel dettaglio cosa e’ stato fatto questo mese:</p>
<p><strong>•    Menu del gioco</strong></p>
<p>Finalmente abbiamo completato il design del menu principale, e dei sottomenu utili per accedere e poter giocare ad un livello. L’idea e’ quella di rendere i menu facilmente intuibili ed utilizzabili, senza troppe spiegazioni e perdite di tempo.<br />
Personalmente crediamo che un gioco per iPhone deve essere semplice e facile da usare, fin dal suo primo utilizzo: i primi 3/4 minuti di gioco devono impressionare chi gioca, e devono puntare quindi tutto su semplicita’ e giocabilita’.<br />
Questo e’ ancora piu’ importante per Bubble Touch, che puo’ essere giocato anche per 2/3 minuti alla volta.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/menu.png" rel="lightbox[2286]" title="menu"><img class="aligncenter size-full wp-image-2290" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="menu" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/menu.png" alt="" width="490" height="330" /></a></p>
<p><strong>•    Bottone Play</strong></p>
<p>Una volta cliccato sul bottone Play appare la schermata di selezione del pianeta:</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/selectplanet.png" rel="lightbox[2286]" title="selectplanet"><img class="aligncenter size-full wp-image-2291" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="selectplanet" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/selectplanet.png" alt="" width="490" height="330" /></a></p>
<p>Molto semplicemente i pianeti selezionabili appaiono nel loro “splendore” danzando, mentre per i pianeti non ancora sbloccati vedremo un’ombra.  Ogni pianeta è composto da 9 livelli che si sbloccheranno in ordine cronologico man mano che per ogni livello si raggiunge l&#8217;obiettivo prefissato.<br />
Dopo aver scelto il pianeta (all&#8217;inizio del gioco sarà possibile solo giocare sul Blue Planet)  si accede alla selezione del livello:</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/selectlevel.png" rel="lightbox[2286]" title="selectlevel"><img class="aligncenter size-full wp-image-2292" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="selectlevel" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/selectlevel.png" alt="" width="490" height="330" /></a></p>
<p>Come gia’ descritto nel design, il livello e’ rappresentato con una mappa divisa in 9 singoli pezzi. I pezzi completati mostrano una parte di disegno che si andra’ a formare interamente quando il pianeta sara’ totalmente completato, mentre se un livello è disponibile ma non ancora “superato” il pezzo di mappa apparirà oscurato.<br />
<a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/parte.png" rel="lightbox[2286]" title="parte"><img class="alignleft size-full wp-image-2295" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="parte" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/parte.png" alt="" width="142" height="158" /></a>Selezionando un livello (con un clic &#8211; touch) sulla destra appariranno delle statistiche.<br />
In particolare vedremo il numero del livello (Livello 1-1 nell&#8217;esempio in figura), un  bottone Play per poter giocare e se il livello è stato superato il punteggio massimo ottenuto.<br />
La grafica di questa sezione e’ ancora in via di sviluppo, si possono notare le stelline che abbiamo deciso di utilizzare per sapere se il punteggio raggiunto è buono o meno.<br />
Il box in grigio che vedete in figura rappresenta lo spazio dedicato al bottone Play che ancora non è stato disegnato graficamente.</p>
<p><strong>•    Pagina dei risultati</strong></p>
<p>Stiamo ancora lavorando sulla pagina dei risultati che apparira’ quando il giocatore ha terminato un livello.<br />
Uno screenshot ancora in fase di costruzione che puo’ dare un’idea di come saranno presentati i risultati è il seguente:</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/completed.png" rel="lightbox[2286]" title="completed"><img class="aligncenter size-full wp-image-2296" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="completed" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/completed.png" alt="" width="490" height="330" /></a></p>
<p>In particolare in alto troveremo il risultato (livello completato o meno) mentre nel riquadro ora vuoto avremo le statistiche di bolle colpite divise per colori. Lo spazio dedicato alle stelle ci darà un valore visivo del punteggio che invece apparirà nella zona in basso subito dopo la scritta “Score:”.  Infine il pulsante “Map” farà tornare il giocare alla schermata di selezione del livello.</p>
<p><strong>•    Supporto Texture PVR e Texture Atlas</strong></p>
<p>Durante la fase di pulizia del codice ne abbiamo approfittato per migliorare la gestione delle texture atlas ed inserire il supporto per le texture PVR .<br />
Probabilmente abbandoneremo il formato .png in favore del formato PVR in modo da occupare meno spazio su disco e migliorare le perfomance.<br />
Inoltre abbiamo concluso l&#8217;implementazione del Texture Manager inserendo la possibilità di usare i Texture Atlas per ottimizzare il numero di immagini da gestire.</p>
<p>PiXy &amp; BugMaN / PixMapBrothers per iPhone and Go&#8230;.</p>
<p>un ringraziamento da sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/03/09/diario-di-un-videogame-per-iphone-bubble-touch-per-iphone-and-go/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gestione file XML su iPhone / iPod Touch (BubbleTouch)</title>
		<link>http://www.iphoneandgo.it/2009/03/02/gestione-file-xml-su-iphone-ipod-touch-bubbletouch/</link>
		<comments>http://www.iphoneandgo.it/2009/03/02/gestione-file-xml-su-iphone-ipod-touch-bubbletouch/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 22:34:15 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2223</guid>
		<description><![CDATA[Creare un gioco per iPhone, come per le diverse piattaforme che utilizziamo quotidianamente, non vuol dire soltanto conoscere lo specifico linguaggio che ci serve per creare il codice sorgente e da qui produrre l&#8217;eseguibile del gioco: vuol dire prendere atto di una svariata gamma di tecnologie, di sistemi, di linguaggi e pseudo-linguaggi che serviranno ad [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/xml1.png" rel="lightbox[2223]" title="xml1"><img class="alignright size-full wp-image-2224" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="xml1" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/xml1.png" alt="" width="233" height="233" /></a>Creare un gioco per iPhone, come per le diverse piattaforme che utilizziamo quotidianamente, non vuol dire soltanto conoscere lo specifico linguaggio che ci serve per creare il codice sorgente e da qui produrre l&#8217;eseguibile del gioco: vuol dire prendere atto di una svariata gamma di tecnologie, di sistemi, di linguaggi e pseudo-linguaggi che serviranno ad implementare aspetti multimediali e tecnici come la grafica, le animazioni, il video, la musica, a volte la fisica e la gestione dei dati come ad esempio il salvataggio dei records !. Oggi PiXy ci parlerà di XML&#8230; cos&#8217;e&#8217; e a cosa può servire !.<br />
<span id="more-2223"></span><br />
<strong>1. Cos&#8217;e&#8217; XML ?</strong></p>
<p>XML (eXtensible Markup Language) e&#8217; un linguaggio (o meglio un meta-linguaggio) di markup (come ad esempio HTML, utilizzato per strutturare le pagine web)<br />
che puo&#8217; essere utilizzato per memorizzare e gestire dati di qualunque tipo.<br />
Come per il linguaggio HTML un file XML e&#8217; quindi composto da una serie di tag.</p>
<p>Un tag, nel nostro caso, non rappresenta la firma di un writers, ma e&#8217; un elemento sintattico che serve<br />
per strutturare un documento XML (o anche HTML).<br />
Un tag ha sempre un nome, puo&#8217; avere degli attributi, e contenere anche dei dati (caratteri).</p>
<p>Alcune piccole regole:</p>
<p>- i tag non possono iniziare con numeri o caratteri speciali e non possono contenere spazi;<br />
- i tag devono essere bilanciati, ogni tag aperto deve essere chiuso e non sono consentiti errori di annidamento, ad esempio:</p>
<p><span style="color: #0000ff;">&lt;rubrica&gt;<br />
&lt;nome&gt;Mario&lt;/nome&gt;<br />
&lt;cognome&gt;Rossi<br />
&lt;/rubrica&gt;</span></p>
<p>il tag cognome non e&#8217; stato chiuso quindi l&#8217;XML non e&#8217; ben formato.</p>
<p>Un tag generico ha quindi la seguente sintassi:</p>
<p>&lt;nometag attributo1=&#8221;valore1&#8243; attributo2=&#8221;valore2&#8243;&gt;  caratteri&#8230; &lt;/nometag&gt;</p>
<p>oppure, in forma abbreviata (nel caso in cui il tag non contenga nessun dato/carattere) :</p>
<p>&lt;nometag attributo1=&#8221;valore1&#8243; attributo2=&#8221;valore2&#8243; /&gt;</p>
<p>In un file XML i tag non appartengono ad un insieme prefissato e limitato (come nel caso dell&#8217;HTML)<br />
ma possono essere di qualunque tipo e forma in base all&#8217;esigenze dell&#8217;utente.</p>
<p>La prima riga di un file XML, chiamata solitamente prologo,<br />
serve a definire la versione in uso e la specifica standard per la sua corretta<br />
implementazione.</p>
<p>Infine ogni file XML deve contenere un unico elemento che racchiude tutti gli altri (chiamato elemento radice (root)).</p>
<p>Un esempio completo di un XML ben formato e&#8217; il seguente:</p>
<p><span style="color: #0000ff;">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243;?&gt;<br />
&lt;utenti&gt;<br />
&lt;utente&gt;<br />
&lt;nome&gt;Luca&lt;/nome&gt;<br />
&lt;cognome&gt;Ruggero&lt;/cognome&gt;<br />
&lt;indirizzo&gt;Milano&lt;/indirizzo&gt;<br />
&lt;/utente&gt;<br />
&lt;utente&gt;<br />
&lt;nome&gt;Max&lt;/nome&gt;<br />
&lt;cognome&gt;Rossi&lt;/cognome&gt;<br />
&lt;indirizzo&gt;Roma&lt;/indirizzo&gt;<br />
&lt;/utente&gt;<br />
&lt;/utenti&gt;</span></p>
<p><strong>2. Quando posso utilizzare l&#8217;XML all&#8217;interno di un&#8217;applicazione per iPod Touch/iPhone ?</strong></p>
<p>Per la gestione dei dati tre sono le possibili alternative, entrambi molto semplici da utilizzare:</p>
<p>1. Utilizzare file XML<br />
2. Utilizzare file sqlite (database)<br />
3. Utilizzare i file di plist (property list)</p>
<p>Mentre le property list sono piu&#8217; appropriate per salvare le opzioni dell&#8217;applicazione, e l&#8217;utilizzo di un file<br />
sqlite, quindi di un database, e&#8217; consigliato quando la mole di dati e&#8217; molto vasta ed e&#8217; necessario effettuare delle ricerche,<br />
l&#8217;XML puo&#8217; essere utilizzato per piccole quantita&#8217; di dati da memorizzare, o per comunicare con applicazione esterne.</p>
<p>Nel nostro gioco (Bubble Touch), per fare un esempio concreto, stiamo utilizzando file XML per gestire la configurazione dei livelli (tipi di palline presenti,<br />
bonus, malus, oggetti presenti sullo sfondo, obiettivo del livello) e anche lo stato del gioco (livelli completati, punteggi).</p>
<p>Questo ci permette di creare e modificare il comportamento di un livello semplicemente editando un file XML senza la necessita&#8217; di dover<br />
ricompilare ogni volta tutta l&#8217;aaplicazione.<br />
Inoltre in questo modo potremmo benissimo creare un editor di livelli (su Mac o anche su PC) che permette di gestire i parametri di un livello<br />
attraverso un&#8217;interfaccia grafica e salvarli poi nel formato XML (che ricordiamo e&#8217; semplicemente un file di testo).</p>
<p><strong>3. Come si usa ?</strong></p>
<p>Per scrivere un file XML basta un qualunque editor di testo, cosi&#8217; come a livello di codice, basta preparsi una stringa e salvarla poi su file.<br />
Solitamente i file XML hanno un estensione .xml.</p>
<p>Per leggere un file XML e&#8217; necessario effettuare il riconoscimento dei tag, dei loro attributi e dei caratteri che li contengono.<br />
Come durante la compilazione di un linguaggio di programmazione devono essere riconosciuti i costrutti, le istruzioni e verificata la sintassi, allo<br />
stesso modo dobbiamo fare noi con il nostro file XML.</p>
<p>La verifica della correttezza e della validita&#8217; del file XML (fase successiva) la tralasciamo in quanto richiederebbe maggiori spiegazioni.</p>
<p><strong>4. Parsing</strong></p>
<p>La prima fase, riconoscere i tag, gli attributi e i dati, viene chiamata (come per i linguaggi di programmazione) parsing.<br />
Il parsing analizza una stringa e cerca di ricavare la sua struttura grammaticale, il parser e&#8217; l&#8217;oggetto che si occupa di fare questa operazione.</p>
<p>Per poter effettuare il parsing di un file XML solitamente si utilizzano due differenti tipi di interfacce, presenti ed implementate<br />
nella maggior parte dei linguaggi di programmazione:</p>
<p>1. SAX (Simple API for XML)<br />
2. DOM (Document Object Model)</p>
<p>Cocoa Touch mette a disposizione una classe NSXMLParser che permette di analizzare XML utilizzando l&#8217;interfaccia SAX.<br />
In Cocoa esiste anche una classe NSXMLDocument che permette di utilizzare l&#8217;interfaccia DOM ma non e&#8217; stata inclusa nelle librerie per iPhone (Cocoa Touch).<br />
Sono presenti inoltre molte altre librerie esterne (lib2xml, touchXML, TouchJSON) che permettono di utilizzare anche l&#8217;interfaccia DOM e hanno<br />
alcuni vantaggi in termini di perfomance.</p>
<p><strong>5. Il parser SAX : NSXMLParser</strong></p>
<p><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/03/xml_icon.jpg" rel="lightbox[2223]" title="xml_icon"><img class="alignleft size-full wp-image-2237" title="xml_icon" src="http://www.iphoneandgo.it/wp-content/uploads/2009/03/xml_icon.jpg" alt="" width="139" height="132" /></a>NSXMLParser e&#8217; una classe figlia di NSObject (ovviamente) che, come acccennato ci permette di utilizzare l&#8217;interfaccia SAX.</p>
<p>Questa interfaccia lavora, leggendo il file XML linea per linea ed e&#8217; basata su eventi.<br />
Durante la lettura al verificarsi di un evento (ad esempio: apertura di un tag, chiusura di un tag, etc..) viene chiamata una funzione specifica<br />
che puo&#8217; gestirlo. Tale funzione prende il nome di handler.</p>
<p>I vantaggi dell&#8217;interfaccia SAX sono principalmente legati alla velocita&#8217; e all&#8217;utilizzo di memoria (pensate che l&#8217;interfaccia DOM costruisce un vero e proprio albero<br />
in memoria che contiene tutta la struttura XML). Con tale interfaccia non e&#8217; possibile scrivere file XML ma solamente leggerli e processarli.</p>
<p>Allora NSXMLParser, essendo un parser SAX, itererà tra tutti gli elementi presenti all&#8217;interno del file XML.<br />
Tecnicamente utilizza un delegato per invocare i metodi al verificarsi degli eventi descritti precedentemente.</p>
<p>Ci sono tre metodi che bisogna implementare nella classe che dovrà leggere il file XML:</p>
<p>- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict</p>
<p>- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName</p>
<p>- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string</p>
<p>Come suggerito dal loro nome didStartElement viene chiamato quando si incontra l&#8217;inizio di un tag, didEndElement alla fine di un tag, e foundCharaters serve per poter<br />
ottenere il dato (solitamente caratteri) contenuto all&#8217;interno di un elemento (tag).</p>
<p>Incominciamo dal primo metodo: didStartElement</p>
<p>Questo metodo viene chiamato ogni volta che il parser incontra un nuovo tag.<br />
Il puntatore elementName ci dà il nome dell&#8217;elemento. Se abbiamo ad esempio un elemento del tipo</p>
<p>&lt;Nominativo Nome=&#8221;Angelo Cognome=&#8221;Moriconi&#8221;&gt;&lt;/nominativo&gt;</p>
<p>o in forma abbreviata,</p>
<p>&lt;Nominativo Nome=&#8221;Angelo&#8221; Cognome=&#8221;Moriconi /&gt;</p>
<p>che non contiene caratteri e ha due attributi, il codice all&#8217;iterno di didStartElement per poter prendere il valore dei due attributi sarà il seguente:</p>
<p>if([elementName isEqualToString:@"Nominativo"])<br />
{<br />
std::string nome = [[attributeDict objectForKey:@"Nome"] cString];<br />
std::string cognome = [[attributeDict objectForKey:@"Cognome"] cString];<br />
}</p>
<p>Come potete vedere attributeDict e&#8217; un dizionario che contiene la lista di tutti gli attributi, e con il metodo objectForKey:key possiamo attingere al valore dell&#8217;attributo con chiave key.<br />
Tale metodo ci ritorna un  oggetto NSString. Nell&#8217;esempio tale oggetto è stato convertito in una stringa std (libreria standard del linguaggio c++).</p>
<p>Quindi quello che faremo all&#8217;interno di didStartElement solitamente si tradurrà in una serie di if in cascata (per controllare l&#8217;inizio di ogni elemento) dove, una volta riconosciuto il tag dato il suo nome possiamo procedere alla memorizzazione dei dati.</p>
<p>Nell&#8217;esempio non facciamo assolutamente nulla, possiamo comunque ricostruire la nostra struttura dati passo dopo passo all&#8217;interno di questo metodo.</p>
<p>Il metodo didEndElement viene invece utilizzato in maniera simmetrica quando arriva un evento di tag chiuso.<br />
Utilizzato in combinazione con didStartElement ci permette di capire quando abbiamo finito di memorizzare i nostri dati e possiamo finalmente salvarli sulla nostra struttra.</p>
<p>Se ad esempio abbiamo un XML del tipo:</p>
<p><span style="color: #0000ff;">&lt;DatiAnagrafici&gt;</span></p>
<p><span style="color: #0000ff;"> &lt;Nome value=&#8221;Angelo&#8221; /&gt;<br />
&lt;Cognome value=&#8221;Moriconi&#8221; /&gt;<br />
&#8230;<br />
&#8230;<br />
&lt;/DatiAnagrafici&gt;</span></p>
<p>Possiamo memorizzarci tutti i dati in delle variabili, e, quando l&#8217;elemento DatiAnagrafici è terminato possiamo poi salvarci la nostra struttura sulle classi che stiamo utilizzando nella nostra applicazione.</p>
<p>Il metodo foundCharacters viene chiamato anche più di una volta all&#8217;interno dello stesso tag, conviene quindi utilizzare una NSMutableString<br />
che deve essere rinizializzata ad ogni nuovo elemento e chiamare il metodo appendString: per poter memorizzare correttamente tutto il contenuto presente all&#8217;interno di un elemento.</p>
<p>Come facciamo a creare una classe ed utilizzare i delegati per leggere il file XML ?</p>
<p>Molto semplicemente basta definire una classe figlia di NSObject che può avere anche un solo metodo:</p>
<p>@interface XMLReader: NSObject</p>
<p>- (BOOL)parseXMLFile:(NSString *)URL;</p>
<p>@end</p>
<p>Nel file .m possiamo poi implementare il metodo parseXMLFile facendo in modo che la nostra classe XMLReader sia un delegato di NSXMLParser:</p>
<p>- (BOOL)parseXMLFile:(NSString *)URL<br />
{<br />
//Bisogna convertire il file in una NSURL altrimenti non funziona<br />
NSURL *xmlURL = [NSURL fileURLWithPath:URL];</p>
<p>// Creiamo il parser<br />
NSXMLParser *parser = [[ NSXMLParser alloc] initWithContentsOfURL:xmlURL];<br />
// Il delegato del parser e&#8217; la classe stessa (self)<br />
[parser setDelegate:self];<br />
[parser setShouldProcessNamespaces:NO]; // Non utilizziamo namespace<br />
[parser setShouldReportNamespacePrefixes:NO];<br />
[parser setShouldResolveExternalEntities:NO]; // Vogliamo solamente i dati e non altro&#8230;<br />
// Effettuiamo il parser<br />
[parser parse];<br />
// Rilasciamo l&#8217;oggetto NSXMLParser<br />
[parser release];<br />
return YES;<br />
}</p>
<p>Infine, sempre nel file .m dovremo implementare i 3 metodi sopra descritti:</p>
<p>- (void)parser:(NSXMLParser *)parser<br />
didStartElement:(N SString *)elementName<br />
namespaceURI:(NSString *)namespaceURI<br />
qualifiedName:(NSString *)qName<br />
attributes:(NSDictionary *)attributeDict<br />
{<br />
NSLog(@&#8221;Inizio elemento: %@&#8221;, elementName);<br />
}</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>- (void)parser:(NSXMLParser *)parser<br />
didEndElement:(NSString *)elementName<br />
namespaceURI:(NSString *)namespaceURI<br />
qualifiedName:(NSString *)qName<br />
{<br />
NSLog(@&#8221;Fine Elemento: %@&#8221;, elementName);<br />
}</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>// ATT: Questo metodo viene essere chiamato più volte all&#8217;interno dello stesso elemento<br />
- (void)parser:(NSXMLParser *)parser<br />
foundCharacters:(NSString *)ch<br />
{<br />
NSLog(@&#8221;carattere: %@&#8221;, ch);<br />
}</p>
<p>Esiste poi un ulteriore metodo che ci permette di scovare eventuali errori durante il parser:</p>
<p>//&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {<br />
NSLog(@&#8221;ERROR:%@&#8221;, [parseError localizedDescription]);<br />
}</p>
<p>Con questo è tutto !</p>
<p>PiXy / PixMapBrothers e un ringraziamento da sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/03/02/gestione-file-xml-su-iphone-ipod-touch-bubbletouch/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Voglio fare un gioco per iPhone anch’io, come posso iniziare ? da Bubble Touch, PiXy ci dice come</title>
		<link>http://www.iphoneandgo.it/2009/02/23/voglio-fare-un-gioco-per-iphone-anchio-come-posso-iniziare-da-bubble-touch-pixy-ci-dice-come/</link>
		<comments>http://www.iphoneandgo.it/2009/02/23/voglio-fare-un-gioco-per-iphone-anchio-come-posso-iniziare-da-bubble-touch-pixy-ci-dice-come/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 18:29:54 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2161</guid>
		<description><![CDATA[Nel mentre che questi due fratelli portano avanti la loro missione: sviluppare un gioco per iPhone (Bubble Touch), riescono anche a regalarci il tempo per questo articolo facendo una carellata di consigli e suggerimenti su come iniziare a sviluppare un gioco (video games) per iPhone. LINGUAGGIO DI PROGRAMMAZIONE: Molto semplicemente, se si conosce gia&#8217; qualcosa [...]]]></description>
			<content:encoded><![CDATA[<p>Nel mentre che questi due fratelli portano avanti la loro missione: sviluppare un gioco per iPhone (Bubble Touch), riescono anche a regalarci il tempo per questo articolo facendo una carellata di consigli e suggerimenti su come iniziare a sviluppare un gioco (video games) per iPhone.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/02/immagine-12.png" rel="lightbox[2161]" title="immagine-12"><img class="aligncenter size-full wp-image-2163" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="immagine-12" src="http://www.iphoneandgo.it/wp-content/uploads/2009/02/immagine-12.png" alt="" width="554" height="170" /></a></p>
<p><span id="more-2161"></span><strong>LINGUAGGIO DI PROGRAMMAZIONE:</strong></p>
<p>Molto semplicemente, se si conosce gia&#8217; qualcosa di C / C ++ conviene utilizzare direttamente questo linguaggio ed impararsi i costrutti e i fondamenti di Objective-C.<br />
Objective-C deve essere necessariamente utilizzato per poter comunicare direttamente con le API del dispositivo e gestire il suo HW (ad esempio per poter creare una view che contiene una finestra OpenGL ES, oppure per poter gestire il touch (o il multitouch), l&#8217;accellerometro, &#8230; ).</p>
<p>Se non si conosce nessun linguaggio tanto vale imparare l&#8217;objective-c da 0.</p>
<p>Quali sono i vantaggi e gli svantaggi di una scelta (C/C++) piuttosto che l&#8217;altra (Objective-C) ?</p>
<p>Principalmente la portabilita&#8217;. Se scrivo un codice C++, utilizzando le librerie standard il gioco che scrivero&#8217; sara&#8217; molto facile da portare su altre piattaforme (anche su PC stesso) senza troppe modifiche. Per quanto riguarda i dispositivi mobili, windows CE (o mobile), il vecchio Symbian, o anche le stesse Qt (ora passate a Nokia) utilizzano estensivamente e in maniera completa il C++. Android di Google e&#8217; l&#8217;unico sistema di API che attualemente utilizza Java e per cui il porting richiede la riscrittura di buona parte di codice.</p>
<p>Conoscendo solo l&#8217;Objective-C, per poter fare il porting (trasferire cioe&#8217; l&#8217;applicazione da un dispositivo ad un altro) probabilmente ci sara&#8217; molto piu&#8217; lavoro da fare.</p>
<p>Ma non e&#8217; che scrivere in Objective-C porta vantaggi nelle performance dell&#8217;applicazione ?</p>
<p>Assolutamente No. Il compilatore GCC e&#8217; in grado di compilare allo stesso modo (ed anche in modo promiscuo) cocice C/C++ ed Objective-C. Molti sviluppatori non hanno trovato nessun calo dal punto di vista delle performance.</p>
<p>E&#8217; possibile &#8220;mischiare&#8221; codice C++ ed Objective-C ?</p>
<p>Si ! Ed e&#8217; quello che attualmente facciamo noi nel nostro gioco, se si conoscono e si utilizzano entrambi i linguaggi si puo&#8217; prendere il meglio dall&#8217;uno e dall&#8217;altro e farli convivere tranquillamente.<br />
Ad esempio il codice del nostro gioco che legge i livelli (che sono semplicemente file XML) utilizza il parser presente in Cocoa (la NSXMLParser ) fornendo metodi e comunicando con oggetti C++.</p>
<p><strong>CONCLUSIONI:</strong></p>
<p>Questi i nostri consigli:</p>
<p>Se si conosce gia&#8217; il C++ incominciare ad imparare, quando serve e necessario, Objective-C (le basi sono comunque obbligatorie).</p>
<p>Se si hanno necessita&#8217; e si pensa in futuro di riscrivere il codice per altri dispositivi pensare al C++ come linguaggio &#8220;primario&#8221;.</p>
<p>Se non si conosce nessun linguaggio e si vuole sviluppare solo per iPod /iPhone (ed al massimo Mac) imparare da 0 e per bene Objective-C.</p>
<p><strong>OpenGL ES:</strong></p>
<p>Se si vuole fare un gioco (sia 2D che 3D) penso la cosa migliore sia imparare ed utilizzare OpenGL ES.<br />
OpenGL ES e&#8217; un API (Application Programming Interface) di basso livello dedicata alla grafica tridimensionale e non solo.<br />
E&#8217; vero che per sviluppare una semplice applicazione 2D probabilmente anche le librerie messe a disposizione da Cocoa (nell&#8217;SDK di iPhone) potrebbero essere sufficienti, credo sia comunque meglio imparare OpenGL ES in quanto permette poi di poter sviluppare anche applicazioni 3D e sopratutto (cosa piu&#8217; importante) comunicano a basso livello direttamente con il sottosistema grafico (scheda grafica + GPU).</p>
<p>Ci sono alcuni semplici esempi di utilizzo, basilare di OpenGL ES per una semplice applicazione 2D o 3D che possono essere &#8220;studiati&#8221;.</p>
<p><strong>FISICA </strong>(physics engine):</p>
<p>Un buon gioco ha oramai anche un buon motore fisico alle spalle per gestire collisioni, interazioni tra oggetti, gravita&#8217; , frizione, etc. etc.<br />
Su iPhone vengono attualmente utilizzate due librerie:</p>
<p>* Box2D (nel prossimo articolo)<br />
* Chipmunk (molto piu&#8217; semplice e snella)</p>
<p><strong>LIBRERIE AD ALTO LIVELLO:</strong></p>
<p>Se volete utilizzare delle librerie (o motori grafici) di alto livello per sviluppare (evitando di dover imparare i concetti di basso livello) potete provare benissimo<br />
Cocos2D (per il 2D) (che e&#8217; scritta in Objective-C) o altre librerie gia&#8217; esistenti per il 3D (simili).</p>
<p><strong>AUDIO:</strong></p>
<p>Per l&#8217;audio conviene utilizzare le librerie e le API messe a disposizione da Apple nell&#8217;SDK.<br />
Ecco&#8230; per voi PiXy&#8230;! e un grazie da iPhone and Go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/02/23/voglio-fare-un-gioco-per-iphone-anchio-come-posso-iniziare-da-bubble-touch-pixy-ci-dice-come/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bubble Touch per iPhone e la definizione del progetto.</title>
		<link>http://www.iphoneandgo.it/2009/02/16/bubble-touch-per-iphone-e-la-definizione-del-progetto/</link>
		<comments>http://www.iphoneandgo.it/2009/02/16/bubble-touch-per-iphone-e-la-definizione-del-progetto/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 22:00:21 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Applicazioni iphone]]></category>
		<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2109</guid>
		<description><![CDATA[Bubble Touch per iPhone e&#8217; un gioco, lo scopo è quello di premere e quindi distruggere più bolle possibili che si muoveranno sullo schermo. PiXy e BugMaN hanno stilato un documento di nove pagine (fin&#8217;ora) molto dettagliato su quello che deve essere il concetto, la struttura, le sezioni, insomma tutto il necessario per argomentare tutti [...]]]></description>
			<content:encoded><![CDATA[<p>Bubble Touch per iPhone e&#8217; un gioco, lo scopo è quello di premere e quindi distruggere più bolle possibili che si muoveranno sullo schermo.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/02/immagine-11.png" rel="lightbox[2109]" title="immagine-11"><img class="aligncenter size-full wp-image-2110" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="immagine-11" src="http://www.iphoneandgo.it/wp-content/uploads/2009/02/immagine-11.png" alt="" width="497" height="334" /></a></p>
<p><span id="more-2109"></span>PiXy e BugMaN hanno stilato un documento di nove pagine (fin&#8217;ora) molto dettagliato su quello che deve essere il concetto, la struttura, le sezioni, insomma tutto il necessario per argomentare tutti i punti che formeranno il gioco.</p>
<p>Si comincia con una descrizione tecnica, come l&#8217;orientamento del gioco, le opzioni di multiplayer o singleplayer, e le librerie da utilizzare BOX2d, OpenGLES; si passerà poi alla descrizione del gioco, come funzionerà, lo scopo, ecc; in seguito si troveranno le sezioni menu che comporranno il gioco e le loro specifiche.</p>
<p>Il documento che potrete facilmente scaricare da <a href="http://www.iphoneandgo.org/download/bubble_touch.pdf" target="_blank">questo link</a> e&#8217; molto completo e ben fatto. PiXy e BugMaN nella loro avventura discutono, con domande aperte, su quelle che sono le soluzioni migliori da adottare per la realizzazione di Bubble Touch.</p>
<p>Ognuno di noi e&#8217; libero di partecipare ponendo domande o semplicemente commentando ciò che sente nella speranza di dare un campo di prova molto importante prima della sua realizzazione completa finale !.</p>
<p>Per voi Sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/02/16/bubble-touch-per-iphone-e-la-definizione-del-progetto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bubble Touch dei gemelli PiXy e BugMaN … inizia l’avventura !</title>
		<link>http://www.iphoneandgo.it/2009/02/08/bubble-touch-dei-gemelli-pixy-e-bugman-inizia-lavventura/</link>
		<comments>http://www.iphoneandgo.it/2009/02/08/bubble-touch-dei-gemelli-pixy-e-bugman-inizia-lavventura/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 14:59:04 +0000</pubDate>
		<dc:creator>Stefano Lodu</dc:creator>
				<category><![CDATA[Applicazioni iphone]]></category>
		<category><![CDATA[Cresciamo insieme]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[bubble touch]]></category>

		<guid isPermaLink="false">http://www.iphoneandgo.it/?p=2003</guid>
		<description><![CDATA[Questo è l&#8217;inizio! Un diario di bordo dove Maurizio Moriconi (BugMaN) e Angelo Moriconi (PiXy) racconteranno agli user di iPhone and Go la loro passione, un loro sogno: realizzare un videogame per iPhone: Bubble Touch ! Ha inizio l&#8217;avventura, PiXy e BugMan ci racconteranno la loro esperienza, ci diranno come e&#8217; nata la loro passione [...]]]></description>
			<content:encoded><![CDATA[<p>Questo è l&#8217;inizio! Un diario di bordo dove Maurizio Moriconi (BugMaN) e Angelo Moriconi (PiXy) racconteranno agli user di iPhone and Go la loro passione, un loro sogno: realizzare un videogame per iPhone: Bubble Touch !</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/02/gemelli2.jpg" rel="lightbox[2003]" title="gemelli2"><img class="aligncenter size-full wp-image-2005" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="gemelli2" src="http://www.iphoneandgo.it/wp-content/uploads/2009/02/gemelli2.jpg" alt="" width="500" height="280" /></a></p>
<p><span id="more-2003"></span>Ha inizio l&#8217;avventura, PiXy e BugMan ci racconteranno la loro esperienza, ci diranno come e&#8217; nata la loro passione dei video games dai tempi del famoso C64 e dei giochi come Bubble Bobble, si racconteranno delle loro esperienze professionali e la loro sinergia come fratelli per realizzare i loro sogni comuni.</p>
<p style="text-align: center;"><a href="http://www.iphoneandgo.it/wp-content/uploads/2009/02/gioco1.png" rel="lightbox[2003]" title="gioco1"><img class="aligncenter size-full wp-image-2009" style="border: 0pt none; margin-top: 0px; margin-bottom: 0px;" title="gioco1" src="http://www.iphoneandgo.it/wp-content/uploads/2009/02/gioco1.png" alt="" width="486" height="326" /></a></p>
<p>Impareremo !&#8230; Impareremo !&#8230; Bubble Touch e&#8217; il loro videogame, si basa sulla fisica dei corpi 2D e la simulazioni di essi attraverso componenti disegnati appositamente per la loro realizzazione <a href="http://www.box2d.org" target="_blank">Box2d</a>; PiXy e BugMaN ci insegneranno e mostreranno articolo dopo articolo, il codice necessario a realizzare queste splendide simulazioni in videogame.</p>
<p>Spero che tutti seguiranno insieme a me questo contributo e possano commentare ed aiutare PiXy e BugMaN in questa loro avventura!..</p>
<p>Sir. Lodux !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.iphoneandgo.it/2009/02/08/bubble-touch-dei-gemelli-pixy-e-bugman-inizia-lavventura/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

