<?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-3617722755667983520</id><updated>2012-03-16T23:55:32.013-07:00</updated><category term='flash'/><category term='Actionscript 3'/><category term='javascript'/><title type='text'>Dan Bennett</title><subtitle type='html'>Digital media and interactive developer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://d-bennett.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3617722755667983520/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://d-bennett.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dan Bennett</name><uri>http://www.blogger.com/profile/14492157456259290605</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3617722755667983520.post-2473145640351330028</id><published>2011-01-18T13:47:00.000-08:00</published><updated>2011-01-22T07:43:30.427-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>My Javascript Experience</title><content type='html'>Since the explosion of HTML 5 JavaScript has started to interest me more and more, mostly because of the similarities it has with actionscript. Also since the introduction of the canvas tag it seemed to me that JavaScript's likeness to flash is greater than ever. HTML 5 has introduced a kind of stage to which we can refer and add objects, shapes, animations and interactions- the kind of thing flash developers like to do. That being said, now is a better time than any to start branching out and getting to grips with this new technology. So last week I had a go at some JavaScript.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.thedesigninc.co.uk/danbennett/index.html" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://1.bp.blogspot.com/_BB-cS_rdGd4/TTX_AZh8sGI/AAAAAAAAAAc/yiFOm9UK2t8/s320/arkenoid-game.png" width="219" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;click image to see game&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The example I created is an extremely simple arkenoid game. It's not exactly polished and only took me a few hours after work but am pleased with the outcome. I knew JavaScript was pretty similar to actionscript but that was about the extent of my knowledge and I was surprised how quickly I picked it up. I did come across some challenges ensuring cross browser compatibility (I'm still not sure if I managed to cover all bases) but aside from that I managed grasp the fundamentals fairly quickly.&lt;br /&gt;Anyway I learned a lot from those 270 lines of code and will definitely be carrying on with JavaScript development in the future.&lt;br /&gt;On a somewhat irritating side note, it's also kind of cool being able to view my work on my phone for once.&lt;br /&gt;&lt;a href="https://github.com/danbennett/JS-Arkenoid"&gt;Code is available at GitHub&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617722755667983520-2473145640351330028?l=d-bennett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://d-bennett.blogspot.com/feeds/2473145640351330028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://d-bennett.blogspot.com/2011/01/my-javascript-experience.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3617722755667983520/posts/default/2473145640351330028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3617722755667983520/posts/default/2473145640351330028'/><link rel='alternate' type='text/html' href='http://d-bennett.blogspot.com/2011/01/my-javascript-experience.html' title='My Javascript Experience'/><author><name>Dan Bennett</name><uri>http://www.blogger.com/profile/14492157456259290605</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BB-cS_rdGd4/TTX_AZh8sGI/AAAAAAAAAAc/yiFOm9UK2t8/s72-c/arkenoid-game.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3617722755667983520.post-1453548649596479583</id><published>2010-10-08T12:09:00.000-07:00</published><updated>2011-01-16T09:29:24.162-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='Actionscript 3'/><title type='text'>Random games &amp;&amp; perlin noise</title><content type='html'>Recently I’ve been experimenting with different types of random games;  generally small tile based stuff like the old classic phone game- snake.  I’m still in the process of finishing one (will post the source here  when I do) but generally I’ve enjoyed the process, especially the way  tiles are so predictable. You can test for certain conditions with tiles  as you know the player can only move or hit certain coordinates  constrained by the size of the tiles. Anyway after all this messing  about with squares I started playing with Flash’s perlin noise to  generate random shapes and got some interesting results. I really like  the fluidity you get from perlin noise which is in real contrast to the  games I have been experimenting with recently. Also these techniques can  be applied to make platform games to generate random levels.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_BB-cS_rdGd4/TK9sRmMhKkI/AAAAAAAAAAM/IZ4hpk-jY4w/s1600/perlinNoise.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://2.bp.blogspot.com/_BB-cS_rdGd4/TK9sRmMhKkI/AAAAAAAAAAM/IZ4hpk-jY4w/s320/perlinNoise.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In theory you can generate a block of random perlin noise by using a  random number to define the 'random seed' argument of the noise constructor. You can then take a  cross section (i.e. a row of pixels) from the block and, depending on  how bright or dark that pixel is, you can position your shape or line  according to the pixel’s value.&lt;br /&gt;The possibilities of this technique are endless.. (animating noise,  moving objects around depending on the pixels darkness etc) and I will  definitely be playing with noise some more in the future. For now I’ve  posted a quick example of how to use this process to create a random  platform landscape, quickly and cleanly.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:as3"&gt;package&amp;nbsp; &lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Shape;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Sprite;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Bitmap;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.BitmapData;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /**&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @author Dan Bennett&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* @email dan.bennett86@yahoo.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [SWF(width="900", height="700", backgroundColor="#ffffff")]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class PerlinNoisePlatform extends Sprite&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private static const BOX_WIDTH:int = 100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private static const BOX_HEIGHT:int = 100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private static const RANGE:int = 300;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private var xPos:Number = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private var darkness:Number = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public function PerlinNoisePlatform()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var noise:BitmapData = createNoise();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; drawPlatform(noise);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private function createNoise():BitmapData &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var randomSeed:int = Math.random() * 100;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var contents:BitmapData = new BitmapData(BOX_WIDTH, BOX_HEIGHT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; contents.perlinNoise(BOX_WIDTH, BOX_HEIGHT,6,randomSeed,false,false,7,true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return contents;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; private function drawPlatform(data:BitmapData):void &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // Pick a starting point to get our row of pixels&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var xStart:Number = Math.floor(Math.random() * BOX_WIDTH);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(var i:int = 0;i&amp;lt;BOX_HEIGHT;i++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var shape:Shape = new Shape();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shape.graphics.moveTo(xPos, darkness * RANGE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(i % 4 == 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.darkness = data.getPixel( xStart , i) / 0xFFFFFF;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.xPos+=10;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shape.graphics.lineStyle(1,0x000000);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shape.graphics.lineTo(xPos, darkness * RANGE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.addChild(shape);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3617722755667983520-1453548649596479583?l=d-bennett.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://d-bennett.blogspot.com/feeds/1453548649596479583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://d-bennett.blogspot.com/2010/10/random-games-perlin-noise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3617722755667983520/posts/default/1453548649596479583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3617722755667983520/posts/default/1453548649596479583'/><link rel='alternate' type='text/html' href='http://d-bennett.blogspot.com/2010/10/random-games-perlin-noise.html' title='Random games &amp;&amp; perlin noise'/><author><name>Dan Bennett</name><uri>http://www.blogger.com/profile/14492157456259290605</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BB-cS_rdGd4/TK9sRmMhKkI/AAAAAAAAAAM/IZ4hpk-jY4w/s72-c/perlinNoise.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
