{"id":52,"date":"2008-01-30T13:12:27","date_gmt":"2008-01-30T12:12:27","guid":{"rendered":"http:\/\/www.crydust.be\/blog\/2008\/01\/30\/pong05k-a-game-in-510bytes\/"},"modified":"2008-08-26T14:40:17","modified_gmt":"2008-08-26T12:40:17","slug":"pong05k-a-game-in-510bytes","status":"publish","type":"post","link":"http:\/\/www.crydust.be\/blog\/2008\/01\/30\/pong05k-a-game-in-510bytes\/","title":{"rendered":"pong0.5k, a game in 510bytes"},"content":{"rendered":"<p>Mr.doob created a 1k pong game in as3. Which made my fingers itch to do better. So here it is, in as2, less than half the filesize and the same functionality.<\/p>\n<p><!--more--><\/p>\n<div id=\"pong0_5k\"><\/div>\n<p><script type=\"text\/javascript\">\nvar so = new SWFObject(\"http:\/\/www.crydust.be\/blog\/wp-content\/uploads\/pong0_5k.swf\", \"pong0_5k_swf\", \"450\", \"256\", \"6\", \"#000000\");\nso.write(\"pong0_5k\");\n<\/script><\/p>\n<pre class=\"prettyprint\">\r\n\/\/\r\n\/\/ Pong.5k (510 bytes game)\r\n\/\/ by Kristof Neirynck\r\n\/\/\r\n\/\/ inspired by monoPong-1k and mrdoob\r\n\/\/ <a href=\"http:\/\/pouet.net\/prod.php?which=48976\">http:\/\/pouet.net\/prod.php?which=48976<\/a>\r\n\/\/ <a href=\"http:\/\/mrdoob.com\/blog\/post\/485\/\">http:\/\/mrdoob.com\/blog\/post\/485\/<\/a>\r\n\/\/\r\nStage.align = &quot;TL&quot;;\r\nStage.scaleMode = &quot;noScale&quot;;\r\n\r\n\/\/ making 10 a variable to shave off some bytes\r\nvar t:Number = 10;\r\n\r\n\/\/ speed\r\nvar vx:Number = -t;\r\nvar vy:Number = t;\r\n\r\n\/\/ player 1\r\nvar p:MovieClip = createEmptyMovieClip(&quot;p&quot;, 1);\r\n\r\n\/\/ player 2\r\nvar q:MovieClip = createEmptyMovieClip(&quot;q&quot;, 2);\r\n\r\n\/\/ ball\r\nvar b:MovieClip = createEmptyMovieClip(&quot;b&quot;, 3);\r\n\r\n\/\/ drawing the squares\r\nd(p,20,40);\r\nd(q,20,40);\r\nd(b,t,t);\r\n\r\n\/\/ magic loop\r\nfunction onEnterFrame() {\r\n  b._x += vx;\r\n  b._y += vy;\r\n\r\n  q._x = Stage.width;\r\n\r\n  p._y = _ymouse;\r\n  q._y = Stage.height-_ymouse;\r\n\r\n  \/\/ bounce top or bottom border\r\n  if (b._y&lt;t || b._y&gt;Stage.height-t) {\r\n    vy = -vy;\r\n  }\r\n  \/\/ bounce player1 or left border\r\n  \/\/ or player 2 or right border  \r\n  if ((b.hitTest(p) &amp;&amp; b._x&gt;20) \r\n  || (b.hitTest(q) &amp;&amp; b._x&lt;Stage.width-20)) {\r\n    vx = -vx;\r\n  }\r\n  \/\/ someone scored\r\n  if (-t&gt;b._x || b._x&gt;Stage.width+t) {\r\n    b._x = Stage.width*0.5;\r\n    b._y = Stage.height*0.5;\r\n    vx = -vx;\r\n  }\r\n};\r\n\r\n\/\/ square drawing function\r\nfunction d(m:MovieClip, w:Number, h:Number):Void {\r\n  \/\/w and h are already \/ 2\r\n  \/\/w \/= 2;\r\n  \/\/h \/= 2;\r\n  m.beginFill(0xFFFFFF);\r\n  m.moveTo(-w,-h);\r\n  m.lineTo(w,-h);\r\n  m.lineTo(w,h);\r\n  m.lineTo(-w,h);\r\n  \/\/not needed\r\n  \/\/m.lineTo(-w,-h);\r\n  \/\/m.endFill();\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Mr.doob created a 1k pong game in as3. Which made my fingers itch to do better. So here it is, in as2, less than half the filesize and the same functionality.<\/p>\n<div id=\"pong0_5k\"><\/div>\n<p><script type=\"text\/javascript\">\nvar so = new SWFObject(\"http:\/\/www.crydust.be\/blog\/wp-content\/uploads\/pong0_5k.swf\", \"pong0_5k_swf\", \"450\", \"256\", \"6\", \"#000000\");\nso.write(\"pong0_5k\");\n<\/script> <a href=\"http:\/\/www.crydust.be\/blog\/2008\/01\/30\/pong05k-a-game-in-510bytes\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-52","post","type-post","status-publish","format-standard","hentry","category-flash"],"_links":{"self":[{"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts\/52","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/comments?post=52"}],"version-history":[{"count":0,"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts\/52\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/media?parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/categories?post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/tags?post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}