<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7565494085174686663</id><updated>2012-02-11T04:30:21.806Z</updated><category term='waffle'/><category term='tutorial'/><title type='text'>AGameAWeek iDev</title><subtitle type='html'>iPhing development blog, from Jayenkai.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-1948072427722960406</id><published>2012-02-11T04:26:00.003Z</published><updated>2012-02-11T04:30:21.815Z</updated><title type='text'>Unijuggler!</title><content type='html'>Available for &lt;a href="http://bit.ly/iOS_Unijuggler"&gt;iPhone, iPod Touch and iPad&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lyhRxHarRHY?version=3&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/lyhRxHarRHY?version=3&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" width="480" height="360" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Guide Clowny the Clown around the tent, juggling the balls and any other props that might appear along the way.&lt;br /&gt;A nice and simple game, with three difficulty levels ranging from easy and relaxing, right up to insanely hard and chaotic!&lt;br /&gt;&lt;br /&gt;It's &lt;a href="http://bit.ly/iOS_Unijuggler"&gt;$.99 in the AppStore&lt;/a&gt;, and it's available now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-1948072427722960406?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/1948072427722960406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2012/02/unijuggler.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/1948072427722960406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/1948072427722960406'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2012/02/unijuggler.html' title='Unijuggler!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-218652700911038535</id><published>2011-07-29T12:27:00.002+01:00</published><updated>2011-07-29T12:31:37.611+01:00</updated><title type='text'>Daisy Chains</title><content type='html'>Time for another app, another update to this forgotten blog, and another $.99 for you to shell out for it ;)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/app/daisy-chains/id450786846?mt=8"&gt;Daisy Chains : AppStore ($0.99/£0.69/equiv)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Everybody's favourite thing to do on a lazy summer's day.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A simple mix of Labyrinth's ball rolling with Flicky's tail stealing enemies!&lt;br /&gt;&lt;br /&gt;Roll your ball around the arena to grab hold of the daisies, then guide a chain towards the exit.&lt;br /&gt;The larger your Daisy Chain, the more points you'll score, but with each level the target increases, meaning you'll need to continue to dodge the incoming enemy bugs, whilst guiding your larger chain behind you.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="480" height="390" src="http://www.youtube.com/embed/T0hHtNjDocQ" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For those who love to read'em, the complete PR gubbins is included below.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Daisy Chains&lt;br /&gt;Everybody's favourite thing to do on a lazy summer's day.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A simple mix of Labyrinth's ball rolling with Flicky's tail stealing enemies!&lt;br /&gt;&lt;br /&gt;Roll your ball around the arena to grab hold of the daisies, then guide a chain towards the exit.&lt;br /&gt;The larger your Daisy Chain, the more points you'll score, but with each level the target increases, meaning you'll need to continue to dodge the incoming enemy bugs, whilst guiding your larger chain behind you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;App&lt;br /&gt;http://itunes.apple.com/us/app/daisy-chains/id450786846?mt=8&lt;br /&gt;&lt;br /&gt;Trailer&lt;br /&gt;http://www.youtube.com/watch?v=T0hHtNjDocQ&lt;br /&gt;&lt;br /&gt;-=-=-=-&lt;br /&gt;From the same Author&lt;br /&gt;-=-=-=-&lt;br /&gt;&lt;br /&gt;So far, James "Jayenkai" Gamble has managed to create another 5 instant-play iOS games.&lt;br /&gt;&lt;br /&gt;Stringy Things : A set of 4 happy bubbley word games, each with their own highscores and possible gameplay types. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cardagain : A fantastically playable memory/card game, mixing the repetitive dullness of the rubbish card-turning pair-matching boring game of your childhood, with a much more awesome set of arcade shuffling rules.  Remember the Layout, Remember the Order, Card Again!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Puzzobomb : Yet another remake of the classic block-shifting Vexed game, but this time with a few tweaks to the gameplay.  The blocks no longer move in annoyingly slow ways, the gameplay skips along nice and fast, and for 36 out of the 324 included levels, there are even some nice Bombs to help you along.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SpikeDislike : A retro classic in every way.  Hop the ball as far as you can, whilst avoiding the spikes.  Keep up the speed to earn super combo scores, and get the highest score you can.  GameCenter included!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sheep Goes Left : A game created for those who loved SpikeDislike, but would've prefer a laid out, level based challenge.  200 levels of wonderfully tricky, but entirely achievable spike dodging, and a happy sheep to avoid them all.   Hard, just like games used to be!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-=-=-=-&lt;br /&gt;About The Author&lt;br /&gt;-=-=-=-&lt;br /&gt;&lt;br /&gt;James "Jayenkai" Gamble has been busying away for years doing AGameAWeek, creating random games with vague playabilities, testing gameplay mechanics and trying out all the oddities that most developers wouldn't ever consider.&lt;br /&gt;With all this testing, he's managed to encapsulate the essence of gameplay.&lt;br /&gt;&lt;br /&gt;The "feel" of the game is what's important, and when creating games for iOS, that's exactly what he's attempting to achieve.&lt;br /&gt;You'll know a game's made by Jayenkai when you see his trademark gameplay priorities, and experience the inexplicable lack of artistic talent.&lt;br /&gt;&lt;br /&gt;Gameplay First : Because that's what counts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-218652700911038535?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/218652700911038535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/07/daisy-chains.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/218652700911038535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/218652700911038535'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/07/daisy-chains.html' title='Daisy Chains'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/T0hHtNjDocQ/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4412484114143522379</id><published>2011-06-20T11:53:00.004+01:00</published><updated>2011-06-20T11:58:23.010+01:00</updated><title type='text'>Sheep Goes Left - OST - 1!</title><content type='html'>Disc one of two, no less!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bit.ly/SGL_OST"&gt;Download 'em all here&lt;/a&gt;&lt;br /&gt;It's a complete archive of mp3s, and you can also grab it as one great big zip file, too.&lt;br /&gt;&lt;br /&gt;Disc two will appear in a few days, or so, and will mostly feature slightly retweaked versions of all the above songs.  Mostly shorter versions, as they originally appeared in Al's Tumbly site.&lt;br /&gt;&lt;br /&gt;Meanwhile, there's also the great big update coming up, which will give you a whole extra 100 screens of chaos to beat!&lt;br /&gt;I've no idea if people are actually attempting all the levels, or whether I've gone WAY too far making them all hard, but ..  heck, it's fun ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4412484114143522379?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4412484114143522379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/06/sheep-goes-left-ost-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4412484114143522379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4412484114143522379'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/06/sheep-goes-left-ost-1.html' title='Sheep Goes Left - OST - 1!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-353769208671898880</id><published>2011-06-10T09:06:00.003+01:00</published><updated>2011-06-10T09:14:38.752+01:00</updated><title type='text'>Sheep Goes Left</title><content type='html'>&lt;h1&gt;&lt;a href="http://bit.ly/SheepGoesLeft"&gt;For iPhone, iPod Touch and iPad&lt;/a&gt;  &lt;small&gt;(£1.19/$1.99/equiv.)&lt;/small&gt;&lt;/h1&gt;&lt;br /&gt;&lt;iframe width="425" height="349" src="http://www.youtube.com/embed/0ilC6F7xwRM" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Got an iPhone/iPod Touch/iPad?&lt;br /&gt;Grab Sheep Goes Left!!&lt;br /&gt;Go get it!&lt;br /&gt;It's out now!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-8Vmz4qD1jMA/TfHR_xuOIaI/AAAAAAAABvg/qChGBvwuLRs/s1600/sheep_5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://1.bp.blogspot.com/-8Vmz4qD1jMA/TfHR_xuOIaI/AAAAAAAABvg/qChGBvwuLRs/s400/sheep_5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5616501103916884386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sheep Goes Left is a good old, retro styled, single-screen, panic enducing, spike dodging platformer.&lt;br /&gt;&lt;br /&gt;Guide Sheepy to the other side of the screen, just so he can do it all over again!&lt;br /&gt;&lt;br /&gt;Dodge all the spikes, as well as any other oncoming objects, and you can guide him all the way to the other side.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-wCBtYpuRfaw/TfHR_sL94YI/AAAAAAAABvY/6Ocyvmf39Cc/s1600/sheep_3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://3.bp.blogspot.com/-wCBtYpuRfaw/TfHR_sL94YI/AAAAAAAABvY/6Ocyvmf39Cc/s400/sheep_3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5616501102431035778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The game includes 100 hand crafted screens filled with deadly spikes to dislike, 10 graphical worlds to wander through, and a complete 20 track soundtrack to keep you entertained along the way.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;&lt;a href="http://bit.ly/SheepGoesLeft"&gt;Get it in the AppStore&lt;/a&gt;  &lt;small&gt;(£1.19/$1.99/equiv.)&lt;/small&gt;&lt;/h1&gt;&lt;br /&gt;&lt;br /&gt;ps, yes, it's a Tier 2 price.  That means it's twice the price that SpikeDislike was.&lt;br /&gt;SpikeDislike took about a week to make, and is all random elements.&lt;br /&gt;This one's taken a month, has (for me!) decent background art, 20 pieces of music, and 100 levels.&lt;br /&gt;Hopefully that all counts for something!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-353769208671898880?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/353769208671898880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/06/sheep-goes-left.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/353769208671898880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/353769208671898880'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/06/sheep-goes-left.html' title='Sheep Goes Left'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/0ilC6F7xwRM/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6352468682746494345</id><published>2011-04-22T23:29:00.002+01:00</published><updated>2011-04-22T23:39:15.031+01:00</updated><title type='text'>Puzzobomb (again)</title><content type='html'>&lt;h3&gt;November 14, 2010&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;I'm not sure if I posted this here, can't seem to find it, but at some point using my old Framework, I decided to give Puzzobomb a whirl.&lt;br /&gt;I whipped up some sprites, drew the logo, drew the icons, converted the audio, got the game running, etc.&lt;br /&gt;Then we had the whole iPad related Sprite issue, and I got all ticked off, and threw the whole Framework out.&lt;br /&gt;Bah..&lt;br /&gt;&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/EG53xRdoRjs?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/EG53xRdoRjs?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;April 20th, 2011&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;During the month of April, I've taken the month off from AGameAWeek (Which is so far ahead of schedule that I've almost done an entire year's worth of game in the space of half a year!) and instead focussed on iDev.&lt;br /&gt;I built up an all new framework based on Cocos2D and my experience with SpikeDislike.&lt;br /&gt;Everything is coming along nicely.&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Mfbrt4iInJU?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Mfbrt4iInJU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;All-new remade Puzzobomb was submitted to Apple earlier today.  woot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6352468682746494345?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6352468682746494345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/04/puzzobomb-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6352468682746494345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6352468682746494345'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/04/puzzobomb-again.html' title='Puzzobomb (again)'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6572425659897119720</id><published>2011-04-02T00:37:00.002+01:00</published><updated>2011-04-02T00:40:13.097+01:00</updated><title type='text'>SpikeDislike + GameCenter!!</title><content type='html'>The v1.4 update is out at last, and with it comes the much requested GameCenter!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;If I'd done the Top10 properly, that'd be even better, but all scores are stored, badges are collected, and if you switch to the GC App, you can see everything there!&lt;br /&gt;Play away, and you'll get a proper Top10 when the next quicky update passes through the Applecart!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6572425659897119720?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6572425659897119720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/04/spikedislike-gamecenter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6572425659897119720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6572425659897119720'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/04/spikedislike-gamecenter.html' title='SpikeDislike + GameCenter!!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4145813181471877891</id><published>2011-03-20T22:13:00.004Z</published><updated>2011-03-20T23:49:35.033Z</updated><title type='text'>The AppStore Review Pile</title><content type='html'>I finally bothered to dust off my Review Scraping perl script today, and jiggered the thing about a bit until it gave me something useful!&lt;br /&gt;&lt;br /&gt;So, without further ado, and with a whole big bunch of text approaching, let's take a nosey at the great big archive of comments that's been left.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;nmaster66&lt;/b&gt;&lt;br /&gt;Addicting&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Indeed it is!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Gamewiz114&lt;/b&gt;&lt;br /&gt;I keep coming back to this for days now. Needs gamecenter but as it looks like that's planned for an update. Love the precise controls. I'm at 3545 score on easy/classic so beat that &lt;br /&gt;&lt;br /&gt;&lt;i&gt;I very nearly got 4000 the other day!  Annoyingly I've since wiped my highscores about 7/8 times, due to various testing.  Probably should've saved those.  Aw well..&lt;br /&gt;Why not head over to the &lt;a href="http://www.facebook.com/?sk=group_167338356646713"&gt;Facebook Group&lt;/a&gt; and post your best scores!&lt;br /&gt;(or.. at least, until GameCenter turns up!)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mediconeee&lt;/b&gt;&lt;br /&gt;Very fun game..  I love all the themes and difficulty levels.. Makes me come back for one more try!!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Woot :D&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;macbony&lt;/b&gt;&lt;br /&gt;Drained my battery before noticing that there's an alternative and random option. Game has a permanent spot on my phone.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Plenty to do.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;D&amp;amp;Dplayr&lt;/b&gt;&lt;br /&gt;This game is awesome 5/5&lt;br /&gt;&lt;br /&gt;&lt;i&gt;5's nice! Thanks to everyone who's been giving SpikeDislike such nice high marks!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;McNuggies&lt;/b&gt;&lt;br /&gt;Lots of fun from square one and there's different speeds to set records at. Got it free but this ones worth a buck.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Loads of people picked up the game during freebie day.  Over 5,000 players, all within the space of 24 hours!  Awesome stuff!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;appstoregamer&lt;/b&gt;&lt;br /&gt;Simple yet challenging.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;That's the way I like 'em!  I'm too lazy to learn controls ;)  They should be right, right from the start.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Flynn_Taggart&lt;/b&gt;&lt;br /&gt;*update*&lt;br /&gt;like the challenge modes. Still needs gamecenter badly. Also it changed my icon to the lite version?&lt;br /&gt;Presentation could use some polish but it's oddly compelling nonetheless. Practically screams for gamecenter though.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I know, I know.. Gamecenter IS coming, it's just..  taking it's time!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rocketman919&lt;/b&gt;&lt;br /&gt;Great game, but I always have some hit detection problems. Please fix this! I hate it when the game says I lost but it shows the ball is nowhere near the furry thing. Btw I play on Basketball so that's what I mean by ball and furry thing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Next update should fix this slightly.  It's not a hit detection problem, as such, more that the pompoms aren't actually spikey!&lt;br /&gt;The game assumes that all sprites are the same size, and does it's detection via a simple circle/box method.&lt;br /&gt;I left it like that so that, for example, the Basketball theme doesn't actually become easier, due to the sprites.&lt;br /&gt;But then it looks a bit quirky.  d'oh!&lt;br /&gt;I've tweaked the sprite a little, and it shouldn't be as dodgy in the next update (1.4, coming soon'ish!)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EddieUp&lt;/b&gt;&lt;br /&gt;One more try and that's it.  This game will make a liar out of you more times than not.  The update even pays homage to Canabalt (B&amp;W theme).  And the new Challenge Mode comes in handy as a built-in trainer.  The game comes with lots of different themes to keep it fresh.  And enough difficulty levels to make it challenging and fun.  5/5 stars.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;There are even more levels on their way, too.  In fact, the 1.35 update added a nice Evolve mode, which..  to be honest.. probably should've been there from the start!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Blarghfargargh&lt;/b&gt;&lt;br /&gt;Addictive! Fun!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Yup!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;LoobyLibby&lt;/b&gt;&lt;br /&gt;Why does my springboard icon say "lite" for my paid full version?&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Oh dear..  1.3, silly bug..  That's gone now! (I hope!)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;ToxicCheese&lt;/b&gt;&lt;br /&gt;This game has that 'just one more time' addictive quality. Games like this prove that amazing next-gen graphics aren't always needed when you have good, solid gameplay.&lt;br /&gt;Congratulations on a fantastic release. Look forward to updates and perhaps more game modes.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;More modes are currently in my head, but not yet in the game!  Coming soon!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Papasito2805&lt;/b&gt;&lt;br /&gt;It takes about three seconds to restart a game. And I haven't seen any way to mute the game without muting the phone. Still, fantastic game, and very addictive.&lt;br /&gt;Ps: gamecenter would be nice&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I'm one of the most impatient players that I know.  If a Story Mode pops up, with unskippable cutscenes, I'll be shouting at the game to get on with it.   The amount of swearing I did at BurnoutParadise is astronomical.  Especially once it crashed, and I had to sit through the whole thing again!&lt;br /&gt;It only takes a second or two to restart, and you don't even have to hit Play.  The whole right half of the screen is a giant START BUTTON!&lt;br /&gt;Beeeeeoooooooooooowwwwwwww Tap now, and it'll restart.  No need to wait for the menu, no waiting to find a button, just tap.&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;pholly&lt;/b&gt;&lt;br /&gt;Needs Game Center, as it is there's no point in trying to best your highscore if nobody will see it.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I'm getting there!!!&lt;/i&gt;&lt;br /&gt;&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;nyarlu&lt;/b&gt;&lt;br /&gt;super addictive little game. very simple concept, really difficult but never unfair. you constantly have to choose between risking death to keep your combo going, or playing it safe. i like spike dislike. :D&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Everybody Likes Spike Dislike!!!    &lt;a href="http://itunes.apple.com/us/app/magnetic-shaving-derby/id380720642?mt=8"&gt;and shaving!&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Danlt&lt;/b&gt;&lt;br /&gt;Great app! Can't stop playing it!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Neither can I!  That's why the updates are taking so long!!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Jeremy Clarke&lt;/b&gt;&lt;br /&gt;You push your guy to the right with one button, touching things kills you, try not to die.&lt;br /&gt;Main theme, like all other themes, is ugly. Beauty is not always fun, but this game always is.&lt;br /&gt;So simple yet so insanely hard, enjoy.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Yeah, I kinda suck at art!&lt;br /&gt;I'm trying, though.&lt;br /&gt;The Munky theme's quite nice!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;timthemute&lt;/b&gt;&lt;br /&gt;Smooth playing and insanely fun game where you bounce a ball around. Perfect!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;And that's all there is to it!  Simplicity!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tofware&lt;/b&gt;&lt;br /&gt;Very nice, thks very much.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You're very welcome!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;GrooveStomp&lt;/b&gt;&lt;br /&gt;Old-school sensibilities.  Keep playing to best your own score.  Subtly addictive.  Very easy to pick up and play.  Variety of graphical settings, but in general the graphics are lacking.  Looking forward to the update with additional challenges!&lt;br /&gt;(updated version): Challenge mode is fun and provides more reasons to pick up and play.  Definitely some added value there.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;More challenges coming soon.  Once I've made some.&lt;br /&gt;&lt;br /&gt;.. hmmm... &lt;br /&gt;I really should get around to that bit!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Greenloop&lt;/b&gt;&lt;br /&gt;WTF dieses spiel ist eigl nur genial :)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Thanks :D&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;COUNTRY: Russia&lt;br /&gt;&lt;b&gt;Smile4me..&lt;/b&gt;&lt;br /&gt;Took it when it was free.&lt;br /&gt;IMHO, one of the best games in this genre. I don`t know what to say more, just like it ;)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Glad you enjoyed your freebie!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Rev. Rob Fearon&lt;/b&gt;&lt;br /&gt;It might not be a looker, but man, Spike Dislike is fab.&lt;br /&gt;Simple, compulsive and grinworthy smiley fun. Grab it!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Looks don't matter!  It's Retro!!*&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;* This is an excuse that you'll see a lot from me!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;alidsl&lt;/b&gt;&lt;br /&gt;Some people say that the simple ones are the best, that's completely true for this game. Fabulous&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Simplicity's the key.  Combo's are it's little helper!  This game would be nothing if it wasn't for that little risk/reward thing.  Combo's are awesome!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DedHedZed&lt;/b&gt;&lt;br /&gt;Because of the visual aesthetic of this game, you might dismiss it as being 'too simple'. It isn't, it's just the right kind of simple. Getting just the right bounce path to maximise your combo multiplier is essential, and takes quite a bit of practice. Discovering a new path, or getting into a zen-like state of what I've come to call 'freebouncing', whereby the ball seems to be moving perfectly, as if it and you had 'become one' in some kind of existential partnership is probably one of the finest experiences you can have on a portable game.&lt;br /&gt;Simple, well designed and incredibly addictive.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Mmmm... Freebouncing!!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Oooooomonkey&lt;/b&gt;&lt;br /&gt;This is one of the most addictive games I've played (and I've played a lot) I love everything about it from the retro look and sound effects to it's simplicity and the way your progress is always popping up on screen always showing you combos,passed,bonuses etc. This was one of the best 59p's I've spent in the app store. There's even plenty of different modes,skins and difficulty settings. Games like this are exactly why I love iOS gaming. Endless replay factor. 5*s.&lt;br /&gt;The only thing this needs is online leader boards like gamecenter etc.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;I hope you're all going to give me 6 stars once I've added GameCenter ;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quixolyx&lt;/b&gt;&lt;br /&gt;Not even going to bother talking in depth about this. This is among the best of the best. Get this. Now.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;This comment makes me smiley :D&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mobymcg&lt;/b&gt;&lt;br /&gt;Reminds of when games where about gameplay and not shiney gfx&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Ye-Olde Disliking of Spikes&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SteveAllen86&lt;/b&gt;&lt;br /&gt;This game is so simple yet challenging, fun and highly addictive!&lt;br /&gt;It's not aesthetically pleasing (the basketball theme being the only one that doesn't make my colour blind eyes go crazy) but it reminds me of how games used to be and has been expertly designed for use with the touchscreen.&lt;br /&gt;Don't even think about it - it'll be the best 59p you spend in 2011! Keep up the good work devs &amp; keep the themes coming!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Aaah, about that whole crazy eye thing.  You probably won't want to play the upcoming clown theme!  ..&lt;/i&gt;&lt;br /&gt;&lt;i&gt;PS, it's "Dev".  ..Only me!  (hence the rubbish art!)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;CarverC&lt;/b&gt;&lt;br /&gt;New themes and now challenges, really good - worth 59p. Can't wait for future updates!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;What else is next?!  Oooooh!!!  GameCenter button!!!  yeay!!!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Flupocious&lt;/b&gt;&lt;br /&gt;One touch control and great fun. One of those games you can just pick up and play when you have a spare minute.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Well, unless you get stuck in a 15 minute play session that ends up netting you over a million points.  .. Who knew that would be possible!!  There's some serious Dislikers of Spikes out there!!&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;benjaminben&lt;/b&gt;&lt;br /&gt;Has some annoyances to game play like the flashing combos cutting across the screen obscuring the spikes.&lt;br /&gt;Apart from that a great little game.&lt;br /&gt;Would love better graphics though.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;You'll be happy to know, the annoying flashing star is now gone. (in the next update!)&lt;br /&gt;Without it, and with a nice clean font, the swooshyness is nowhere near as distracting.&lt;br /&gt;... same graphics, though ;)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;&lt;br /&gt;The 1.4 GameCenter update is about 25% done, but it's the hard/slow 25% that's been done.  I still have a lot to do, but I'm working as fast as I can.&lt;br /&gt;&lt;br /&gt;Soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4145813181471877891?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4145813181471877891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/03/appstore-review-pile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4145813181471877891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4145813181471877891'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/03/appstore-review-pile.html' title='The AppStore Review Pile'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4712431169846910728</id><published>2011-03-17T22:32:00.002Z</published><updated>2011-03-17T22:37:50.264Z</updated><title type='text'>Spike Dislike 1.4 Progress..</title><content type='html'>Blimey.. Adding GameCenter's a big bag of complex, isn't it!&lt;br /&gt;&lt;br /&gt;I knew it would be, though, so I came prepared.&lt;br /&gt;I have my super-coder-hat on.&lt;br /&gt;..&lt;br /&gt;Actually I don't have a hat.  Unless you count my 80's GameBoy baseball cap.&lt;br /&gt;But that's not a proper hat!&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/oULJGUx8uWU?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;GameCenter will work like that.&lt;br /&gt;I'd love to have nice swooshy leaderboard things, but I can't quite fathom all of that!!&lt;br /&gt;I'm NEARLY there, but it's just a teensy bit out of my reach, right now..  I'm still learning!&lt;br /&gt;&lt;br /&gt;Leaderboards do show up in the proper GameCenter app, though, alongside your little achievements, which is nice.&lt;br /&gt;If I can very simply grab the top 10, and your chart position, I'll slap them on the right hand side.&lt;br /&gt;I tried doing that, earlier on today, and then shouted a bit...!&lt;br /&gt;&lt;br /&gt;Next week, I'll be tackling the Play/Pass menu, and seeing how much shouting I need to do for that!&lt;br /&gt;Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4712431169846910728?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4712431169846910728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/03/spike-dislike-14-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4712431169846910728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4712431169846910728'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/03/spike-dislike-14-progress.html' title='Spike Dislike 1.4 Progress..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4882444362592199896</id><published>2011-02-22T01:08:00.003Z</published><updated>2011-02-22T01:19:41.539Z</updated><title type='text'>This review doesn't dislike my game, but I dislike this review..</title><content type='html'>Plagiarism&lt;br /&gt;&lt;br /&gt;It's simple enough mistake to make.  Sometimes when I'm writing a blog entry, a thought might pop into my head, that I'll later realise was lifted from a TV show.  Or I might compose a piece of music, and realise 3 years later that it's actually the Pokemon theme.&lt;br /&gt;Sometimes these things just happen.&lt;br /&gt;&lt;br /&gt;It's a subconscious thing.&lt;br /&gt;Or sometimes it isn't.&lt;br /&gt;Sometimes you make something, aiming to be "a bit" like something, and end up inexplicably "exactly the same".&lt;br /&gt;You create based upon what you know, and sometimes things turn out a little bit more like what it is you're aiming for, than you'd like to admit.&lt;br /&gt;&lt;br /&gt;But sometimes you look at something and think....&lt;br /&gt;"hmmm..  that's a bit too close, isn't it?"&lt;br /&gt;&lt;br /&gt;Today I received a link to my SpikeDislike review, at FamousWhy.com&lt;br /&gt;&lt;br /&gt;Until last week, I hadn't heard of FamousWhy, and the first time I visited the site, my initial thought was "Hmm..  This looks like a very spammy/adfilled piece of dodgy website."&lt;br /&gt;But, whatever.&lt;br /&gt;A review is a review, right?!&lt;br /&gt;&lt;br /&gt;...  Probably not, when..&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-qQzVHQ1IkTU/TWMN3G_puLI/AAAAAAAABu0/JkVPTliEmKk/s1600/FamouslyLazy.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 299px; height: 320px;" src="http://3.bp.blogspot.com/-qQzVHQ1IkTU/TWMN3G_puLI/AAAAAAAABu0/JkVPTliEmKk/s320/FamouslyLazy.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5576316004036360370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Half the damn text has been copy and pasted from &lt;a href="http://toucharcade.com/2011/01/21/spikedislike-review/"&gt;TouchArcade.com&lt;/a&gt;'s review of SpikeDislike.&lt;br /&gt;&lt;br /&gt;Maybe the reviewer had an off day, and couldn't be bothered writing all that they should've?&lt;br /&gt;But hey, who the hell cares, that's just downright lazy.&lt;br /&gt;&lt;br /&gt;If you're going to blatently rip someone off, like that, you could at least do the decent thing and link to the original review.&lt;br /&gt;&lt;br /&gt;I'm REALLY in a bad-word mood, right now, so I'm not going to write much more than this.  It'll end up all ranty and horribly unreadable.. so, pretty much as it is,now!  But perhaps in the morning, I'll go and copy and paste a whole bunch of bad words, and pretend that I wrote them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4882444362592199896?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4882444362592199896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/02/this-review-doesnt-dislike-my-game-but.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4882444362592199896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4882444362592199896'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/02/this-review-doesnt-dislike-my-game-but.html' title='This review doesn&apos;t dislike my game, but I dislike this review..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-qQzVHQ1IkTU/TWMN3G_puLI/AAAAAAAABu0/JkVPTliEmKk/s72-c/FamouslyLazy.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6631098046306985420</id><published>2011-02-10T15:56:00.003Z</published><updated>2011-02-10T16:03:55.588Z</updated><title type='text'>Spike Dislike : Test My Challenge!</title><content type='html'>I'm starting to put together the challenge mode, and could do with my "Difficulty" level being tested..&lt;br /&gt;&lt;br /&gt;So, here's one of my current challenges..&lt;br /&gt;&lt;br /&gt;Set your level settings as follows.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0ujAW8a5v_w/TVQL2QBl_YI/AAAAAAAABus/yUc5tm4ZStU/s1600/boing.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://1.bp.blogspot.com/-0ujAW8a5v_w/TVQL2QBl_YI/AAAAAAAABus/yUc5tm4ZStU/s320/boing.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5572091665606638978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Speed : Fast&lt;br /&gt;Path : Alternate&lt;br /&gt;Difficulty : Hard&lt;br /&gt;&lt;br /&gt;(This'll be the Preset:Hard button, in the next update!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your challenge is to pass the first 4 spikes without letting go.&lt;br /&gt;&lt;br /&gt;Give it a difficulty rank out of 5, where 1's easy, and 5's quite hard.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6631098046306985420?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6631098046306985420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spike-dislike-test-my-challenge.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6631098046306985420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6631098046306985420'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spike-dislike-test-my-challenge.html' title='Spike Dislike : Test My Challenge!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-0ujAW8a5v_w/TVQL2QBl_YI/AAAAAAAABus/yUc5tm4ZStU/s72-c/boing.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8958036909272696619</id><published>2011-02-09T11:41:00.002Z</published><updated>2011-02-09T11:44:49.827Z</updated><title type='text'>SpikeDislikeLite!</title><content type='html'>I realised after I sent it off, SpikeALite would've been a better name..&lt;br /&gt;d'oh!&lt;br /&gt;&lt;br /&gt;No matter, SpikeDislikeLite is now out, so you can tell everyone you know to play it.&lt;br /&gt;Play it NOW!!!!&lt;br /&gt;&lt;br /&gt;&lt;iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="349" src="http://www.youtube.com/embed/cbbZlbIc1kk" frameborder="0" allowFullScreen&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;And for those of you that already have the full game, but are far more addicted than you oughta be, you should know that SpikeDislikeLite contains it's own unique path.&lt;br /&gt;&lt;br /&gt;Gotta get 'em all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8958036909272696619?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8958036909272696619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spikedislikelite.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8958036909272696619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8958036909272696619'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spikedislikelite.html' title='SpikeDislikeLite!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/cbbZlbIc1kk/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-2185042781509569330</id><published>2011-02-02T15:34:00.002Z</published><updated>2011-02-02T15:42:34.194Z</updated><title type='text'>SpikeDislike 1.2</title><content type='html'>This morning I submitted v1.2.&lt;br /&gt;Give it a week and it oughta be playable!&lt;br /&gt;&lt;br /&gt;On the face of it, things aren't too different.&lt;br /&gt;There are 4 new themes, including one kindly designed and donated by &lt;a href="http://twitter.com/#!/retroremakes"&gt;@RetroRemakes&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The menu now slides in from the left, to make the titlescreen a little neater.&lt;br /&gt;&lt;br /&gt;The scores display Best Combo, Best Super, and Most Passed&lt;br /&gt;&lt;br /&gt;The combo timer bar's a little bit neater.&lt;br /&gt;&lt;br /&gt;The graphics have all been rejigged so I can fit more stuff in there.&lt;br /&gt;&lt;br /&gt;And there are nice little badges that pop up as you play.&lt;br /&gt;More badges are planned, of course, but first I really need to start building that Challenge mode.&lt;br /&gt;That'll have to wait until 1.3 and, I've said it before... GameCenter will be waiting for 1.4&lt;br /&gt;&lt;br /&gt;:(&lt;br /&gt;&lt;br /&gt;Sorry guys, but these things take time.&lt;br /&gt;Especially when you're also doing AGameAWeek at the same time!! (for Win/Linux/Mac.  I really really doubt I could achieve AGameAWeek on iPhings!!)&lt;br /&gt;&lt;br /&gt;Oh, and I sent off the Lite edition, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-2185042781509569330?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/2185042781509569330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spikedislike-12.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2185042781509569330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2185042781509569330'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/02/spikedislike-12.html' title='SpikeDislike 1.2'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8347379368839831566</id><published>2011-01-21T22:49:00.002Z</published><updated>2011-01-21T23:44:00.202Z</updated><title type='text'>Spike Dislike FAQ</title><content type='html'>&lt;b&gt;What's it called?!&lt;/b&gt;&lt;br /&gt;Spike Dislike, and/or SpikeDislike, either or.&lt;br /&gt; I messed up trying to get the space to work.  I had it working fine when I did Stringy Things, but forgot how I did it, and it all messed up when I tried this time!  Whoops!&lt;br /&gt;Better luck next time, eh!&lt;br /&gt;Still, either will do.  If it helps to pick one, SpikeDislike is easier to Google, what with it being a none-word.&lt;br /&gt;&lt;br /&gt;Super Spike Dislike comes from a rush-job with the logo.  I grabbed it from &lt;a href="http://jayenkai.socoder.net/GameList.php?ShowJust=221"&gt;Super Spike Dislike&lt;/a&gt;&lt;br /&gt;Maybe I'll fix it, Maybe I won't.&lt;br /&gt;One day, I'll add shooting, and THEN it'll be SUPER Spike Dislike!!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Any updates?&lt;/b&gt;&lt;br /&gt;Of course!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Like....?&lt;/b&gt;&lt;br /&gt;I've played with the speed, so perhaps changing other methods of movement...?&lt;br /&gt;Shooty bullets would be Super.&lt;br /&gt;Different objects?&lt;br /&gt;Better gfx!!&lt;br /&gt;But, as &lt;a href="http://forums.toucharcade.com/showthread.php?t=81273"&gt;Gabrien said on the TouchArcade forum&lt;/a&gt;, there's no point in breaking the "real" game's logic.  Instead I'll add different modes, with different highscores.  That'll keep anything new from breaking the original.&lt;br /&gt;&lt;br /&gt;I'd also love to add a new gamemode, with little challenges, and things like that.&lt;br /&gt;More details as I bother to start that!!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;And  GameCenter?&lt;/b&gt;&lt;br /&gt;YES!!!&lt;br /&gt;But..&lt;br /&gt;a. Never done it before, haven't a clue what I'm doing, might take a while!!&lt;br /&gt;and b...  If I want to add achievements, I apparently need a 100% static list.&lt;br /&gt;From day 1, I'd need a complete list.&lt;br /&gt;Now, assuming these achievements would be things that are relevant to the forthcoming challenge mode, it's probably a good idea to do the whole challenge mode thing first, because I won't know the accomplishments before I've done that, and I won't be able to add GameCenter until that's done.&lt;br /&gt;Bah!&lt;br /&gt;Annoyingly I'd really love to just plop online scores in, but Apple, in their infinite wisdom, made this annoyingly slow.&lt;br /&gt;&lt;br /&gt;To be fair, though, if I'd have planned this from the start it'd probably help.&lt;br /&gt;No matter!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;About those themes...&lt;/b&gt;&lt;br /&gt;New graphics, obviously!  Try to spice things up a bit.&lt;br /&gt;I should probably try to jazz things up a bit, but I've already grown to love the really basic starfield, even if it is the cheapest starfield effect I've done in years!&lt;br /&gt;&lt;br /&gt;I'm also considering changes the sounds for each pack.  I might make that an option, though!&lt;br /&gt;I'd love to ask for graphic-pack submissions, but I've not quite decided how they're going to end up being setup.&lt;br /&gt;I've currently got all the graphics in 4 different images.  One for all the spikes, one for the balls, one for the floors and another for the backgrounds.&lt;br /&gt;I really should neaten that up a bit, and make things one-pic-per-theme!&lt;br /&gt;I'll let you know how that goes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Other Questions?&lt;/b&gt;&lt;br /&gt;If you have any other requests, leave them in the comments, and I'll get back to you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8347379368839831566?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8347379368839831566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike-faq.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8347379368839831566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8347379368839831566'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike-faq.html' title='Spike Dislike FAQ'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3737408760309532120</id><published>2011-01-20T00:12:00.002Z</published><updated>2011-01-20T00:25:00.011Z</updated><title type='text'>OK, Now What?</title><content type='html'>Plans are afoot to expand Spike Dislike.&lt;br /&gt;There's a whole manner of additions I could come up with.&lt;br /&gt;Graphic tweaks, gameplay features, game modes, those kinds of things.&lt;br /&gt;I'm not entirely sure what'll actually be the next thing to add, though.&lt;br /&gt;I really want to start playing with some sort of challenge mode first, I think, but I'm also thinking that it'd be nice to have that unlock things, so then I need to add things that could be unlocked.&lt;br /&gt;...  This is one of those bulky additions, methinks!!&lt;br /&gt;&lt;br /&gt;In the meantime, we've also got a few other things to play with.&lt;br /&gt;Blockman Gets hasn't gotten got yet, so that should be done.&lt;br /&gt;That game needs a menu.&lt;br /&gt;I really have no idea what to do for that!&lt;br /&gt;It's been sat here for about 3 weeks, in a mostly playable state, but completely stuck because I can't think of a nice menu!&lt;br /&gt;..d'oh!&lt;br /&gt;&lt;br /&gt;Then there's the big three.. &lt;br /&gt;Cardagain, Stringy Things and Arcade Slots all suffer from the Early Learning Bugs.&lt;br /&gt;Cardagain and Arcade Slots have the good old "I used the wrong audio method" issue, with sound that blasts out at the volume of your ringtone, whilst all three of them have that annoying iPadFREAKOUT issue that renders them all completely unplayable on an iPad.&lt;br /&gt;For what it's worth, Cardagain and Stringy Things are both perfectly playable, and are both still available in the AppStore ;)  Just not on an iPad!&lt;br /&gt;&lt;br /&gt;I think, in all honesty, I'm going to have to redo from start with those three.&lt;br /&gt;But all three of them were meant to be Battery-Saving games.&lt;br /&gt;I'm not really sure how to tackle this.&lt;br /&gt;If I do redo them, I'll lose their ability to last ages, as they'll all be redone in this battery-draining Cocos2D.&lt;br /&gt;Not that there's anything WRONG with Cocos2D, of course, it's just really bad at preserving battery life.&lt;br /&gt;&lt;br /&gt;hmm.. what to do..?&lt;br /&gt;&lt;br /&gt;.. I'm going to go play with Blockman some more!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3737408760309532120?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3737408760309532120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/01/ok-now-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3737408760309532120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3737408760309532120'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/01/ok-now-what.html' title='OK, Now What?'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4202265422936638135</id><published>2011-01-14T22:39:00.002Z</published><updated>2011-01-14T22:42:04.022Z</updated><title type='text'>Spike Dislike Update 1.1</title><content type='html'>Coming to your iPhings as soon as Apple have thrown it through it's paces, the first update features a few difficulty settings to play with.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MwG1lIqc9TY?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MwG1lIqc9TY?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Level Layout&lt;br /&gt;Speed&lt;br /&gt;Difficulty&lt;br /&gt;and of course, a switchable skin setting (ooooh!)&lt;br /&gt;&lt;br /&gt;1.1 is a massive update, considering the blandness of the original, but 1.2 will be even bigger!!&lt;br /&gt;I have no idea what 1.2 will be, but it'll be bigger!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4202265422936638135?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4202265422936638135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike-update-11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4202265422936638135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4202265422936638135'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike-update-11.html' title='Spike Dislike Update 1.1'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6515862107936328110</id><published>2011-01-11T22:35:00.005Z</published><updated>2011-01-11T22:44:09.622Z</updated><title type='text'>Spike Dislike!</title><content type='html'>&lt;a href="http://bit.ly/AGAW_iDev_Spike"&gt;&lt;b&gt;Get Spike Dislike for iPod Touch/iPhone/iPad here&lt;/b&gt;&lt;br /&gt;$0.99/£0.59/equiv&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Guide the ball to the right, avoid the Spikes, perfect your flight!&lt;br /&gt;&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Q9WgTtm1FV0?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Q9WgTtm1FV0?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The game is simple, and there's loads of points to earn as you go.&lt;br /&gt;But wait, There's More!!!&lt;br /&gt;&lt;br /&gt;Or, there will be!&lt;br /&gt;&lt;br /&gt;This edition is the simple "Get it done" edition, but MUCH more is planned, from weapons, to different ball types, and even a few physic tweaks to keep the gameplay interesting.&lt;br /&gt;The extras are coming soon.&lt;br /&gt;&lt;br /&gt;They're not quite done yet, but they will be!&lt;br /&gt;Keep it on your iPhings!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6515862107936328110?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6515862107936328110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6515862107936328110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6515862107936328110'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2011/01/spike-dislike.html' title='Spike Dislike!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-280773609127903584</id><published>2010-12-30T01:40:00.002Z</published><updated>2010-12-30T01:42:49.009Z</updated><title type='text'>Coming Soon.. Blockman Gets</title><content type='html'>Let's just plain ignore all the bugs, and focus on something that hasn't blown up yet!&lt;br /&gt;&lt;br /&gt;I started Blockman Gets with a fresh Cocos2D-based engine.&lt;br /&gt;I figured, if things aren't going to work, I might as well just plain scrap it all, and redo from start.  so, Blockman Gets is me redoing from start.&lt;br /&gt;&lt;br /&gt;A new engine, a new game, and a whole bunch of sprites, some of which are about 3 years old!&lt;br /&gt;That's the way to do it!!&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/JvubslB7cVk?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/JvubslB7cVk?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Blockman Gets is coming along nicely, and it'll be great to see if this (finally!) is something that works on an iPad!&lt;br /&gt;.. Because, let's face it, this game would rock your fingers off, on an iPad!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-280773609127903584?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/280773609127903584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/12/coming-soon-blockman-gets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/280773609127903584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/280773609127903584'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/12/coming-soon-blockman-gets.html' title='Coming Soon.. Blockman Gets'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8214380736144485206</id><published>2010-12-28T08:45:00.002Z</published><updated>2010-12-28T08:47:31.439Z</updated><title type='text'>The continuing iPad Bug...</title><content type='html'>I could've sworn I'd fixed that!!&lt;br /&gt;Apparently, though, the iPad hardware is doing something entirely different to what I'd like it to do, and not at all what the Simulator says it will...&lt;br /&gt;*insert swearing here*&lt;br /&gt;&lt;br /&gt;Never mind, new game on the horizon while I work out StringyThings' little issue..&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SZ9XBrjM7sY?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/SZ9XBrjM7sY?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8214380736144485206?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8214380736144485206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/12/continuing-ipad-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8214380736144485206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8214380736144485206'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/12/continuing-ipad-bug.html' title='The continuing iPad Bug...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-2546032272954928876</id><published>2010-12-09T22:42:00.007Z</published><updated>2011-06-18T00:42:44.313+01:00</updated><title type='text'>The iPad Bug...</title><content type='html'>Here's what Stringy Things looks like on a classic iPhone/iPod display..&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TQFbhbWEr6I/AAAAAAAABuM/I1yFXeHOavY/s1600/Normal.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 284px; height: 162px;" src="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TQFbhbWEr6I/AAAAAAAABuM/I1yFXeHOavY/s320/Normal.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5548816845731311522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nice and simple, exactly as expected.&lt;br /&gt;&lt;br /&gt;When the game runs on a Retina capable display, the wonderful language that Apple gave us will automatically pick up any files that are labelled as "@2x", and load those instead of the normal versions.&lt;br /&gt;That basically means that you can make all your sprites twice as big, twice as clear, and then leave it to the iPhone to pick which one it wants to use.&lt;br /&gt;It's a FANTASTIC idea, and it works brilliantly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_iKJ5Y-ge1g8/TQFcCAbvxSI/AAAAAAAABuU/eEV42qGUUjs/s1600/Retina.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 171px;" src="http://3.bp.blogspot.com/_iKJ5Y-ge1g8/TQFcCAbvxSI/AAAAAAAABuU/eEV42qGUUjs/s320/Retina.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5548817405443032354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You get lovely hires displays, and everything works neatly.&lt;br /&gt;&lt;br /&gt;Of course, when you're snipping your sprites, it's good to know which one it's using.&lt;br /&gt;If I need to cut a 256x256 image into 32x32 sprites, but it loads the 2x one, then the sprites I need to cut will instead be twice as big.&lt;br /&gt;I accounted for this with a simple bit of code.&lt;br /&gt;If Screen=Big, Double sizes!&lt;br /&gt;That worked great!&lt;br /&gt;Everything was fine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Until this happened..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TQFcc_C76eI/AAAAAAAABuc/ny4DX4gOv50/s1600/iPad.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 169px;" src="http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TQFcc_C76eI/AAAAAAAABuc/ny4DX4gOv50/s320/iPad.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5548817868927003106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The blinkin' iPad!&lt;br /&gt;&lt;br /&gt;For some strange inexplicable reason, the iPad, (even though it has a larger screen, and CAN/WILL achieve everything that the retina display can do) completely ignores those wonderful little @2x files, and instead loads the small ones.&lt;br /&gt;&lt;br /&gt;This basically means that, although my "Screen=Big" code kicks in (what with the iPad saying it's got a big screen), it actually only loads the little pictures.&lt;br /&gt;My sprite cutter ends up cutting strange missized chunks of random bits, and attempts to use those as if there's nothing wrong.&lt;br /&gt;But there IS something wrong.&lt;br /&gt;And it's blindingly obvious.&lt;br /&gt;&lt;br /&gt;Gah!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-2546032272954928876?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/2546032272954928876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/12/ipad-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2546032272954928876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2546032272954928876'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/12/ipad-bug.html' title='The iPad Bug...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TQFbhbWEr6I/AAAAAAAABuM/I1yFXeHOavY/s72-c/Normal.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4862385730617153365</id><published>2010-11-04T23:21:00.003Z</published><updated>2010-11-04T23:25:55.723Z</updated><title type='text'>Stringy Things Update</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;&lt;b&gt;&lt;a href="http://itunes.apple.com/us/app/id397961479"&gt;Available Now ($0.99/£0.59/equivilant)&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a href="http://itunes.apple.com/us/app/id397961479"&gt;Click here to find it at the App Store&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After waiting for what seems like Months for it to go through, Stringy Things v1.03 should now be appearing on your iPhings.&lt;br /&gt;The update brings a whole mountain of new stuff along with it, from simple bug fixes, to new tilesets, a brand new Gameplay mode, and even a whole extra game to keep you occupied.&lt;br /&gt;&lt;br /&gt;There's plenty to do, and it's the first of the free updates that'll be coming thick and fast!  (Or.. as fast as Apple can review them, anyway!)&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/T6ocNKpw8vk?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/T6ocNKpw8vk?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;More soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4862385730617153365?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4862385730617153365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/11/stringy-things-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4862385730617153365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4862385730617153365'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/11/stringy-things-update.html' title='Stringy Things Update'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3400638868316362219</id><published>2010-10-26T22:04:00.004+01:00</published><updated>2010-10-26T22:28:59.067+01:00</updated><title type='text'>Stringy Things on 4.0</title><content type='html'>&lt;i&gt;&lt;a href="http://jayenkai.blogspot.com/2010/10/3-days-later.html?showComment=1288123006049#c9146771789973827720"&gt;Anonymous said...&lt;/a&gt;&lt;br /&gt;Is there something so technologically advanced about Stringy Things that allows it to run ONLY on iOS 4.1 or above? It would be great if it would run on the thousands (millions?) of devices that will never be able to run iOS 4.0 and newer.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Of course, the simple answer is No.&lt;br /&gt;There's nothing technical stopping me from releasing this on 3.x, or probably even 2.x&lt;br /&gt;It's a simple throw of a switch, a recompile, and a sending to the AppStore.&lt;br /&gt;&lt;br /&gt;The problem though, for me, is that without any 3.x devices to test it on, I'll be doing it blind.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Whilst developing the main Framework (Which I then used to rapidly build Stringy Things within a matter of days) I learned not to trust the Mac's little Emulator.  As soon as I'd struggled to fix one little quirk, I'd connect up the iPod and blammo... There'd be a whole network of silly little things to have to faff about with.&lt;br /&gt;The emulator's a fantastic little tool, it works amazingly well, but it's far, far away from being perfect.&lt;br /&gt;You REALLY have to test your apps on the real thing.&lt;br /&gt;If you don't, you're going to have random crazy problems turning up.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of course, there are solutions to this.&lt;br /&gt;For starters, I could downgrade, test on 3, upgrade, test on 4, rinse repeat.&lt;br /&gt;But, without sounding like a self-important crazed maniac, I'm currently juggling a whole mountain of stuff here!   I've got iPhing development going, I've a weekly "Write an entire game within the space of a week" game for Windows going on, a weekly newsletter to write, and let's not forget the half-a-dozen forum communities that I'm struggling to keep up with.&lt;br /&gt;To then have to keep waiting for my iPod to restore itself half-a-dozen times a day...&lt;br /&gt;I think I'd probably end up crazier than I already am!&lt;br /&gt;&lt;br /&gt;Another solution is to grab another iPod, keep it at 3, and use it as a testbed.&lt;br /&gt;Well, I'm too cheap for that!  I'm living on a low budget, here.  You can't give yourself enough time to do all of these online escapades, and expect a decent paycheck at the end of the week...  .. Sux, but it is what it is.&lt;br /&gt;&lt;br /&gt;So, yeah.  It's doable, but it's just ever so slightly out of reach, right now.&lt;br /&gt;&lt;br /&gt;Given enough time, I'll have a little rest from constantly adding new games to Stringy Things, and I'll instead have a play about with all the 3.x stuff.  That's not a promise, but it's something to look into in the future.&lt;br /&gt;&lt;br /&gt;On the other side of the argument, there's the iPad.&lt;br /&gt;I know the iPad is technically stuck at 3.x, and I'm looking at it, and worrying about it's upcoming upgrade to 4.x&lt;br /&gt;I worry because, as of yet, I have absolutely NO idea if this'll run on the iPad at all!&lt;br /&gt;And even if it does, it'll be reduced to "iPhoneWindow" mode, not "Proper" mode.&lt;br /&gt;&lt;br /&gt;So, I've been putting away a little bit of cash each week, (and then having it flow speedily out of my hands again) in order to finally get ahold of one of the little beasties.  Once I've got one, I'll be hopping through the hard-coded numbers of Stringy Things, fixing up all the quirky areas, and ... hopefully..  manage to wrangle it properly into the iPad world.&lt;br /&gt;But again, it'll come down to me having one to actually test it on!&lt;br /&gt;&lt;br /&gt;I'm not really one of those developers who'll happily fling something together, slap it out in the shop, and plain hope that it works.&lt;br /&gt;Anyone who saw the extensive testing of my BlitzMax framework can certainly testify to how much I stress tested the thing, and how sick of all the constant testing they became!&lt;br /&gt;But now that I'm asking people to PAY for the privilege of playing some of my games, I'd rather they not also end up the guinea pig to my random coding styles.&lt;br /&gt;I want to know that something works, because I know how annoying it is when it doesn't.&lt;br /&gt;&lt;br /&gt;So, I apologise, but Stringy Things isn't available on 3.x&lt;br /&gt;I'm only one man, and I've not a lot of time to do it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3400638868316362219?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3400638868316362219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/stringy-things-on-40.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3400638868316362219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3400638868316362219'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/stringy-things-on-40.html' title='Stringy Things on 4.0'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-9145471144854736016</id><published>2010-10-22T00:22:00.005+01:00</published><updated>2010-10-22T00:37:36.058+01:00</updated><title type='text'>Coming soon to Stringy Things</title><content type='html'>I've STILL not started to work properly on Game 3 yet, but I've made a huge amount of progress today!&lt;br /&gt;There's...&lt;br /&gt;A few Memory Leak Fixes&lt;br /&gt;A New Gameplay Type (Arcade)&lt;br /&gt;A slightly rejigged menu system&lt;br /&gt;2 Letter Word allowances in Strings&lt;br /&gt;A slight profanity filter, for when I start adding "Pick a Random word" type games.  Can't have it swearing at the kiddies!&lt;br /&gt;&lt;br /&gt;And then I did this..&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;I'm not really sure why I did this, and it certainly wasn't planned.&lt;br /&gt;I was supposed to be making Game 3, but instead I did this.&lt;br /&gt;I faffed about with the memory to fit it all in.&lt;br /&gt;I tweaked the "Created by Jayenkai" page into a simple Settings menu.&lt;br /&gt;and then I started plopping them in..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJxLqQlI/AAAAAAAABuA/-ldQbrSVgrA/s1600/photo+(2).PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJxLqQlI/AAAAAAAABuA/-ldQbrSVgrA/s320/photo+(2).PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5530645910115730002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJZzp80I/AAAAAAAABt4/DRyZ6SnzA68/s1600/photo+(1).PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJZzp80I/AAAAAAAABt4/DRyZ6SnzA68/s320/photo+(1).PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5530645903841030978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJN01_QI/AAAAAAAABtw/aVzWwYJih6o/s1600/photo.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJN01_QI/AAAAAAAABtw/aVzWwYJih6o/s320/photo.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5530645900624788738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once I've written Game 3, I'll send it off for review.&lt;br /&gt;Should be ready for download in about a week, give or take.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/app/id397961479"&gt;Stringy Things is Available Now ($0.99/£0.59/equivilant)&lt;br /&gt;Click here to find it at the App Store&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-9145471144854736016?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/9145471144854736016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/coming-soon-to-stringy-things.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/9145471144854736016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/9145471144854736016'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/coming-soon-to-stringy-things.html' title='Coming soon to Stringy Things'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TMDNJxLqQlI/AAAAAAAABuA/-ldQbrSVgrA/s72-c/photo+(2).PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-7084170464118019622</id><published>2010-10-20T00:56:00.003+01:00</published><updated>2010-10-20T01:00:16.620+01:00</updated><title type='text'>StringyThings</title><content type='html'>On Wed 20th October 2010, 00:30GMT, StringyThings was finally released in the App Store!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;&lt;b&gt;&lt;a href="http://itunes.apple.com/us/app/id397961479"&gt;Available Now ($0.99/£0.59/equivilant)&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;a href="http://itunes.apple.com/us/app/id397961479"&gt;Click here to find it at the App Store&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A collection of word games for those "Need a quick word game" moments.&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tPuzJbwu5KI?fs=1&amp;amp;hl=en_US"&gt;&lt;br /&gt;&lt;/param&gt;&lt;br /&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;br /&gt;&lt;/param&gt;&lt;br /&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;br /&gt;&lt;/param&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/tPuzJbwu5KI?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The first release is the test release, to ensure my somewhat old-school coding style can get past the Apple sensors!  Now that I know it can, we can have some fun.&lt;br /&gt;&lt;br /&gt;I'll be adding an extra word game with each and every release, and if I run out of word games, I'm sure I can pluck a few other thinking games out, from somewhere!&lt;br /&gt;&lt;br /&gt;For now, there's two games, and each one is a nice and simple relaxing game.&lt;br /&gt;&lt;br /&gt;You can pick from a bunch of play styles, too, so if you'd prefer a fast paced timed game, or a nice slow thinking game, you can go for either.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There's a whole lot more StringyThings to come.&lt;br /&gt;&lt;br /&gt;For now, it's in the AppStore, nice and cheap!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-7084170464118019622?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/7084170464118019622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/stringythings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/7084170464118019622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/7084170464118019622'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/stringythings.html' title='StringyThings'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4069035370705519543</id><published>2010-10-08T22:18:00.002+01:00</published><updated>2010-10-08T22:26:43.426+01:00</updated><title type='text'>3 days later...</title><content type='html'>It's been one heck of a productive week, this week.&lt;br /&gt;Since moving the MacMini from the downstairs dining room, up to my bedroom, I guess I kinda spurred myself on a bit.&lt;br /&gt;...  Either that or I've not been sleeping, and instead coding away like a crazy maniac.&lt;br /&gt;..&lt;br /&gt;It's the latter!&lt;br /&gt;&lt;br /&gt;So, what have I been working on?&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well, the Framework is pretty much "Done".  I want to finish off my first Framework based game, to be certain that it passes through the AppleChecks first, to be safe, before I post it all here.&lt;br /&gt;&lt;br /&gt;Other than that, I've begun my first Framework based game, and what better way to test it all out than writing a good old compilation of games!&lt;br /&gt;&lt;br /&gt;Stringy Things isn't just a thought.  With only a couple of days worth of coding, (God bless the Framework!!) Stringy Things is already a half-formed game.  In fact, it already looks like this..&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/K4jacHB3fw4?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/K4jacHB3fw4?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Which, I think you can all agree, is a heck of a lot better than I was doing previously, and at a much quicker rate, too.&lt;br /&gt;The game's loading and releasing things nicely, and is ready for me to drop in a few additional word games.&lt;br /&gt;..  I now have to think of some!&lt;br /&gt;&lt;br /&gt;I might do an early release with only a couple of wordgames.  Depends on how playable they are.&lt;br /&gt;The "Strings" subgame is already VERY playable!!&lt;br /&gt;&lt;br /&gt;More to come!&lt;br /&gt;&lt;br /&gt;..  Gotta add a Page for Stringy Things, now!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4069035370705519543?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4069035370705519543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/3-days-later.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4069035370705519543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4069035370705519543'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/3-days-later.html' title='3 days later...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6217295415365381590</id><published>2010-10-05T23:37:00.007+01:00</published><updated>2010-10-06T00:02:04.893+01:00</updated><title type='text'>Okeydoke.. Let's try this one..</title><content type='html'>The "Everyone says I should do it this way" method...&lt;br /&gt;&lt;br /&gt;&lt;pre class="postCode"&gt;- (UIImage *)addImage:(UIImage *)top toImage:(UIImage *)bottom at:(CGRect)rect withBlend:(CGBlendMode)blend {  &lt;br /&gt;    UIGraphicsBeginImageContext(bottom.size);  &lt;br /&gt;    // Draw image1  &lt;br /&gt;    [bottom drawInRect:CGRectMake(0, 0, bottom.size.width, bottom.size.height)];  &lt;br /&gt; &lt;br /&gt;    // Draw image2  &lt;br /&gt;    [top drawInRect:rect blendMode:blend alpha:1];  &lt;br /&gt; &lt;br /&gt;    UIImage *result = UIGraphicsGetImageFromCurrentImageContext();  &lt;br /&gt; &lt;br /&gt;    UIGraphicsEndImageContext();  &lt;br /&gt; &lt;br /&gt;    return result;  &lt;br /&gt;}  &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;The "This is the way I was doing it before" method.&lt;br /&gt;&lt;br /&gt;&lt;pre class="postCode"&gt;void CreateBuffer(int width,int height) // Makes an empty buffer to draw onto&lt;br /&gt;{&lt;br /&gt; CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();&lt;br /&gt;    ctx = CGBitmapContextCreate(NULL,&lt;br /&gt;        width, height,&lt;br /&gt;        8, width * 4,&lt;br /&gt;        colorspace, kCGImageAlphaPremultipliedLast);&lt;br /&gt;    CGColorSpaceRelease(colorspace);&lt;br /&gt; BufferHeight=height;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void LockBuffer(UIImage* ImageLock) // Creates a buffer from a previous image.&lt;br /&gt;{&lt;br /&gt; CGImageRef oldimage = ImageLock.CGImage;&lt;br /&gt; CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();&lt;br /&gt;    ctx = CGBitmapContextCreate(NULL,&lt;br /&gt;        CGImageGetWidth(oldimage), CGImageGetHeight(oldimage),&lt;br /&gt;        8, CGImageGetWidth(oldimage) * 4,&lt;br /&gt;        colorspace, kCGImageAlphaPremultipliedLast);&lt;br /&gt;    CGColorSpaceRelease(colorspace);&lt;br /&gt; BufferHeight=CGImageGetHeight(oldimage);&lt;br /&gt; &lt;br /&gt; CGContextSetBlendMode(ctx, kCGBlendModeCopy);&lt;br /&gt; &lt;br /&gt; CGRect r = CGRectMake(0,0,CGImageGetWidth(oldimage), CGImageGetHeight(oldimage));&lt;br /&gt;    CGContextDrawImage(ctx, r, oldimage); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void DrawToBuffer(UIImage* ImageDraw,int x,int y) // Draw a UIImage onto a Buffer&lt;br /&gt;{&lt;br /&gt; CGImageRef useimage = ImageDraw.CGImage;&lt;br /&gt; CGContextSetBlendMode(ctx, kCGBlendModeOverlay);&lt;br /&gt; // add new image&lt;br /&gt; &lt;br /&gt;    CGRect r = CGRectMake(x,y,CGImageGetWidth(useimage),CGImageGetHeight(useimage));&lt;br /&gt;    CGContextDrawImage(ctx, r, useimage);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;UIImage* UnlockBuffer(int freebuffer)&lt;br /&gt;{&lt;br /&gt;    // create resulting image&lt;br /&gt; CGImageRef thisimage;&lt;br /&gt;    thisimage = CGBitmapContextCreateImage(ctx);&lt;br /&gt;    UIImage* newImage = [[UIImage alloc] initWithCGImage:thisimage];&lt;br /&gt; &lt;br /&gt; CGImageRelease(thisimage);&lt;br /&gt; &lt;br /&gt;    if (freebuffer==1) {CGContextRelease(ctx);}&lt;br /&gt; &lt;br /&gt;    return newImage;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm pretty sure "Their" method would be the right one to go for, and up there it does indeed seem like a lot less code.&lt;br /&gt;But let's see what it looks like when I'm actually using it, shall we?&lt;br /&gt;&lt;br /&gt;Theirs first..&lt;br /&gt;&lt;pre class="postCode"&gt; start=millisecs();&lt;br /&gt; img_Hearts=[jcore makeImage:CGSizeMake(128,128)];&lt;br /&gt; img_Hearts=[jcore addImage:img_Heart toImage:img_Hearts at:CGRectMake(0,0,64,64) withBlend:kCGBlendModeCopy];&lt;br /&gt; img_Hearts=[jcore addImage:img_Heart toImage:img_Hearts at:CGRectMake(64,0,64,64) withBlend:kCGBlendModeCopy];&lt;br /&gt; img_Hearts=[jcore addImage:img_Heart toImage:img_Hearts at:CGRectMake(0,64,64,64) withBlend:kCGBlendModeCopy];&lt;br /&gt; img_Hearts=[jcore addImage:img_Heart toImage:img_Hearts at:CGRectMake(64,64,64,64) withBlend:kCGBlendModeCopy];&lt;br /&gt; view_Heart[0].image=img_Hearts;&lt;br /&gt; Debuglog(@"A--&gt; %f",millisecs()-start);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;vs mine..&lt;br /&gt;&lt;pre class="postCode"&gt; start=millisecs();&lt;br /&gt; CreateBuffer(128,128);&lt;br /&gt; DrawToBuffer(img_Heart,0,0);&lt;br /&gt; DrawToBuffer(img_Heart,0,64);&lt;br /&gt; DrawToBuffer(img_Heart,64,0);&lt;br /&gt; DrawToBuffer(img_Heart,64,64);&lt;br /&gt; img_Hearts=UnlockBuffer(1);&lt;br /&gt;     &lt;br /&gt; view_Heart[0].image=img_Hearts;&lt;br /&gt; Debuglog(@"B--&gt; %f",millisecs()-start);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Same result, much feckin' shorter, much easier to type, much better on the eyes, pretty much just better!&lt;br /&gt;FFS, coders, there was nothing wrong with "Basic"...&lt;br /&gt;It worked, it looked half decent, it wasn't a mess, and you could damn well read it!&lt;br /&gt;&lt;br /&gt;But, of course, the numbers of keys you press isn't really the issue.  The actual issue is the end result.&lt;br /&gt;So, which is better?  "Better" code, or "shitty" JayStyle code?&lt;br /&gt;&lt;br /&gt;&lt;pre class="postCode"&gt;A--&gt; 0.002366&lt;br /&gt;A--&gt; 0.002013&lt;br /&gt;A--&gt; 0.002013&lt;br /&gt;A--&gt; 0.001553&lt;br /&gt;A--&gt; 0.001734&lt;br /&gt;A--&gt; 0.001661&lt;br /&gt;A--&gt; 0.001652&lt;br /&gt;A--&gt; 0.001997&lt;br /&gt;A--&gt; 0.001926&lt;br /&gt;A--&gt; 0.002022&lt;br /&gt;B--&gt; 0.001284&lt;br /&gt;B--&gt; 0.000755&lt;br /&gt;B--&gt; 0.001093&lt;br /&gt;B--&gt; 0.001089&lt;br /&gt;B--&gt; 0.000946&lt;br /&gt;B--&gt; 0.001051&lt;br /&gt;B--&gt; 0.001101&lt;br /&gt;B--&gt; 0.000967&lt;br /&gt;B--&gt; 0.001144&lt;br /&gt;B--&gt; 0.001089&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Aww well, you can't argue with numbers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6217295415365381590?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6217295415365381590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/okeydoke-lets-try-this-one.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6217295415365381590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6217295415365381590'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/okeydoke-lets-try-this-one.html' title='Okeydoke.. Let&apos;s try this one..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-5359198505852246318</id><published>2010-10-02T09:47:00.002+01:00</published><updated>2010-10-02T09:54:28.977+01:00</updated><title type='text'>Another day, Another Nnngh..</title><content type='html'>This morning I woke up with a plan in mind.&lt;br /&gt;I don't have a whole lot of time on Saturdays, so I was slightly rushed.&lt;br /&gt;With a short amount of time, I decided not to bother messing about with OpenAL just yet, and instead wondered what might happen if I try leaving the audio looping in silence.&lt;br /&gt;Bit quirky, but it could work.  .. maybe..&lt;br /&gt;&lt;br /&gt;So, I opened up CoolEdit, and tried to set a loop.&lt;br /&gt;and tried...&lt;br /&gt;and tried...&lt;br /&gt;and gave up.&lt;br /&gt;&lt;br /&gt;Then I downloaded and installed Audacity.&lt;br /&gt;and tried..&lt;br /&gt;and tried..&lt;br /&gt;and gave up.&lt;br /&gt;&lt;br /&gt;Then I remembered something that CAN set up a loop.&lt;br /&gt;I opened up ModPlugTracker (FFS) opened the wave, set the loop, saved the wave.&lt;br /&gt;Piss easy!   Once you try using a program with a build date of March 2002..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, with the looping wave saved, I hopped over to the Mac, opened up XCode, and then immediately had to close it all up again while it did it's update.&lt;br /&gt;..&lt;br /&gt;tum-tee-tum...&lt;br /&gt;&lt;br /&gt;Finally ready, I popped the audio file into the engine, finally got to test it, and found that it ignored the preset loop and just looped the whole thing, start to finish, over and over.&lt;br /&gt;&lt;br /&gt;Bugger.&lt;br /&gt;&lt;br /&gt;Aw well, I've more time tomorrow!&lt;br /&gt;OpenAL it is.. (assuming OpenAL isn't about to bugger up all this Battery Saving work that I've been doing.  If it does, I'm f'ked!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-5359198505852246318?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/5359198505852246318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/10/another-day-another-nnngh.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5359198505852246318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5359198505852246318'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/10/another-day-another-nnngh.html' title='Another day, Another Nnngh..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8119025504103869321</id><published>2010-09-24T11:41:00.003+01:00</published><updated>2010-09-24T11:50:00.521+01:00</updated><title type='text'>Additional Apple Development Related Migraines</title><content type='html'>Note : Apple Development based Swearing ahead.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On Tuesday I got my new iPod Touch (finally), but haven't had the time to play about with it yet, due to working extra shifts this week.&lt;br /&gt;&lt;br /&gt;Gah, everything all at once!&lt;br /&gt;&lt;br /&gt;Wednesday I just about had time (grr) to faff about with even more bloody license garbage, and really enjoyed how much garbage I had to go through, just because I'd given Apple more of my money.&lt;br /&gt;FFS!&lt;br /&gt;&lt;br /&gt;Thursday, no time, no work done, but I did notice that, inexplicably, Cardagain's audio was now linked to the "Alert" sound volume, and not the bloody iPod's volume.&lt;br /&gt;&lt;br /&gt;Fuck, Apple!!  What the hell!?!&lt;br /&gt;&lt;br /&gt;Friday, time to piss about and make all the necessary fixes.&lt;br /&gt;&lt;br /&gt;PlaySystemSound does exactly what's asked of it, but only does so through the Alert volume.&lt;br /&gt;I needed to fix that, and today I spent about an hour trying to tweak that over to AVAudioPlayer methods.&lt;br /&gt;&lt;br /&gt;Job done, and I gave it a test, at which point I found out that the stupid damn AVAudioPlayer adds a 0.2 second fuckup each time it tries to play something.&lt;br /&gt;&lt;br /&gt;Fuck, Apple!!  What the hell!?!&lt;br /&gt;&lt;br /&gt;So, next time I get some free time, I have to start all this again, with YET ANOTHER set of Audio Methods.&lt;br /&gt;&lt;br /&gt;Hey, Apple..  It's a SODDING IPOD!!&lt;br /&gt;&lt;br /&gt;It's JOB.. It's Actual Functional Job..  The purpose of the device...  is to PLAY AUDIO!&lt;br /&gt;Why in the name of hell have you made it so god damned hard TO PLAY AUDIO!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OMG!&lt;br /&gt;I've NEVER in my life seen a language as completely fudged together as this!&lt;br /&gt;&lt;br /&gt;Apple.&lt;br /&gt;You suck!&lt;br /&gt;&lt;br /&gt;Hurry up, Mark Sibly!  The world needs you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8119025504103869321?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8119025504103869321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/09/additional-apple-development-related.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8119025504103869321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8119025504103869321'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/09/additional-apple-development-related.html' title='Additional Apple Development Related Migraines'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8316613781076132450</id><published>2010-09-21T07:07:00.002+01:00</published><updated>2010-09-21T07:39:24.140+01:00</updated><title type='text'>The haphazard plan...</title><content type='html'>I've got games coming out of my ears, but absolutely nothing to show for it.&lt;br /&gt;&lt;br /&gt;Here's how things are, currently.&lt;br /&gt;&lt;br /&gt;1. Arcade Slots : Still where I left it.&lt;br /&gt;2. The Framework : Slightly ahead of where I left it.  I've recently added my super-duper wordlist into the engine.  Info below.&lt;br /&gt;3. Stringy Things : Word Engine helps, but trying to formulate ways to make it chunky, without losing the complexity of the DS edition.&lt;br /&gt;4. Puzzobomb : Considering that I'm going to have to make levels for this!  Argh!  Sprites drawn&lt;br /&gt;5. Maze thing : Not entirely formulated yet, might offshoot into about 3 different games at this rate!&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;#1 relies on me figuring out what other games are going into it.&lt;br /&gt;Arcade Slots is a nice game to build, but I remember getting to this point doing the DS one.  Except, back then, I had the whole of Arcade-History to play with.  Now I only have my own 200+ archive, and I'm finding it hard to think of games that fit the bill.&lt;br /&gt;Bah.&lt;br /&gt;&lt;br /&gt;All the rest of the games expect the framework to be complete first.  I'm about 60%'ish through that, currently in the "Oh no, there's another thing I've not added yet!" stage of thinking, but it's slowly getting better.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now, as for Stringy Things..  That needed a wordlist, so obviously that was going to need to be part of the Framework.&lt;br /&gt;Simple thinking works best, so out came the DS edition of Stringy Things.&lt;br /&gt;Luckily, that was done in C, so I literally was able to copy+paste the thing from the DS code to the new iPhing code.&lt;br /&gt;Well, I say Copy+Paste, I also needed to tweak it from using C-Strings, to NSStrings, and then faff about with all manner of other little bits and pieces inbetween.&lt;br /&gt;&lt;br /&gt;It's nice and fast.&lt;br /&gt;And when I say "Nice and Fast", I mean about .5 seconds to find "Z?????" on a 2Gen iPod.&lt;br /&gt;EA's badly coded Scrabble is much much quicker, but has a minute long loader bar that annoys the crap out of me.  It makes it much harder to "Quick load, quick play, quick quit" that game, but also EA's done it all in "As nice as we can make it" mode, so that soaks up the battery as if your iPhing's on fire..&lt;br /&gt;Your choices?  Leave the game running and kill the battery, or keep quitting/reloading the game ... and kill the battery whilst waiting between plays for it to load.&lt;br /&gt;gah!&lt;br /&gt;&lt;br /&gt;I'm hoping that Stringy Things won't end up as badly as that.&lt;br /&gt;&lt;br /&gt;As with Cardagain and Arcade Slots, I'll be using plain and simple UIViews to do everything.  The iPhings are prepared for those, they expect those, and the can fling 'em around without too much of a resulting battery drain.&lt;br /&gt;Load up Cardagain and leave it running, if you don't believe me.&lt;br /&gt;&lt;br /&gt;So, with all this going on, I've plenty to do. Lots of little bits and pieces to cram together.&lt;br /&gt;It's been a long long road, but there should hopefully be a visible result soon.&lt;br /&gt;&lt;br /&gt;..&lt;br /&gt;Just not this week!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8316613781076132450?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8316613781076132450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/09/haphazard-plan.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8316613781076132450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8316613781076132450'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/09/haphazard-plan.html' title='The haphazard plan...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-575563731172755934</id><published>2010-09-15T14:25:00.002+01:00</published><updated>2010-09-15T14:33:00.125+01:00</updated><title type='text'>Progress Report...</title><content type='html'>Things have been superslow with Arcade Slots.&lt;br /&gt;Each day that I try to do something, I remember that there's 100 other little "Keep Apple Happy" bits and pieces that I must do.&lt;br /&gt;&lt;br /&gt;It's almost put me off iDev, because I can't seem to get into my games the same way that I usually do.&lt;br /&gt;Normally I'd copy my framework folder, open the folder, open the BlitzMax code, and begin.&lt;br /&gt;And that'd be that.&lt;br /&gt;&lt;br /&gt;But with iDev, there's SO much more to it.&lt;br /&gt;Little bits here and there, hundreds of tweaks to do, and god only knows how much faffing around I have to do, just to achieve the simplest of things.&lt;br /&gt;&lt;br /&gt;Gah!&lt;br /&gt;Apple!!&lt;br /&gt;&lt;br /&gt;WHY!?&lt;br /&gt;&lt;br /&gt;So, for the past two days, I've been working on a Framework.&lt;br /&gt;Just like my Blitz framework, it'll and up being just a click/open/start.&lt;br /&gt;In this case, I'm forming a Template for XCode, which when started, creates a basic shell of a game.&lt;br /&gt;It's nothing amazing, but it's a simple enough start that you then don't have to worry about all those niggling little bugs, cropping up and destroying your game-code-time!&lt;br /&gt;&lt;br /&gt;I'll post more on that in a couple of days time.  Lemmie see how much cool stuff I can cram into it first!&lt;br /&gt;&lt;br /&gt;..&lt;br /&gt;THEN I'll get some games done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-575563731172755934?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/575563731172755934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/09/progress-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/575563731172755934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/575563731172755934'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/09/progress-report.html' title='Progress Report...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6766012435799670637</id><published>2010-09-07T14:29:00.002+01:00</published><updated>2010-09-07T14:31:40.343+01:00</updated><title type='text'>Slow progress on Arcade Slots</title><content type='html'>There's a mind boggling number of little things I have to remember, that I'm amazed I remembered them all in Cardagain!&lt;br /&gt;I guess the first time, I was double checking every little thing, but this time I'm not bothering to do that.&lt;br /&gt;&lt;br /&gt;..  That'll teach me!&lt;br /&gt;&lt;br /&gt;Hundreds more little things were tweaked, today, and the engine's almost at a 5% complete state!&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jwGiwv3PRR0?fs=1&amp;amp;hl=en_GB"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/jwGiwv3PRR0?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This is a really rubbish video, but hey, it's got sound, now!!&lt;br /&gt;woot!&lt;br /&gt;&lt;br /&gt;More to come.&lt;br /&gt;&lt;br /&gt;slowly, probably!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6766012435799670637?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6766012435799670637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/09/slow-progress-on-arcade-slots.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6766012435799670637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6766012435799670637'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/09/slow-progress-on-arcade-slots.html' title='Slow progress on Arcade Slots'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4620387527559364711</id><published>2010-09-02T14:36:00.003+01:00</published><updated>2010-09-02T14:42:59.181+01:00</updated><title type='text'>Platdude meets the iPod</title><content type='html'>I'm still not sure that a proper JNKPlat game will work on the iPhings, mostly due to how annoyed I am at Onscreen controls..  Booo, Hiss!&lt;div&gt;They're ok, if they're offset, and nice and chunky, but if they're removing screenspace that's used for the game, or even worse, if they're over the top of what you're trying to look at, then they're pretty much useless.&lt;/div&gt;&lt;div&gt;And JNKPlat needs a LOT of buttons!!&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;Arcade Slots is coming along slowly, mostly because there's oodles of background stuff to get working before the actual game can be started.&lt;/div&gt;&lt;div&gt;Today, I started the game!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I present the first video evidence of Platdude running amok on an iPod!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/m6g6Uo_93SI?fs=1&amp;amp;hl=en_GB"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/m6g6Uo_93SI?fs=1&amp;amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hurray for Platdude!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You'll notice chunky black squares where I'm "removing" the spheres.. The "lovely gradient" I added earlier on has caused all kinds of stupid issues like this.&lt;/div&gt;&lt;div&gt;I'm going to scrap the lovely gradient!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The black chunky squares will still be there when you play it, it's just that you won't notice them, because the background will be black too!!&lt;/div&gt;&lt;div&gt;For now, though, I've left it as it is, just so I can be sure it's working correctly.&lt;/div&gt;&lt;div&gt;And it is.&lt;/div&gt;&lt;div&gt;Which is great!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next up, audio, scoring, lives, credits, and then a second game!!  woot!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4620387527559364711?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4620387527559364711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/09/platdude-meets-ipod.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4620387527559364711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4620387527559364711'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/09/platdude-meets-ipod.html' title='Platdude meets the iPod'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-2897497842508595140</id><published>2010-08-25T13:01:00.002+01:00</published><updated>2010-08-25T13:13:31.797+01:00</updated><title type='text'>The Reel World...</title><content type='html'>Since I'm giving AGameAWeek a little rest, I can now concentrate on iPhings a bit better than I have been.&lt;div&gt;There's been some crazy "Why won't it do that!?" issues with Arcade Slots, mostly based on memory issues.&lt;/div&gt;&lt;div&gt;As I try switching the game from one set of reels to another, it'd try loading in a mountain of images, which all clashed together, and resulted in Evil Nasty Crashes..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd been trying to focus on fixing all that, but with AGAW continuing on in the background, and the horrible nasty illness that's been here for the past few weeks/months, it's been a struggle.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a couple of days off, I'm back in the middle of the action, and I've spent most of this morning solving those memory bugs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've made a simple "Load new reels" button on the front menu, which when clicked, will erase all current reels, erase all "fruit", and then reload everything generating a nice new batch of reels and "fruit", ready for the next game.&lt;/div&gt;&lt;div&gt;This happens over the course of about 20 frames, being about 0.7 seconds on the emulator, but slowing to around 2 seconds on the iPod Touch (3gen,8gb)&lt;/div&gt;&lt;div&gt;It's a short gap between tapping the button, and having the selected slotmachine up and running, and it'll have to do.  'cos that's as fast as I can get it!&lt;/div&gt;&lt;div&gt;Meanwhile, I also did a deadly-bulk-test, and left it reloading and reloading and reloading and reloading and reloading (on the iPod) for about 5 minutes, whilst filling up the little debug console, and Leak tests on the Mac.   All seems nice and happy, so I'm going to leave the reels where they are, now, and actually get into the lovely bits of the game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tomorrow starts the lovely bits.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Getting Game #1 up and running, and having it 100% playable.&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;Should only take about 3 weeks to get that bit done ;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(no screenshots, it's still looking about the same!!)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-2897497842508595140?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/2897497842508595140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/reel-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2897497842508595140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2897497842508595140'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/reel-world.html' title='The Reel World...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4883457105955935811</id><published>2010-08-13T14:28:00.005+01:00</published><updated>2010-08-13T14:39:39.253+01:00</updated><title type='text'>The signature was invalid....</title><content type='html'>Don't you hate it when stupid things cause you to lose insane numbers of hours from your day?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Yesterday I noticed a little Code-Sign warning popping up in XCode.  It hadn't happened before, and I thought something might be up with Arcade Slots.&lt;/div&gt;&lt;div&gt;So, I hopped back over to Cardagain, and recompiled it, only for the exact same message to appear!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oh no!!&lt;/div&gt;&lt;div&gt;What's happened!?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is my Code Signing/Developers Certification thing no longer working?!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This morning I reinstalled XCode, taking the time to grab the newer SDK, and a few other bits and pieces.&lt;/div&gt;&lt;div&gt;The download took about an hour, the install took another hour, and then I was ready to get started.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Except the warning still flashed up.&lt;/div&gt;&lt;div&gt;OMG! WTF!? NOOO!!!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;"Application failed codesign verification.  The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)"&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Another hour later, and I've figured it out.&lt;/div&gt;&lt;div&gt;When I finally got around to releasing Cardagain, I'd had to install a second "Distribution" certificate, alongside my Developer certificate, and obviously I hadn't noticed it since then.  Pay attention, Jay!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's how things work.&lt;/div&gt;&lt;div&gt;You have three compile methods.&lt;/div&gt;&lt;div&gt;Debug, Release and Distribution.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In all honesty, I haven't messed about with Debug enough to tell if there's a blind bit of difference between that and Release, NSLog still works in either mode, and that's pretty much my whole Debug, right there!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Distribution, though, needs that extra certificate.&lt;/div&gt;&lt;div&gt;Once added, Distribution mode will happily compile with no warnings, but if you switch back to Release/Debug.. Blammo.. You get a warning!!&lt;/div&gt;&lt;div&gt;Your warning is basically (in REAL WORDS) this..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"You're trying to sign your app with a distribution cert, but you aren't in distrib mode"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The app still compiles, the app still runs on your device, and there's not a blind bit of difference that it makes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's just there to scare the crap out of you, and make you waste 3 hours of your day trying to "fix" it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note to all who turn up here, looking for the answer : &lt;b&gt;It doesn't appear to break anything, ignore it.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;I'll let you know if anything breaks!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4883457105955935811?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4883457105955935811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/signature-was-invalid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4883457105955935811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4883457105955935811'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/signature-was-invalid.html' title='The signature was invalid....'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-7733518393365203692</id><published>2010-08-12T14:46:00.003+01:00</published><updated>2010-08-12T14:53:02.737+01:00</updated><title type='text'>Adding Buttons..</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TGP7s48c_9I/AAAAAAAABrg/EohDgtikI3o/s1600/Buttons.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 170px; height: 320px;" src="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TGP7s48c_9I/AAAAAAAABrg/EohDgtikI3o/s320/Buttons.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5504519918195638226" /&gt;&lt;/a&gt;&lt;br /&gt;Although my previous video of Arcade Slots did have a pretty button on it, it wasn't a reusable one.&lt;div&gt;Today was the first Arcade Slot work I've done since the video!  eek!! slow progress..&lt;/div&gt;&lt;div&gt;Anyhoo, I decided to make reusable buttons.&lt;/div&gt;&lt;div&gt;What a chore!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After a strangely insane amount of tweaking and refitting of little tiny awkward bits of code, and some finger crossing, I finally got it all working.&lt;/div&gt;&lt;div&gt;Up to 20 buttons, all flashing when needed, scalable to different sizes, multicoloured, pushable, clickable, and sending reports to the game whenever they're pressed.&lt;/div&gt;&lt;div&gt;wootsocks!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope 20's enough, 'cos I really don't feel like tweaking all my none-variable numbers!!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, creating some sort of display limit, or overlay, or something, so the reels don't take up the whole of the screen..&lt;/div&gt;&lt;div&gt;Annoyingly, a simple overlay would completely mess up my previously created gradiented background.&lt;/div&gt;&lt;div&gt;D'oh!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-7733518393365203692?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/7733518393365203692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/adding-buttons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/7733518393365203692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/7733518393365203692'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/adding-buttons.html' title='Adding Buttons..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TGP7s48c_9I/AAAAAAAABrg/EohDgtikI3o/s72-c/Buttons.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6669284527260984586</id><published>2010-08-10T03:25:00.003+01:00</published><updated>2010-08-10T03:32:48.733+01:00</updated><title type='text'>Cardagain Update</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TGC5_TggcpI/AAAAAAAABrY/EDNsEsny4YE/s1600/IMG_0052.PNG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TGC5_TggcpI/AAAAAAAABrY/EDNsEsny4YE/s320/IMG_0052.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5503603241866261138" /&gt;&lt;/a&gt;&lt;br /&gt;I actually uploaded this on Friday, and it even went into Review-Mode on Friday, but it's taken the Apple Guys all weekend to actually review it.&lt;div&gt;My guess?  They couldn't stop playing it.&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;Yup.. That's the &lt;i&gt;only &lt;/i&gt;possible reason I can imagine, anyway!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cardagain 1.1 should be ready for download right now, and contains a whole bunch of different card decks, and a fair few backgrounds, too.&lt;/div&gt;&lt;div&gt;Everything's all nice and Retina-Ready (I forgot to add a Retina Background, last time! silly me..) and it all plays a little smoother, with a simple new Loading screen being used to keep things nice and organised.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No new gameplay types, yet, though.&lt;/div&gt;&lt;div&gt;If you'd like to see something special, let me know!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6669284527260984586?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6669284527260984586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/cardagain-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6669284527260984586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6669284527260984586'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/cardagain-update.html' title='Cardagain Update'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_iKJ5Y-ge1g8/TGC5_TggcpI/AAAAAAAABrY/EDNsEsny4YE/s72-c/IMG_0052.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-2148232449382112224</id><published>2010-08-05T14:58:00.002+01:00</published><updated>2010-08-05T15:00:50.561+01:00</updated><title type='text'>Free Cardagain!</title><content type='html'>Cardagain's been set free for a few days.&lt;div&gt;The price hops back up to 59p on Sunday, but in the meantime you can let all your friends see how addictive it actually is!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple Card based fun for all the family.  Give it a try, and spread the word.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-2148232449382112224?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/2148232449382112224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/free-cardagain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2148232449382112224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2148232449382112224'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/free-cardagain.html' title='Free Cardagain!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-2891597315420211062</id><published>2010-08-04T15:11:00.002+01:00</published><updated>2010-08-04T15:19:55.699+01:00</updated><title type='text'>Arcade Slots : A proper start..</title><content type='html'>Today I finally got all my little bits and pieces together, and started to build up a proper edition of Arcade Slots.&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/o7Gw3ki2VkY&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/o7Gw3ki2VkY&amp;amp;hl=en_US&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Starting with a quickly made logo that looks vaguely like the old one, but quite a bit different, I slapped that onto the iPod alongside a cheaply designed, almost unnoticable, gradiented background, and built a simple button mechanism.&lt;/div&gt;&lt;div&gt;Throwing together the spinning reels function (that's been built for the past 3 or 4 weeks according to &lt;a href="http://www.youtube.com/watch?v=a7Mbf7VYEEM"&gt;my previous youtube test&lt;/a&gt;) I was able to get the JNKPlat spinning reels spinning, and ..  that's pretty much where I'm going to be leaving it for today.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Which is ever so slightly annoying, considering I wanted to get the thing playable, today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;dangit...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;No matter, I also got different decks loading into Cardagain properly, this morning, after a whole crazy amount of memory issues.. (Tip : Make a loading screen, and the iPhings don't seem to freak out as much when you try to do hundreds of bits and pieces all at the same time!!) &lt;/div&gt;&lt;div&gt;Just a few hours worth of designing decks and backgrounds should mean that's ready for it's first update.&lt;/div&gt;&lt;div&gt;ooooh!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-2891597315420211062?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/2891597315420211062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/arcade-slots-proper-start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2891597315420211062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/2891597315420211062'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/arcade-slots-proper-start.html' title='Arcade Slots : A proper start..'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-4592291003603226709</id><published>2010-08-03T15:47:00.003+01:00</published><updated>2010-08-03T15:52:37.786+01:00</updated><title type='text'>Cardagain updates inprogress</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://socoder.net/jstuff/complete/Cardagain_20100803B_thumb.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 240px; height: 180px;" src="http://socoder.net/jstuff/complete/Cardagain_20100803B_thumb.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;I finally got my different decks to load, today, although it took some tweaking to get it going.  Now to spend a bit of time making up even more silly decks.&lt;div&gt;To the right is a preview, and is from the recently released Windows/Linux/Mac quicky edition of the game, which you can get &lt;a href="http://jayenkai.socoder.net/2010/08/y2w49-cardagain/"&gt;here&lt;/a&gt;.  (But the iPhing version is infinitely better.  Touchscreen beats Mouse, hands down!!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;Meanwhile progress has slowed in Arcade Slots, not because it's not working, but because I'm struggling to come up with game ideas that aren't insanely copyright infringing!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll probably just slam a bunch of my older sprites together, and see what pops up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;More info as it happens...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-4592291003603226709?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/4592291003603226709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/cardagain-updates-inprogress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4592291003603226709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/4592291003603226709'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/cardagain-updates-inprogress.html' title='Cardagain updates inprogress'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-5061783693501055406</id><published>2010-08-02T04:49:00.012+01:00</published><updated>2010-08-02T06:01:55.747+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Tutorial 1-3 : The Beat Box</title><content type='html'>&lt;div&gt;Tutorial 1 : The Beat Box&lt;/div&gt;&lt;div&gt;A multipart tutorial teaching sprites, views, sounds, clicking and more!&lt;/div&gt;&lt;div&gt;&lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-1-beat-box.html"&gt;Part One&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-2-beat-box.html"&gt;Part Two&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-3-beat-box.html"&gt;Part Three&lt;/a&gt;, More to come.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;It's probably about time that we started to draw things onscreen.&lt;div&gt;In order that we can then do things, as we play, we need to setup a "PerFrame" function, and get it to run every few milliseconds.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's do both things at once.  We'll set up a timer that ticks every few milliseconds, and also add the function.&lt;/div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.h In-Bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;NSTimer *GameTimer;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is our timer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.h Under-Bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;- (void)perFrame;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is the name of our function.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You'll notice that this function is declared differently than our previous functions.  Whereas the Buffer functions were..&lt;/div&gt;&lt;div&gt;Type FunctionName (Parameters);&lt;/div&gt;&lt;div&gt;this one is..&lt;/div&gt;&lt;div&gt;-(type)FunctionName;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since I can't work out how to pass parameters to a -'type function, I've switched to doing the alternative, but the -'type function seems to have complete access to all program variables, whereas the alternative style only gets access to things that we double up in the .h file.  (I think)&lt;/div&gt;&lt;div&gt;It's a nasty language, this!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I much prefer Blitz!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyhoo, moving on..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.m viewDidLoad&lt;/div&gt;&lt;div&gt;Right at the bottom of viewDidLoad, we want to initialise our timer.&lt;/div&gt;&lt;div&gt;One line does the job.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GameTimer=[NSTimer scheduledTimerWithTimeInterval:(0.033) target:self selector:@selector(perFrame) userInfo:nil repeats:YES];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// .033 seconds = approx 30 frames per second.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basically, every .033 seconds, the timer (GameTimer) will tick by, and the function "perFrame" will be called.  This repeats (YES!) forever, or until we quit.  We also have the chance to free the timer, and replace it with a faster/slower repeat, if we feel the need.  If you ever clear it without resetting it, though, you'll end up with a frozen game, since the perFrame will no longer be called.  d'oh!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, underneath our viewDidLoad function, we can start a new function.&lt;/div&gt;&lt;div&gt;- (void)perFrame {&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There we go!&lt;/div&gt;&lt;div&gt;Nothing in it, yet, but it's ready for use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let's start making our grid.&lt;/div&gt;&lt;div&gt;We'll go with a 16x16 grid to display onscreen.  The user can tap any of the 16x16 grid spots, turn them off and on, and then the little beat bar will make a noise when it touches one of them.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, first make an array to hold the off/on values of each grid spot.&lt;/div&gt;&lt;div&gt;.m Declare&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int GridOn[300]; // (y*16+x)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We've made a quick note of the formula for our array, in the comment.  If, for example, we need the top left, it'll be (0*16)+0, or 0.. bottom right is (15*16)+15, or 255.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.m viewDidLoad&lt;/div&gt;&lt;div&gt;This goes after the dot-slicing, but before the Timer thing.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;for (x=0;x&lt;15;x++)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;for (y=0;y&lt;15;y++)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;			&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GridOn[y*16+x]=0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;			&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;if (round(random()%10)&lt;3)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Note, we don't have to include ints for the x and y this time, since we already declared them as ints in the Dot-Slicing part, a little earlier.&lt;/div&gt;&lt;div&gt;We set everything to 0, but then every so often at random intervals, we'll set them to 1.&lt;/div&gt;&lt;div&gt;This is for testing purposes.  We haven't yet done any finger-tapping stuff, so we want to set things either off or on, so we can see the results.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next we need a larger blank sprite that we can draw the grid into.  Head into a paint package and make a nice blankx320.png&lt;/div&gt;&lt;div&gt;Copy it into the resources, and create a img_Grid variable for it.&lt;/div&gt;&lt;div&gt;.h In-Bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* img_Grid;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.h Under-Bracket&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImage* img_Blank;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;.m Declare&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@synthesize img_Grid;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.m Dealloc&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[img_Grid dealloc];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next we need to draw our grid onto our image.&lt;/div&gt;&lt;div&gt;The first time, we draw the entire grid.  Every time after this we'll only need to draw it wherever it changes.  This saves us a heck of a lot of buffer-drawing, and we can use the time to do everything else.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, back to that x/y loop we just made.&lt;/div&gt;&lt;div&gt;change it to this..&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;img_Blank=[UIImage imageNamed:@"blankx320.png"];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;LockBuffer(img_Blank); &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;for (x=0;x&lt;15;x++)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;for (y=0;y&lt;15;y++)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;			&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;GridOn[y*16+x]=0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;			&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;if (round(random()%10)&lt;3)&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;			&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;DrawToBuffer(img_Dots[GridOn[y*16+x]+1], x*20,(y*20)+320);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// That +320 is our quirky buffer co-ordinates!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;img_Grid=UnlockBuffer();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[img_Blank dealloc]; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;We're locking the buffer, drawing everything onto it at 20x20 intervals, and then transferring it to img_Grid.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now to see our grid, we should create a view_Grid.  The view is a rectangular area that we tell to look like the img, and that then shows up on screen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.h In-Bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImageView* view_Grid;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.h Under-Bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImageView* view_Grid;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.m Declare&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@synthesize view_Grid;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.m Dealloc&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[view_Grid dealloc];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To setup our view, head back to viewDidLoad.&lt;/div&gt;&lt;div&gt;Underneath the chunk we just replaced, we want to tell it to make the view.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;view_Grid=[[UIImageView alloc] initWithImage:img_Grid];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// The image we just created..&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;view_Grid.frame=CGRectMake(0,40,320,320);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Shown at 0,40, with 320 width and 320 height.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;view_Grid.userInteractionEnabled=FALSE;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Disable touching.  We'll get to this later.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[self.view addSubview:view_Grid];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Add the view to the screen.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now we should be able to see our progress so far.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TFZNu9DGR3I/AAAAAAAABqk/8syiAZ6XK0g/s1600/Screen+shot+2010-08-02+at+05.42.17.png"&gt;&lt;img src="http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TFZNu9DGR3I/AAAAAAAABqk/8syiAZ6XK0g/s320/Screen+shot+2010-08-02+at+05.42.17.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5500669463936518002" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 10px; cursor: pointer; width: 170px; height: 320px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;We've taken a picture, cut it up, and pieced it back together in a whole bunch of pieces.&lt;/div&gt;&lt;div&gt;This certainly isn't the most amazing piece of software in the world, but it does give us a great starting point.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;From here, we're going to be able to click the grid, turn points off and on, and then later on make a nice bar that scans the grid, and plays notes/drums/whatever as it goes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Meanwhile, have a fiddle with the code you've got, and make sure you understand all those odd chunks that you've copy+pasted blindly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not 100% sure when this tutorial will continue, but you shouldn't be waiting too long.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Until next time, have fun looking at the boxes!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://socoder.net/uploads/1/BeatBox_partThree.zip"&gt;Here's the source so far.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-5061783693501055406?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/5061783693501055406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-3-beat-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5061783693501055406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5061783693501055406'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-3-beat-box.html' title='Tutorial 1-3 : The Beat Box'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TFZNu9DGR3I/AAAAAAAABqk/8syiAZ6XK0g/s72-c/Screen+shot+2010-08-02+at+05.42.17.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6781009455781671208</id><published>2010-08-02T03:45:00.011+01:00</published><updated>2010-08-02T06:02:27.146+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Tutorial 1-2 : The Beat Box</title><content type='html'>&lt;div&gt;Tutorial 1 : The Beat Box&lt;/div&gt;&lt;div&gt;A multipart tutorial teaching sprites, views, sounds, clicking and more!&lt;/div&gt;&lt;div&gt;&lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-1-beat-box.html"&gt;Part One&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-2-beat-box.html"&gt;Part Two&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-3-beat-box.html"&gt;Part Three&lt;/a&gt;, More to come.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;For our multiple sprites, we need an array to hold them.  Within .h we'll make an array to do that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UIImage Arrays are a lot like regular images, so we can declare them in exactly the same way, in the .h file.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;#import&lt;uikit/uikit.h&gt;&lt;/uikit/uikit.h&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@interface BeatBoxViewController : UIViewController {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* img_Dots[5];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImage* img_Dots;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@end&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;As you can see, we've simply replicated the DotsFull lines, changing only the first part to an Array.  Save the .h, and head to the .m.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Inside the .m, we again need to synthesize our variable, except this time we can't actually use Synthesize.  Thing of Synthesize as being like the Basic keyword "Global".  We can Global a single variable, but an array is different.  We need to "Dim" the array, instead.&lt;/div&gt;&lt;div&gt;So, for arrays, we use "Dynamic" instead.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@dynamic img_Dots;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And down in the dealloc function, we need to clean it up afterwards.&lt;/div&gt;&lt;div&gt;This line is &lt;i&gt;nearly&lt;/i&gt; the same, except with a star at the start, to point to the array, rather than the variable.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[*img_Dots dealloc];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Simple!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, that's your variable ready..&lt;/div&gt;&lt;div&gt;Let's head back to .h again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We're going to create a drawing function.&lt;/div&gt;&lt;div&gt;Actually, we're going to create a set of functions that together give us a really useful function.&lt;/div&gt;&lt;div&gt;We take a sprite, take a blank sheet, draw onto the sheet, and then make use of the sheet.&lt;/div&gt;&lt;div&gt;This is handy in all kinds of locations, but we need to be sure we don't go overboard with it.  We CAN do it, but we can't do a lot of it, or else the slower iPhings will start to suffer.&lt;/div&gt;&lt;div&gt;In quick tests I've found that the iPod Touch can generally do about 5 or 6 of theses per-frame before it starts to struggle.  Of course, if you're doing this during a loading screen, you can get away with drawing all manner of wonderful things, and reusing these large drawn sheets as background maps..  That's very handy indeed!&lt;/div&gt;&lt;div&gt;Our first use, though, will be to take our original spritesheet, and draw pieces of it onto smaller 16x16 pixel sprites, which will represent the cut out chunks of our sprites.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ok, first up, we need to declare a couple of small variables.  So, In-Bracket, we want the following..&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGContextRef LockedBuffer;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int BufferHeight;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;These represent two things.  First, a CG item which is our current drawing buffer.  This will only be used within our upcoming drawing function, but represents the image that will eventually be spat out.  The second is the height of said buffer.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Under-Bracket, we want to declare the function's we're going to be using.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;void LockBuffer(UIImage* ImageLock);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;void DrawToBuffer(UIImage* ImageDraw,int x,int y);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* UnlockBuffer();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first will be used to Lock the buffer, or rather, to take an image and turn it into a drawing buffer. The drawing buffer is that CGContextRef from earlier.  CGContextRef's cannot be seen onscreen, they're background memory things..  The second draws a sprite onto the buffer at the location provided, whilst the third spits our buffer back out again, turning it back into a usable UIImage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now we need to hop on over to our .m and code those exact functions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Up in the declaration section, we need to redefine our couple of variables.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGContextRef ctx;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int BufferHeight;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and then further down the script (anywhere, really) you can plonk down the functions.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Buffer Phings&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;void LockBuffer(UIImage* ImageLock)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGImageRef oldimage = ImageLock.CGImage;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    ctx = CGBitmapContextCreate(NULL,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGImageGetWidth(oldimage), CGImageGetHeight(oldimage),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;8, CGImageGetWidth(oldimage) * 4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;colorspace, kCGImageAlphaPremultipliedLast);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    CGColorSpaceRelease(colorspace);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;BufferHeight=CGImageGetHeight(oldimage);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGContextSetBlendMode(ctx, kCGBlendModeCopy);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGRect r = CGRectMake(0,0,CGImageGetWidth(oldimage), CGImageGetHeight(oldimage));&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    CGContextDrawImage(ctx, r, oldimage);&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;void DrawToBuffer(UIImage* ImageDraw,int x,int y)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGImageRef useimage = ImageDraw.CGImage;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGContextSetBlendMode(ctx, kCGBlendModeCopy);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// add new image&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" white-space: pre; font-family:'courier new';"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    CGRect r = CGRectMake(x,y-BufferHeight,CGImageGetWidth(useimage),CGImageGetHeight(useimage));&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    CGContextDrawImage(ctx, r, useimage);&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* UnlockBuffer()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    // create resulting image&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGImageRef thisimage;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    thisimage = CGBitmapContextCreateImage(ctx);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    UIImage* newImage = [[UIImage alloc] initWithCGImage:thisimage];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;CGImageRelease(thisimage);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    CGContextRelease(ctx);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    return newImage;&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;That's a little messy!&lt;/div&gt;&lt;div&gt;It does what I said earlier!  At the moment, you needn't worry about all the horrible nastyness, and should just assume that it does it's job.  If you want to scan through it, it kinda makes sense.  Just not entirely!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It does have a few quirks that I've yet to bother tweaking, mostly involving co-ordinates being slight odd, but we needn't worry about those just yet.&lt;/div&gt;&lt;div&gt;I'll leave it up to you to play about with the functions at a later date.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Something you might like to note, is the "CGContextSetBlendMode" bit, which you can change to do all kinds of neat tricks, like additives, and subtractions, and lovely swooshy things like that.&lt;/div&gt;&lt;div&gt;Obviously, you couldn't keep up the framerates if you tried to do Geometry Wars like that, but..  It's nice to know it's there, once we've started to really play with stuff.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OK, our functions are ready for use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next we need a new sprite!  We can't cut our image into "no-space", and instead need a blank sprite to use as a target.  Since I can't figure out how to generate a blank sprite in-code, let's cheat, and load in a blank png image.&lt;/div&gt;&lt;div&gt;Create a simple 16x16 pixel image in your favourite art package, save it to "&lt;a href="http://socoder.net/uploads/1/blankx16.png"&gt;blankx16.png&lt;/a&gt;" and drag it into your project, copying it over, the same as you did for the first one.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Create the variable like we always do, &lt;/div&gt;&lt;div&gt;.h In-bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* img_Blank;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.h Under-bracket&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImage* img_Blank;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;.m Declare&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@synthesize img_Blank;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;.m Dealloc&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good!&lt;/div&gt;&lt;div&gt;Now, head into the viewDidLoad.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style=" white-space: normal; font-family:Georgia, serif;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;span class="Apple-style-span"  style=" white-space: normal; font-family:Georgia, serif;"&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="white-space: normal; font-family:Georgia, serif;"&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int x=0; // Start from the left&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;int y=0; // Start from the top.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;for (int n=1;n&lt;4;n++)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;img_Blank=[UIImage imageNamed:@"blankx16.png"];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Load blank target image&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; LockBuffer(img_Blank);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Lock buffer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; DrawToBuffer(img_DotsFull,x,y);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Draw onto buffer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; img_Dots[n]=UnlockBuffer();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Release buffer into variable&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[img_Blank dealloc];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Free original target&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;		&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;x=x-16; if (x==-32) {x=0;y=y+16;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;// Move position for the next part.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space: pre; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okeydoke! &lt;/div&gt;&lt;div&gt;We still can't see anything, yet, but it's all happening in memory, and we're about ready to start playing with our engine.&lt;/div&gt;&lt;div&gt;If you're finding it hard to keep up, &lt;a href="http://socoder.net/uploads/1/BeatBox_partTwo.zip"&gt;here's everything so far&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6781009455781671208?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6781009455781671208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-2-beat-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6781009455781671208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6781009455781671208'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-2-beat-box.html' title='Tutorial 1-2 : The Beat Box'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3635889960612831884</id><published>2010-08-02T02:55:00.008+01:00</published><updated>2010-08-02T06:03:09.306+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><title type='text'>Tutorial 1-1 : The Beat Box</title><content type='html'>&lt;div&gt;Tutorial 1 : The Beat Box&lt;/div&gt;&lt;div&gt;A multipart tutorial teaching sprites, views, sounds, clicking and more!&lt;/div&gt;&lt;div&gt;&lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-1-beat-box.html"&gt;Part One&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-2-beat-box.html"&gt;Part Two&lt;/a&gt;, &lt;a href="http://jayenkai.blogspot.com/2010/08/tutorial-1-3-beat-box.html"&gt;Part Three&lt;/a&gt;, More to come.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;Today, we're going to create one of those little apps where the player taps a few boxes, and then the app plays a tune/rhythm based upon the locations of the highlighted boxes.&lt;br /&gt;If you've played with TonePad on the iPhings, you'll know what we're aiming for.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;So, first off, let's draw a set of boxes.&lt;br /&gt;We're going to be neatly cutting our sprites up, in this, so we can go ahead and draw 4 boxes into a single sprites sheet.&lt;br /&gt;&lt;img src="http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TFYl_iWzzeI/AAAAAAAABqU/gAMmfiRIf8k/s320/Dots.png" style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 32px; height: 32px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5500625768364101090" /&gt;We want a grid of 4 (2x2) 16x16 pixel boxes.  The first should be off, the second on, and the third and fourth should be "On and playing" at two steps.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OK, here's what we're about to do..&lt;/div&gt;&lt;div&gt;0. Create project.&lt;/div&gt;&lt;div&gt;1. Load spritesheet.&lt;/div&gt;&lt;div&gt;2. Cut spritesheet into array of sprites.&lt;/div&gt;&lt;div&gt;3. Draw sprites onto large Grid image.&lt;/div&gt;&lt;div&gt;4. Draw large Grid image onto screen.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ready?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;0. &lt;b&gt;Create Project&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Open XCode&lt;/div&gt;&lt;div&gt;Create new App&lt;/div&gt;&lt;div&gt;View-Based App&lt;/div&gt;&lt;div&gt;Give it a name "Beatbox"&lt;/div&gt;&lt;div&gt;Done.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. &lt;b&gt;Load Spritesheet&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Drag and drop Dots.png into the Resources folder of your app, and in the little dialogue box that pops up, be sure to select "Copy items to destination folder", and click add.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Code time.  For reasons that I'm still not 100% sure about, we need to declare each image/view's variable three times.  This seems like overkill, but I'm sure there's a perfectly rational explanation for it all.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first two declarations go into the app's ViewController.h file  (In our case, BeatBoxViewController.h)&lt;/div&gt;&lt;div&gt;The .h file contains a few little sections.&lt;/div&gt;&lt;div&gt;First there's the big horrible default remarked gubbins, which contains all the copyright stuff that you'd never have bothered to put there yourself.&lt;/div&gt;&lt;div&gt;Next, an import that imports UIKit.&lt;/div&gt;&lt;div&gt;After that comes a small bracketted :UIViewController { .. } section.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We'll call this part the in-bracket area.&lt;/div&gt;&lt;div&gt;After that there's a blank line before the end.&lt;/div&gt;&lt;div&gt;We'll call this "pre-end" part the under-bracket area.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In-bracket, we need to declare the variable, and what sort of variable it is.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;That makes sense.  img_DotsFull will be the name we'll use.  img_ (an image) Dots (name of image) and Full (this is the full spritesheet, not the cut up version)&lt;/div&gt;&lt;div&gt;UIImage is the variable type, it's an image, and it's part of the UI (or .. UI'ish!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Under-Bracket, we need to give the variable, a few rules.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    @property (nonatomic, retain) UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Bit more complex, that one!&lt;/div&gt;&lt;div&gt;We're telling UIImage img_DotsFull, that it's properties are NonAtomic, and Retain.&lt;/div&gt;&lt;div&gt;Retain suggests that it should be held in memory until we release it.  Garbage Collection is insanely complex on the iPhings, and tends to randomly start clearing anything up, if we haven't used it within the past half-a-second!  So, even though we're told the system to try and retain it, a slight memory issue might start throwing things away anyway!&lt;/div&gt;&lt;div&gt;No matter, for the meantime we'll assume that Retain does actually bother to retain things.. For the most part, it will.&lt;/div&gt;&lt;div&gt;nonatomic is all about Threads.  We won't really be dealing with threads, and I've not had any thread based issues, yet, but if things start to go weird, you might want to take some time looking into what this actually does.&lt;/div&gt;&lt;div&gt;I'm ignoring it.  Seems ok..  (!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, that's your first two declarations done.&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;#import &lt;uikit/uikit.h&gt;&lt;/uikit/uikit.h&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@interface BeatBoxViewController : UIViewController {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@property (nonatomic, retain) UIImage* img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;@end&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;.h is ready.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, hop on over to .m, (BeatBoxViewController.m) and we'll add another declaration!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, let's define our layout for this script.&lt;/div&gt;&lt;div&gt;Top = Silly remark stuff&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next is your declarations, including an import for the .h file we just tweaked.&lt;/div&gt;&lt;div&gt;We'll need to "Synthesize" anything we setup in the .h file (even though we just imported it!!) before we can use those variables. &lt;/div&gt;&lt;div&gt;We can also use this small area to declare any additional variables we'll be using along the way.  Things like Player position, timer ints, random strings, and whatever else we'll be needing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After the declaration section is a whole pile of commented out functions, that would deal with anything important, if we'd uncomment them.&lt;/div&gt;&lt;div&gt;We'll sort out function stuff in a bit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, let's add our third declaration.&lt;/div&gt;&lt;div&gt;Up top, in the declaration area, throw in the line..&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    @synthesize img_DotsFull;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This takes everything we've already told the system about img_DotsFull, and replicates it's functionality for us, right here, where we'll actually be using it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, head right to the bottom, and you'll see a dealloc function.&lt;/div&gt;&lt;div&gt;This gets called whenever the App is quit, and should be used to free up anything we've used.&lt;/div&gt;&lt;div&gt;Place a simple line in there, to remove our img_DotsFull.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'courier new';"&gt;    [img_DotsFull dealloc];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;That'll clear this one variable, but you'll have to remember to clear out everything else as we go, too.  Yikes!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, now that we've added the variable, let's load something into it.&lt;/div&gt;&lt;div&gt;First off uncomment the "viewDidLoad" function.  This is the function that gets called right off the bat, and we'll use this to initialise any variables, load in our graphics and everything else that needs doing before our program's first frame has appeared.&lt;/div&gt;&lt;div&gt;Uncomment the function, and place the following line into it.&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;    img_DotsFull=[UIImage imageNamed:@"Dots.png"];&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Nice and easy!  The image gets loaded, and placed into the variable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, we need to cut our spritesheet into 4 smaller sprites...&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3635889960612831884?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3635889960612831884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-1-beat-box.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3635889960612831884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3635889960612831884'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/08/tutorial-1-1-beat-box.html' title='Tutorial 1-1 : The Beat Box'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_iKJ5Y-ge1g8/TFYl_iWzzeI/AAAAAAAABqU/gAMmfiRIf8k/s72-c/Dots.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-5020651025506134244</id><published>2010-07-31T06:49:00.002+01:00</published><updated>2010-07-31T06:53:30.060+01:00</updated><title type='text'>Cardagain - Next</title><content type='html'>Only time will tell whether people jump on the Cardagain bandwagon, but in the meantime I'll be making my first set of updates.&lt;br /&gt;&lt;br /&gt;First up, I want to design a couple of extra deck's, so you get a little variety in the game.  I'm not sure if different decks will help your memory at all, but.. what the hey, it's worth a try, right?!&lt;br /&gt;&lt;br /&gt;Second, I'll probably make the cards appear more randomly, or at the very least, make it an option..  Gets a little boring looking at the same "circle-square-square-circle" starting point.&lt;br /&gt;&lt;br /&gt;Extra options mean a different frontend is in order, and I'll take the time to neaten up the edges a little, and tweak a few of the oddities in the game.&lt;br /&gt;&lt;br /&gt;Shouldn't take too long.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-5020651025506134244?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/5020651025506134244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/cardagain-next.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5020651025506134244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/5020651025506134244'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/cardagain-next.html' title='Cardagain - Next'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-1329644303936108376</id><published>2010-07-29T02:38:00.004+01:00</published><updated>2010-07-29T02:42:03.820+01:00</updated><title type='text'>Cardagain : Live!</title><content type='html'>Hurray!&lt;div&gt;After a stupid waiting session, my App got reviewed and (amazingly)  approved, all within the space of a single hour, according to the emails I received!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Awesome stuff!&lt;/div&gt;&lt;div&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sZQib2WgQ-w&amp;amp;hl=en_GB&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sZQib2WgQ-w&amp;amp;hl=en_GB&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cardagain is now available from the AppStore, &lt;a href="http://bit.ly/AGAW_App_Cardagain"&gt;right here&lt;/a&gt;, so go grab it and give yourself a nice little mental workout.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;... It's now way past my bedtime!&lt;/div&gt;&lt;div&gt;CULater guys.. Have fun!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-1329644303936108376?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/1329644303936108376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/cardagain-live.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/1329644303936108376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/1329644303936108376'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/cardagain-live.html' title='Cardagain : Live!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3899525822059616275</id><published>2010-07-27T14:55:00.003+01:00</published><updated>2010-07-27T15:03:49.784+01:00</updated><title type='text'>Taking far too long....</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TE7mCwENkxI/AAAAAAAABqM/7xY8b3Qusd8/s1600/ip_arcadeslot_001.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 170px; height: 320px;" src="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TE7mCwENkxI/AAAAAAAABqM/7xY8b3Qusd8/s320/ip_arcadeslot_001.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5498585130002649874" /&gt;&lt;/a&gt;&lt;br /&gt;Drawing these sprites took far too long..&lt;div&gt;Moving the sprites over to the iPod took far too long..&lt;/div&gt;&lt;div&gt;Making them swoosh about took far too long...&lt;/div&gt;&lt;div&gt;And then trying to take the screenshot took forever!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm sure the Mac used to ask me where I wanted to save my screenshots.. Now it just seems to throw them randomly around the harddrive!!&lt;/div&gt;&lt;div&gt;Then trying to cut the image out!&lt;/div&gt;&lt;div&gt;Geeze, what a chore.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm so glad I still have the PC, and the ability to just bring up PaintshopPro, do a tweak or two, then save images very very quickly!&lt;/div&gt;&lt;div&gt;Much easier.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One day, I'll be happy to use a Mac.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today is not that day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But hey, looky!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Incase you can't quite fathom what that's meant to be, perhaps the following youtube video will enlighten you.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vKcYomJ-hlU&amp;amp;hl=en_GB&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vKcYomJ-hlU&amp;amp;hl=en_GB&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Project #2 is currently Arcade Slots iPhing, a remake of the fantastic DS game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It makes a change from those rubbishy "Ooh, look at the fruit go round" slot machines that are incredibly dull and uninteresting, plus there's some nice interesting features when you get further into the game.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm not entirely sure what the credits system will be like, just yet, or how many games will be made, or even what I'm going to be doing instead of the blatent copyright infringement..&lt;/div&gt;&lt;div&gt;I'm sure I'll come up with something!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;Good thing I have an archive of over 200 games to pick from, really!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3899525822059616275?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3899525822059616275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/taking-far-too-long.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3899525822059616275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3899525822059616275'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/taking-far-too-long.html' title='Taking far too long....'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TE7mCwENkxI/AAAAAAAABqM/7xY8b3Qusd8/s72-c/ip_arcadeslot_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-851583880727199355</id><published>2010-07-27T10:41:00.002+01:00</published><updated>2010-07-27T10:49:58.665+01:00</updated><title type='text'>Appy Day!!!</title><content type='html'>Unfortunately, I don't mean 'Appy, as in "My App was Approved"&lt;div&gt;Still not even in review, yet.  *sigh*&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What I do mean, though, is that I'm kinda in a App-Making mood, and I feel I want to push on with a few experiments.&lt;/div&gt;&lt;div&gt;Nothing that says "This is my next game", because I'd rather be sure the first app gets approved, first, and also no Tutorial stuff because, again, need to know people can follow any of my teachings without being lead into a bleek  pit of dispair...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If I'm ever going to make any wordgames, I'm going to need to port over my massive Wordlist stuff to the iPod.&lt;/div&gt;&lt;div&gt;I might spend today faffing about with that, seeing if I can get it to work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otherwise, I'll probably just play about with some sprites, or something.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;*shrugs*&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;..  or I might fall asleep!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-851583880727199355?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/851583880727199355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/appy-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/851583880727199355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/851583880727199355'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/appy-day.html' title='Appy Day!!!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3355556388707248348</id><published>2010-07-23T10:03:00.003+01:00</published><updated>2010-07-23T10:06:47.135+01:00</updated><title type='text'>...Still Waiting...</title><content type='html'>If you've been watching the twitter updates, you'll know I'm still waiting.&lt;div&gt;(oops, haven't linked to my twitter, here, have I!  &lt;a href="http://twitter.com/Jayenkai"&gt;@Jayenkai&lt;/a&gt; I'll add it properly later.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Seems the whole "Flashlight" incident has slowed things down quite a bit.  Or maybe things do take this long, usually.&lt;/div&gt;&lt;div&gt;*shrugs*&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The status is exactly the same as it was yesterday.  No change.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll keep you updated as we go.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3355556388707248348?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3355556388707248348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/still-waiting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3355556388707248348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3355556388707248348'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/still-waiting.html' title='...Still Waiting...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-8867479161489430372</id><published>2010-07-22T10:29:00.004+01:00</published><updated>2010-07-22T10:34:39.389+01:00</updated><title type='text'>The Waiting Game</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEgQW-iviaI/AAAAAAAABqE/OxDx-P550es/s1600/waitinggame.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 143px;" src="http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEgQW-iviaI/AAAAAAAABqE/OxDx-P550es/s320/waitinggame.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5496661332137576866" /&gt;&lt;/a&gt;&lt;br /&gt;Until I get back an "Approved" status, I'm holding off on doing any more tutorials.&lt;div&gt;Sure, they were fun to do, but if folk follow my tutorials into a cataclysmic void of 1980's unapproved coding techniques, then they're going to be disappointed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll wait.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If Apple are fooled by my "Well, at least it works" methods, then I'll tutorialise a few bits and pieces.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Meanwhile I wait..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I wait for someone out there, in a mysterious lab somewhere, to be the fourth player of Cardagain, and then reject it with a great big red rubber stamp.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(They still use great big red rubber stamps, right?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-8867479161489430372?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/8867479161489430372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/waiting-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8867479161489430372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/8867479161489430372'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/waiting-game.html' title='The Waiting Game'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEgQW-iviaI/AAAAAAAABqE/OxDx-P550es/s72-c/waitinggame.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-6638484638012555616</id><published>2010-07-21T15:52:00.002+01:00</published><updated>2010-07-21T16:12:09.170+01:00</updated><title type='text'>Oh, FFS...</title><content type='html'>So, today's the day!&lt;div&gt;Or is it tomorrow..?&lt;/div&gt;&lt;div&gt;Or next year, at this rate..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today is, most likely, the most frustrating damn day I've ever had in my life.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At approximately 12:30, I opened up the Apple website, and clicked "iTunes Connect", where I'd finally be able to upload my app, for the very first time.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's now 15:53, and due to the site being screwed beyond a joke, I've still not uploaded my very first app, and I'm now about to leave the Mac, and go get ready for work.&lt;/div&gt;&lt;div&gt;I'm really really really ticked off about the whole damn experience.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cardagain should be on your iPod sometime in 2011.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Slightly later : Uploaded, now awaiting approval!&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-6638484638012555616?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/6638484638012555616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/oh-ffs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6638484638012555616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/6638484638012555616'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/oh-ffs.html' title='Oh, FFS...'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7565494085174686663.post-3745087343786341437</id><published>2010-07-20T23:35:00.004+01:00</published><updated>2010-07-20T23:52:17.918+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='waffle'/><title type='text'>Oooh, Hello!</title><content type='html'>I figured that having iPhing games constantly mushed in with AGameAWeek.com's weekly freeware games would all become crazy and chaotic, or thereabouts.&lt;div&gt;So, here's AGameAWeek iDev.&lt;/div&gt;&lt;div&gt;Pretty much the same deal, but most of my iPhing stuff gets posted over here, so the people who are visiting without iPhings don't have to constantly deal with all my rants and raves about the do's and don't's and can's and cannot's..&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or, something like that!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyhoo, a quick story so far.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. May, Jay bought a MacMini&lt;/div&gt;&lt;div&gt;2. June, Jay paid for his Dev Licence.&lt;/div&gt;&lt;div&gt;3. July, Jay go crazee trying to learn new-age coding styles, to get his first game going.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm an old-skool coder, brought up on hundreds of variations of Basic, from the Amstrad CPC's Locomotive, through Amiga's Amos, right up to PC's Blitz.&lt;/div&gt;&lt;div&gt;Having to learn "proper" coding has definitely been somewhat of a struggle!&lt;/div&gt;&lt;div&gt;But I'm getting there, slowly but surely!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the next few weeks (or sooner?!), I'm hoping to have my first game up in the App Store (&lt;a href="http://jayenkai.blogspot.com/p/cardagain.html"&gt;Cardagain&lt;/a&gt;), and if all that goes well, I'll start posting a nice little tutorial for anyone who's similarly struggling to make the Basic-&gt;Icky coding switch.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Shouldn't have to wait too long, the game's nearly done, hence the creation of this blog.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's all coming soon!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Right here!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;..&lt;/div&gt;&lt;div&gt;But, you know, not weekly!  The whole "AGameAWeek" has no chance of being done, at this rate!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7565494085174686663-3745087343786341437?l=jayenkai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jayenkai.blogspot.com/feeds/3745087343786341437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jayenkai.blogspot.com/2010/07/oooh-hello.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3745087343786341437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7565494085174686663/posts/default/3745087343786341437'/><link rel='alternate' type='text/html' href='http://jayenkai.blogspot.com/2010/07/oooh-hello.html' title='Oooh, Hello!'/><author><name>Jayenkai</name><uri>http://www.blogger.com/profile/17920498300387621327</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_iKJ5Y-ge1g8/TEYcSSHHX0I/AAAAAAAABpg/uv-6C3R-F6Y/S220/JPlat50x50.png'/></author><thr:total>1</thr:total></entry></feed>
