<?xml version="1.0" encoding="UTF-8"?>
<posts type="array">
  <post>
    <body>Mochi's got a system (tied to their microtransaction API but microtransactions aren't required to use it) that allows you to save up to 4k of data per person.  Documentation is &lt;a href=&quot;https://www.mochimedia.com/support/dev_docs#coins_userproperties&quot;&gt;here&lt;/a&gt;.

As a caveat, Kongregate disallows games using Mochi's microtransaction system (as it competes with their own Kreds system).  Hopefully, that doesn't apply to a game that's using Mochi's API just for the save state and not for microtransactions.</body>
    <body-html>&lt;p&gt;Mochi&amp;#8217;s got a system (tied to their microtransaction &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; but microtransactions aren&amp;#8217;t required to use it) that allows you to save up to 4k of data per person.  Documentation is &lt;a href=&quot;https://www.mochimedia.com/support/dev_docs#coins_userproperties&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As a caveat, Kongregate disallows games using Mochi&amp;#8217;s microtransaction system (as it competes with their own Kreds system).  Hopefully, that doesn&amp;#8217;t apply to a game that&amp;#8217;s using Mochi&amp;#8217;s &lt;span class=&quot;caps&quot;&gt;API&lt;/span&gt; just for the save state and not for microtransactions.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-10-04T11:04:24-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1345217</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">59273</topic-id>
    <updated-at type="datetime">2009-10-04T11:04:24-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/59218?page=1#posts-1342546'&gt;BillysGames&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;There needs to be a sort option that&amp;#8217;s &amp;#8220;new&amp;#8221; subsorted by &amp;#8220;top rated&amp;#8221;, because the 3 items in &amp;#8220;hot new games&amp;#8221; don&amp;#8217;t cut it&lt;/p&gt;&lt;/blockquote&gt;

If you go to highest rated games (instead of new games), click on Date Uploaded, and click on Date Uploaded again (to reverse the sort), it'll give you a list of new games with decent ratings.

&lt;a href=&quot;http://www.kongregate.com/popular_games?reverse=true&amp;sort=date&quot;&gt;Direct link&lt;/a&gt;</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/59218?page=1#posts-1342546&quot;&gt;BillysGames&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;There needs to be a sort option that&amp;#8217;s &amp;#8220;new&amp;#8221; subsorted by &amp;#8220;top rated&amp;#8221;, because the 3 items in &amp;#8220;hot new games&amp;#8221; don&amp;#8217;t cut it&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If you go to highest rated games (instead of new games), click on Date Uploaded, and click on Date Uploaded again (to reverse the sort), it&amp;#8217;ll give you a list of new games with decent ratings.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.kongregate.com/popular_games?reverse=true&amp;amp;sort=date&quot;&gt;Direct link&lt;/a&gt;&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-10-03T16:53:01-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1343682</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">59218</topic-id>
    <updated-at type="datetime">2009-10-03T16:53:59-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>I don't think that's quite right, skyboy.

For example, if the piece is dropped as x = 0 and y = 210 (which is obviously no where near the target zone of x = 125, y = 85), it'll still make it snap since Math.abs(0 - 125 + 210 - 85) is equal to 0, which is &lt;= 30.

Instead, you'll want to use a distance formula.  (Wikipedia reference: &lt;a href=&quot;http://en.wikipedia.org/wiki/Distance#Geometry&quot;&gt;Distance: Geometery [specifically the second formula]&lt;/a&gt;)

In short, the distance is equal to the square root of (x1 - x2) squared plus (y1 - y2) squared.  In this case, x1 and y1 are the object's actual location and x2 and y2 represent the 125, 85 point that we want to snap to.

So the if statement should actually look something like this:

&lt;pre&gt;
if ((_x - 125) * (_x - 125) + (_y - 85) * (_y - 85) &lt;= 900) {
  _x = 125.0;
  _y = 85.0;
}
&lt;/pre&gt;</body>
    <body-html>&lt;p&gt;I don&amp;#8217;t think that&amp;#8217;s quite right, skyboy.&lt;/p&gt;
&lt;p&gt;For example, if the piece is dropped as x = 0 and y = 210 (which is obviously no where near the target zone of x = 125, y = 85), it&amp;#8217;ll still make it snap since Math.abs(0 &amp;#8211; 125 + 210 &amp;#8211; 85) is equal to 0, which is &amp;lt;= 30.&lt;/p&gt;
&lt;p&gt;Instead, you&amp;#8217;ll want to use a distance formula.  (Wikipedia reference: &lt;a href=&quot;http://en.wikipedia.org/wiki/Distance#Geometry&quot;&gt;Distance: Geometery [specifically the second formula]&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;In short, the distance is equal to the square root of (x1 &amp;#8211; x2) squared plus (y1 &amp;#8211; y2) squared.  In this case, x1 and y1 are the object&amp;#8217;s actual location and x2 and y2 represent the 125, 85 point that we want to snap to.&lt;/p&gt;
&lt;p&gt;So the if statement should actually look something like this:&lt;/p&gt;
&lt;pre&gt;
if ((_x - 125) * (_x - 125) + (_y - 85) * (_y - 85) &amp;lt;= 900) {
  _x = 125.0;
  _y = 85.0;
}
&lt;/pre&gt;</body-html>
    <created-at type="datetime">2009-09-09T08:03:40-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1284728</id>
    <post-number type="integer">3</post-number>
    <topic-id type="integer">56391</topic-id>
    <updated-at type="datetime">2009-09-17T04:18:58-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>Personally, I'd go with:

&lt;pre&gt;
allLevelEnemies = [
  [Enemy1A],
  [Enemy1A,Enemy1B],
  [Enemy1B,Enemy1C],
  [Enemy1A,Enemy1B,Enemy1C],
  [Enemy1C,Enemy1D],

  [Enemy1A,Enemy1B,Enemy1C,Enemy1D],
  [Enemy1D],
  [Enemy2A],
  [Enemy2A,Enemy2B],
  [Enemy2B,Enemy2C],

  [Enemy2A,Enemy2B,Enemy2C],
  [Enemy2A,Enemy2A,Enemy2A,Enemy2Boss],
  [Enemy2A,Enemy2A,Enemy2B,Enemy2C,Enemy2Boss],
  [Enemy2Boss],
  [Enemy1A,Enemy2A],

  [Enemy1B,Enemy2B],
  [Enemy1C,Enemy2C],
  [Enemy1D,Enemy2Boss]
];
&lt;/pre&gt;

Throwing in a blank line every 5 levels should make it easy enough to keep track of what's what for most cases.  If it gets too big, you can always add comments with the level numbers.</body>
    <body-html>&lt;p&gt;Personally, I&amp;#8217;d go with:&lt;/p&gt;
&lt;pre&gt;
allLevelEnemies = [
  [Enemy1A],
  [Enemy1A,Enemy1B],
  [Enemy1B,Enemy1C],
  [Enemy1A,Enemy1B,Enemy1C],
  [Enemy1C,Enemy1D],

  [Enemy1A,Enemy1B,Enemy1C,Enemy1D],
  [Enemy1D],
  [Enemy2A],
  [Enemy2A,Enemy2B],
  [Enemy2B,Enemy2C],

  [Enemy2A,Enemy2B,Enemy2C],
  [Enemy2A,Enemy2A,Enemy2A,Enemy2Boss],
  [Enemy2A,Enemy2A,Enemy2B,Enemy2C,Enemy2Boss],
  [Enemy2Boss],
  [Enemy1A,Enemy2A],

  [Enemy1B,Enemy2B],
  [Enemy1C,Enemy2C],
  [Enemy1D,Enemy2Boss]
];
&lt;/pre&gt;
&lt;p&gt;Throwing in a blank line every 5 levels should make it easy enough to keep track of what&amp;#8217;s what for most cases.  If it gets too big, you can always add comments with the level numbers.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-09-04T13:02:42-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1269137</id>
    <post-number type="integer">9</post-number>
    <topic-id type="integer">55805</topic-id>
    <updated-at type="datetime">2009-09-17T04:15:19-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>You can use Key.isDown in AS3 if you code up your own Key class that registers keyboard listeners and keeps track of what's pressed.

Here's Senocular's version: &quot;Key.isDown in AS3&quot;:http://www.kirupa.com/forum/showthread.php?p=2098269#post2098269</body>
    <body-html>&lt;p&gt;You can use Key.isDown in AS3 if you code up your own Key class that registers keyboard listeners and keeps track of what&amp;#8217;s pressed.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s Senocular&amp;#8217;s version: &lt;a href=&quot;http://www.kirupa.com/forum/showthread.php?p=2098269#post2098269&quot;&gt;Key.isDown in AS3&lt;/a&gt;&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-20T19:42:53-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1219327</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">53917</topic-id>
    <updated-at type="datetime">2009-09-17T04:04:34-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/53411?page=1#posts-1206032'&gt;Blank_64&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;
&lt;p&gt;for (i = 1; i == 10; i ++){&lt;br /&gt;
trace(&amp;#8220;ErlendHL is wrong&amp;#8221;)&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;

No.  He's right.  A for-loop runs as long as the conditional (the part in-between the two semicolons) is true.  Since the for-loop initializes i to 1, i == 10 is going to evaluate to false, and the loop isn't going to execute at all.

Here's a loop that will output 1 through 9:
&lt;pre&gt;
for (i=1; i&lt;10; ++i) {
  trace(i);
}
&lt;/pre&gt;</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/53411?page=1#posts-1206032&quot;&gt;Blank_64&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;br /&gt;
&lt;p&gt;for (i = 1; i == 10; i ++){&lt;br /&gt;&lt;br /&gt;
trace(&amp;#8220;ErlendHL is wrong&amp;#8221;)&lt;br /&gt;&lt;br /&gt;
}&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;No.  He&amp;#8217;s right.  A for-loop runs as long as the conditional (the part in-between the two semicolons) is true.  Since the for-loop initializes i to 1, i == 10 is going to evaluate to false, and the loop isn&amp;#8217;t going to execute at all.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a loop that will output 1 through 9:&lt;br /&gt;
&lt;pre&gt;&lt;br /&gt;
for (i=1; i&amp;lt;10; ++i) {&lt;br /&gt;
  trace(i);&lt;br /&gt;
}&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-17T12:51:52-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1206121</id>
    <post-number type="integer">11</post-number>
    <topic-id type="integer">53411</topic-id>
    <updated-at type="datetime">2009-09-17T04:01:53-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/52628?page=1#posts-1183645'&gt;Zuriki&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;I&amp;#8217;m not sure of the specifics, but there was an application called fox-something or other&amp;#8230; (memory is going) which you could use as a server for flash.&lt;/p&gt;&lt;/blockquote&gt;

I believe you're thinking of &lt;a href=&quot;http://www.smartfoxserver.com/&quot;&gt;SmartFoxServer&lt;/a&gt;.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/52628?page=1#posts-1183645&quot;&gt;Zuriki&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;I&amp;#8217;m not sure of the specifics, but there was an application called fox-something or other&amp;#8230; (memory is going) which you could use as a server for flash.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I believe you&amp;#8217;re thinking of &lt;a href=&quot;http://www.smartfoxserver.com/&quot;&gt;SmartFoxServer&lt;/a&gt;.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-11T17:27:14-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1184301</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">52628</topic-id>
    <updated-at type="datetime">2009-09-17T03:57:47-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>Sponsorships.  Basically, before you release a game, someone pays you to make sure it includes their logo at the beginning.  &lt;a href=&quot;http://www.flashgamelicense.com/&quot;&gt;Flash Game License&lt;/a&gt; is the place to go for more info.</body>
    <body-html>&lt;p&gt;Sponsorships.  Basically, before you release a game, someone pays you to make sure it includes their logo at the beginning.  &lt;a href=&quot;http://www.flashgamelicense.com/&quot;&gt;Flash Game License&lt;/a&gt; is the place to go for more info.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-09T10:09:39-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1175528</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">52325</topic-id>
    <updated-at type="datetime">2009-09-17T03:56:11-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/51644?page=2#posts-1162884'&gt;bLasTamos&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;Or you could have a NullTrigger class extending trigger.&lt;/p&gt;&lt;/blockquote&gt;

Now that's interesting.  I'm not sure I'm sold on it, but I do find it interesting.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/51644?page=2#posts-1162884&quot;&gt;bLasTamos&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;Or you could have a NullTrigger class extending trigger.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now that&amp;#8217;s interesting.  I&amp;#8217;m not sure I&amp;#8217;m sold on it, but I do find it interesting.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-05T08:50:08-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1163066</id>
    <post-number type="integer">42</post-number>
    <topic-id type="integer">51644</topic-id>
    <updated-at type="datetime">2009-09-17T03:52:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>I think you're assuming too much about where the pointers are being used.  You seem to be imagining something like, say, a call to &quot;damageEnemy(enemy, 5);&quot; where it obviously makes sense to validate that enemy's a valid pointer before doing something else.  If it's not an error, there's nothing to do (and the code should probably throw a warning or error to aid in debugging since something elsewhere is probably broken).

However, let's say you've got a Tile class that represents a single screen tile in a standard Mario clone.  Now let's further say that each tile on the screen may have a scriptable trigger associated with it (for triggering cutscenes or spawning certain monsters), but it doesn't necessarily have to have a trigger.  So each instance of Tile will have a pointer to a Trigger class, but that pointer is often null.

Now if you're checking the trigger on a tile, it doesn't make sense to validate beforehand (since null is still a valid value), and it doesn't mean you're a bad programmer.  The alternative would be to have a redundant &quot;hasTrigger&quot; boolean in the Tile class which is true iff trigger is non-null, and that would be silly.

Anyway, under the trigger system, imagine a method on the Tile object that gets invoked when the player's object enters that tile:

&lt;pre&gt;
public function onPlayerEnter():void {
  // For the sake of argument, assume there's some other non-trigger-related code here
  // that needs to be run every time the player enters a tile.
  if (this.trigger &amp;&amp; this.trigger.playerCanTrigger) {
    this.trigger.activate();
  }
}
&lt;/pre&gt;

(playerCanTrigger would obviously be a boolean indicating that the player can trigger the triggerable event.  That'd be part of a flexible trigger system where some triggers are triggered only by enemies or other non-player entities.)

In short, not every mid-stream pointer check is indicative of poor coding.  Sometimes that's when it makes sense to check it.</body>
    <body-html>&lt;p&gt;I think you&amp;#8217;re assuming too much about where the pointers are being used.  You seem to be imagining something like, say, a call to &amp;#8220;damageEnemy(enemy, 5);&amp;#8221; where it obviously makes sense to validate that enemy&amp;#8217;s a valid pointer before doing something else.  If it&amp;#8217;s not an error, there&amp;#8217;s nothing to do (and the code should probably throw a warning or error to aid in debugging since something elsewhere is probably broken).&lt;/p&gt;
&lt;p&gt;However, let&amp;#8217;s say you&amp;#8217;ve got a Tile class that represents a single screen tile in a standard Mario clone.  Now let&amp;#8217;s further say that each tile on the screen may have a scriptable trigger associated with it (for triggering cutscenes or spawning certain monsters), but it doesn&amp;#8217;t necessarily have to have a trigger.  So each instance of Tile will have a pointer to a Trigger class, but that pointer is often null.&lt;/p&gt;
&lt;p&gt;Now if you&amp;#8217;re checking the trigger on a tile, it doesn&amp;#8217;t make sense to validate beforehand (since null is still a valid value), and it doesn&amp;#8217;t mean you&amp;#8217;re a bad programmer.  The alternative would be to have a redundant &amp;#8220;hasTrigger&amp;#8221; boolean in the Tile class which is true iff trigger is non-null, and that would be silly.&lt;/p&gt;
&lt;p&gt;Anyway, under the trigger system, imagine a method on the Tile object that gets invoked when the player&amp;#8217;s object enters that tile:&lt;/p&gt;
&lt;pre&gt;
public function onPlayerEnter():void {
  // For the sake of argument, assume there's some other non-trigger-related code here
  // that needs to be run every time the player enters a tile.
  if (this.trigger &amp;amp;&amp;amp; this.trigger.playerCanTrigger) {
    this.trigger.activate();
  }
}
&lt;/pre&gt;
&lt;p&gt;(playerCanTrigger would obviously be a boolean indicating that the player can trigger the triggerable event.  That&amp;#8217;d be part of a flexible trigger system where some triggers are triggered only by enemies or other non-player entities.)&lt;/p&gt;
&lt;p&gt;In short, not every mid-stream pointer check is indicative of poor coding.  Sometimes that&amp;#8217;s when it makes sense to check it.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-05T06:44:22-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1162779</id>
    <post-number type="integer">40</post-number>
    <topic-id type="integer">51644</topic-id>
    <updated-at type="datetime">2009-09-17T03:52:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/51644?page=2#posts-1161447'&gt;Jabor&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;Even in C, it&amp;#8217;s considered bad practice to check, for example, &lt;code&gt;if(!ptr)&lt;/code&gt;. The explicit alternative (&lt;code&gt;if(ptr == NULL)&lt;/code&gt;) is much preferred.&lt;/p&gt;&lt;/blockquote&gt;

That's not too bad if you're just checking whether or not the pointer's NULL.  But all too often, you'll want to check the pointer so you can also dereference it: &lt;code&gt;if (ptr &amp;&amp; ptr-&gt;val &gt; 5)&lt;/code&gt;

Those extra &quot;== NULL&quot; and &quot;!= NULL&quot; statements are just extra syntax for the programmer to parse, and it's silly when NULLs are just so intuitively false, and that happens to be how the compiler sees them, too.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/51644?page=2#posts-1161447&quot;&gt;Jabor&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;Even in C, it&amp;#8217;s considered bad practice to check, for example, &lt;code&gt;if(!ptr)&lt;/code&gt;. The explicit alternative (&lt;code&gt;if(ptr == NULL)&lt;/code&gt;) is much preferred.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;That&amp;#8217;s not too bad if you&amp;#8217;re just checking whether or not the pointer&amp;#8217;s &lt;span class=&quot;caps&quot;&gt;NULL&lt;/span&gt;.  But all too often, you&amp;#8217;ll want to check the pointer so you can also dereference it: &lt;code&gt;if (ptr &amp;amp;&amp;amp; ptr-&amp;gt;val &amp;gt; 5)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Those extra &amp;#8220;== &lt;span class=&quot;caps&quot;&gt;NULL&lt;/span&gt;&amp;#8221; and &amp;#8220;!= &lt;span class=&quot;caps&quot;&gt;NULL&lt;/span&gt;&amp;#8221; statements are just extra syntax for the programmer to parse, and it&amp;#8217;s silly when NULLs are just so intuitively false, and that happens to be how the compiler sees them, too.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-04T19:48:35-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1161817</id>
    <post-number type="integer">38</post-number>
    <topic-id type="integer">51644</topic-id>
    <updated-at type="datetime">2009-09-17T03:52:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/51644?page=2#posts-1159894'&gt;bLasTamos&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;And i could also be &amp;#8220;false&amp;#8221; in the following cases:&lt;br /&gt;
- The array has the boolean element &amp;#8220;false&amp;#8221; in that index&lt;br /&gt;
- The array has the number &amp;#8220;0&amp;#8221; in that index&lt;/p&gt;
&lt;p&gt;Please always use boolean expressions inside the if condition.&lt;br /&gt;
Thank you.&lt;/p&gt;&lt;/blockquote&gt;

Please don't stick booleans and numbers in the Enemy array.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/51644?page=2#posts-1159894&quot;&gt;bLasTamos&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;And i could also be &amp;#8220;false&amp;#8221; in the following cases:&lt;br /&gt;&lt;br /&gt;
- The array has the boolean element &amp;#8220;false&amp;#8221; in that index&lt;br /&gt;&lt;br /&gt;
- The array has the number &amp;#8220;0&amp;#8221; in that index&lt;/p&gt;
&lt;p&gt;Please always use boolean expressions inside the if condition.&lt;br /&gt;&lt;br /&gt;
Thank you.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Please don&amp;#8217;t stick booleans and numbers in the Enemy array.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-08-04T10:47:10-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1159921</id>
    <post-number type="integer">33</post-number>
    <topic-id type="integer">51644</topic-id>
    <updated-at type="datetime">2009-09-17T03:52:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/51644?page=1#posts-1158612'&gt;Jabor&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;blockquote&gt;
&lt;p&gt;if (!Arr[i])&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As far as the &amp;#8220;bad practice&amp;#8221; goes, this one fits the bill.&lt;/p&gt;
&lt;p&gt;Generally, you should make non-boolean comparisons explicit.&lt;/p&gt;&lt;/blockquote&gt;

In some cases, yes.  In this case, I disagree.  Conflating null and false and using that to simplify conditionals is a widely used and easily understood idiom.  In this case, &quot;If not Arr element i&quot; makes sense -- the pseudo-English translation of the code maps exactly to what the programmer intended.

Now an actual bad example would be a case where the zero value doesn't mentally map to false.  For example:

&lt;pre&gt;
  someStr = &quot;foobar&quot;;
  if (! someStr.indexOf(&quot;foo&quot;)) { // BAD!
    trace(&quot;someStr begins with foo&quot;);
  }
  if (someStr.indexOf(&quot;foo&quot;) == 0) { // Good.
    trace(&quot;someStr begins with foo&quot;);
  }
  if (someStr) { // Also good, IMO.
    trace(&quot;someStr has some sort of a value&quot;);
  }
&lt;/pre&gt;</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/51644?page=1#posts-1158612&quot;&gt;Jabor&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;blockquote&gt;&lt;br /&gt;
&lt;p&gt;if (!Arr[i])&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As far as the &amp;#8220;bad practice&amp;#8221; goes, this one fits the bill.&lt;/p&gt;
&lt;p&gt;Generally, you should make non-boolean comparisons explicit.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In some cases, yes.  In this case, I disagree.  Conflating null and false and using that to simplify conditionals is a widely used and easily understood idiom.  In this case, &amp;#8220;If not Arr element i&amp;#8221; makes sense &amp;#8212; the pseudo-English translation of the code maps exactly to what the programmer intended.&lt;/p&gt;
&lt;p&gt;Now an actual bad example would be a case where the zero value doesn&amp;#8217;t mentally map to false.  For example:&lt;/p&gt;
&lt;pre&gt;
  someStr = &quot;foobar&quot;;
  if (! someStr.indexOf(&quot;foo&quot;)) { // BAD!
    trace(&quot;someStr begins with foo&quot;);
  }
  if (someStr.indexOf(&quot;foo&quot;) == 0) { // Good.
    trace(&quot;someStr begins with foo&quot;);
  }
  if (someStr) { // Also good, IMO.
    trace(&quot;someStr has some sort of a value&quot;);
  }
&lt;/pre&gt;</body-html>
    <created-at type="datetime">2009-08-04T08:31:53-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1159650</id>
    <post-number type="integer">28</post-number>
    <topic-id type="integer">51644</topic-id>
    <updated-at type="datetime">2009-09-17T03:52:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>DTran, games with the Mochi preloader will work fine on Kongregate.  It's just that the ads will automatically be suppressed while it's hosted here -- the ad blocking is done by Mochi themselves due to a special agreement with Kongregate, so it's guaranteed not to break anything.

Even better is that if another site copies your game from Kongregate, the ads will start showing up.  Since you get revenue sharing when your game is played on Kongregate, and you get Mochi ad revenue when your game is played on another site, it's an all-around win.

Also, with Mochi ads, you should consider it bonus money rather than your main source of income.  Your best revenue opportunities will come from sponsorships and site licenses.  The chief advantage of Mochi is that it can often coexist with other means of making money, so there's no downside / trade-off.</body>
    <body-html>&lt;p&gt;DTran, games with the Mochi preloader will work fine on Kongregate.  It&amp;#8217;s just that the ads will automatically be suppressed while it&amp;#8217;s hosted here &amp;#8212; the ad blocking is done by Mochi themselves due to a special agreement with Kongregate, so it&amp;#8217;s guaranteed not to break anything.&lt;/p&gt;
&lt;p&gt;Even better is that if another site copies your game from Kongregate, the ads will start showing up.  Since you get revenue sharing when your game is played on Kongregate, and you get Mochi ad revenue when your game is played on another site, it&amp;#8217;s an all-around win.&lt;/p&gt;
&lt;p&gt;Also, with Mochi ads, you should consider it bonus money rather than your main source of income.  Your best revenue opportunities will come from sponsorships and site licenses.  The chief advantage of Mochi is that it can often coexist with other means of making money, so there&amp;#8217;s no downside / trade-off.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-07-10T12:29:47-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">1079844</id>
    <post-number type="integer">24</post-number>
    <topic-id type="integer">28189</topic-id>
    <updated-at type="datetime">2009-09-17T01:32:31-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>Math.round rounds a number to the nearest integer.  That's close to what you want, but it doesn't give you the precision you want (since you still want one or two places after the decimal).  However, if you multiple your number by 10 or 100, feed it to Math.round, and then divide the result by 10 or 100, it should give you exactly what you want:

xMin = Math.round(xMin*100) / 100;   /* Rounds to two decimal places */</body>
    <body-html>&lt;p&gt;Math.round rounds a number to the nearest integer.  That&amp;#8217;s close to what you want, but it doesn&amp;#8217;t give you the precision you want (since you still want one or two places after the decimal).  However, if you multiple your number by 10 or 100, feed it to Math.round, and then divide the result by 10 or 100, it should give you exactly what you want:&lt;/p&gt;
&lt;p&gt;xMin = Math.round(xMin*100) / 100;   /* Rounds to two decimal places */&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-06-09T07:26:33-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">991417</id>
    <post-number type="integer">2</post-number>
    <topic-id type="integer">45518</topic-id>
    <updated-at type="datetime">2009-09-17T03:17:54-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&quot;FlashDevelop.&quot;:http://www.flashdevelop.org/community/viewforum.php?f=11

Click on the latest release.  Be sure to read all the stuff at the bottom in the &quot;Important&quot; section -- that points you to other software you need to download to make it work.  In particular, you need Adobe's free Flex SDK (which includes the compiler that does the real work of building SWFs).

There's also a big caveat: FlashDevelop is based around compiling AS3 directly into a SWF.  You don't have the nice GUI tools like Flash users have.  However, since it's completely free, it's hard to beat the price.</body>
    <body-html>&lt;p&gt;&lt;a href=&quot;http://www.flashdevelop.org/community/viewforum.php?f=11&quot;&gt;FlashDevelop.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Click on the latest release.  Be sure to read all the stuff at the bottom in the &amp;#8220;Important&amp;#8221; section &amp;#8212; that points you to other software you need to download to make it work.  In particular, you need Adobe&amp;#8217;s free Flex &lt;span class=&quot;caps&quot;&gt;SDK&lt;/span&gt; (which includes the compiler that does the real work of building SWFs).&lt;/p&gt;
&lt;p&gt;There&amp;#8217;s also a big caveat: FlashDevelop is based around compiling AS3 directly into a &lt;span class=&quot;caps&quot;&gt;SWF&lt;/span&gt;.  You don&amp;#8217;t have the nice &lt;span class=&quot;caps&quot;&gt;GUI&lt;/span&gt; tools like Flash users have.  However, since it&amp;#8217;s completely free, it&amp;#8217;s hard to beat the price.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-04-27T06:27:02-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">883051</id>
    <post-number type="integer">3</post-number>
    <topic-id type="integer">41428</topic-id>
    <updated-at type="datetime">2009-09-17T02:52:43-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/40832?page=1#posts-867592'&gt;thijser&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;and i would also rather start out free so what program is best if i want to have something free ?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;

&quot;FlashDevelop&quot;:http://www.flashdevelop.org/ (Windows only) is your best bet.  It uses the free Flex SDK to compile AS3 code into a SWF.  Click on the download link at the top of the page, pick the latest version from the list, and be sure to check out the other components it tells you to download (such as the Flex SDK and standalone Flash player).</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/40832?page=1#posts-867592&quot;&gt;thijser&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;and i would also rather start out free so what program is best if i want to have something free ?&lt;/p&gt;&lt;p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flashdevelop.org/&quot;&gt;FlashDevelop&lt;/a&gt; (Windows only) is your best bet.  It uses the free Flex &lt;span class=&quot;caps&quot;&gt;SDK&lt;/span&gt; to compile AS3 code into a &lt;span class=&quot;caps&quot;&gt;SWF&lt;/span&gt;.  Click on the download link at the top of the page, pick the latest version from the list, and be sure to check out the other components it tells you to download (such as the Flex &lt;span class=&quot;caps&quot;&gt;SDK&lt;/span&gt; and standalone Flash player).&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-04-21T18:40:05-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">869301</id>
    <post-number type="integer">8</post-number>
    <topic-id type="integer">40832</topic-id>
    <updated-at type="datetime">2009-09-17T02:49:41-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>A FlashDevelop project isn't like a .FLA -- it isn't an all-in-one bundle with all the source code and art assets.  The .as3proj files are just XML config files that store the compilation options for the project.  The source code is stored as .as files which are just plain text files containing ActionScript.  You can open them in notepad.</body>
    <body-html>&lt;p&gt;A FlashDevelop project isn&amp;#8217;t like a .&lt;span class=&quot;caps&quot;&gt;FLA&lt;/span&gt; &amp;#8212; it isn&amp;#8217;t an all-in-one bundle with all the source code and art assets.  The .as3proj files are just &lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt; config files that store the compilation options for the project.  The source code is stored as .as files which are just plain text files containing ActionScript.  You can open them in notepad.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-04-09T07:27:51-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">834136</id>
    <post-number type="integer">42</post-number>
    <topic-id type="integer">38165</topic-id>
    <updated-at type="datetime">2009-09-17T02:31:41-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>I would suggest using a data structure that stores a copy of the slime references based on their location on the game board.  It'll take more work when you're updating the slime, but the per-frame hittests should be a lot quicker since you're only checking a fraction of the slime on the board (i.e. that in the same area as the player).</body>
    <body-html>&lt;p&gt;I would suggest using a data structure that stores a copy of the slime references based on their location on the game board.  It&amp;#8217;ll take more work when you&amp;#8217;re updating the slime, but the per-frame hittests should be a lot quicker since you&amp;#8217;re only checking a fraction of the slime on the board (i.e. that in the same area as the player).&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-04-09T05:48:04-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">833993</id>
    <post-number type="integer">7</post-number>
    <topic-id type="integer">39491</topic-id>
    <updated-at type="datetime">2009-09-17T02:39:04-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/4/topics/38735?page=1#posts-814365'&gt;DarkLibra&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;But what is bicycle?&lt;/p&gt;&lt;/blockquote&gt;

For April Fools, they've got a word filter that (among other things) replaces &quot;flash&quot; with &quot;bicycle&quot;.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/4/topics/38735?page=1#posts-814365&quot;&gt;DarkLibra&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;But what is bicycle?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For April Fools, they&amp;#8217;ve got a word filter that (among other things) replaces &amp;#8220;flash&amp;#8221; with &amp;#8220;bicycle&amp;#8221;.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-04-01T06:15:58-07:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">814526</id>
    <post-number type="integer">4</post-number>
    <topic-id type="integer">38735</topic-id>
    <updated-at type="datetime">2009-09-17T02:34:57-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href='/forums/1/topics/34010?page=4#posts-695868'&gt;zyodei&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;You&amp;#8217;d think someone sophisticated enough to make a decent game like that would figure out that their IP could be tracked&amp;#8230;&lt;/p&gt;&lt;/blockquote&gt;

I believe that PlayedOnline is just the sponsor of the game.  It seems to have actually been made by someone who goes by &quot;Fortunacus Lucas&quot;.</body>
    <body-html>&lt;blockquote&gt;&lt;cite&gt;Originally posted by &lt;b&gt;&lt;a href=&quot;/forums/1/topics/34010?page=4#posts-695868&quot;&gt;zyodei&lt;/a&gt;:&lt;/b&gt;&lt;/cite&gt;&lt;br&gt;&lt;p&gt;You&amp;#8217;d think someone sophisticated enough to make a decent game like that would figure out that their IP could be tracked&amp;#8230;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I believe that PlayedOnline is just the sponsor of the game.  It seems to have actually been made by someone who goes by &amp;#8220;Fortunacus Lucas&amp;#8221;.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-02-06T10:57:45-08:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">1</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">696076</id>
    <post-number type="integer">104</post-number>
    <topic-id type="integer">34010</topic-id>
    <updated-at type="datetime">2009-09-17T02:07:23-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>Untested:

&lt;pre&gt;
// Args:
//   player1choice, player2choice - 0 = rock, 1 = paper, 2 = scissors
// Return Value: 0 - Tie, 1 - Player 1 won, 2 - Player 2 won
public static function findWinner(player1choice:int, player2choice:int):int {
  if (player1choice == player2choice) {
    return 0;
  }

  if ((player1choice+1)%3 == player2choice) {
    return 2;
  } else {
    return 1;
  }
}
&lt;/pre&gt;</body>
    <body-html>&lt;p&gt;Untested:&lt;/p&gt;
&lt;pre&gt;
// Args:
//   player1choice, player2choice - 0 = rock, 1 = paper, 2 = scissors
// Return Value: 0 - Tie, 1 - Player 1 won, 2 - Player 2 won
public static function findWinner(player1choice:int, player2choice:int):int {
  if (player1choice == player2choice) {
    return 0;
  }

  if ((player1choice+1)%3 == player2choice) {
    return 2;
  } else {
    return 1;
  }
}
&lt;/pre&gt;</body-html>
    <created-at type="datetime">2009-01-23T10:38:48-08:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">667282</id>
    <post-number type="integer">10</post-number>
    <topic-id type="integer">32886</topic-id>
    <updated-at type="datetime">2009-09-17T01:59:14-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>I'm really disappointed with &quot;Dodge&quot;:http://www.kongregate.com/games/moogoat/dodge .  Right in the middle of the challenge, the developer made a change that significantly affected the difficulty.  Now enemies will stop a lot closer to the edges of the screen.

While this change was intended to reduce players just circling the playing field, it makes it a lot more difficult to take out such enemies even for non-circling players.  Since the enemies are at the edge, a player has to get very close to the enemy to bait missiles into them.  As a result, there's an exceedingly high chance of getting shot point-blank.

The problem with getting shot is that the game's scoring system is built around a multiplier that increases as you kill enemies without getting hit.  So taking a few hits here and there due to the change in difficulty has a drastic effect on score.  Since the challenge is score-based, this is a problem.

I was still able to complete the challenge, but I find it pretty obnoxious that the difficulty was changed like that in the middle.</body>
    <body-html>&lt;p&gt;I&amp;#8217;m really disappointed with &lt;a href=&quot;http://www.kongregate.com/games/moogoat/dodge&quot;&gt;Dodge&lt;/a&gt; .  Right in the middle of the challenge, the developer made a change that significantly affected the difficulty.  Now enemies will stop a lot closer to the edges of the screen.&lt;/p&gt;
&lt;p&gt;While this change was intended to reduce players just circling the playing field, it makes it a lot more difficult to take out such enemies even for non-circling players.  Since the enemies are at the edge, a player has to get very close to the enemy to bait missiles into them.  As a result, there&amp;#8217;s an exceedingly high chance of getting shot point-blank.&lt;/p&gt;
&lt;p&gt;The problem with getting shot is that the game&amp;#8217;s scoring system is built around a multiplier that increases as you kill enemies without getting hit.  So taking a few hits here and there due to the change in difficulty has a drastic effect on score.  Since the challenge is score-based, this is a problem.&lt;/p&gt;
&lt;p&gt;I was still able to complete the challenge, but I find it pretty obnoxious that the difficulty was changed like that in the middle.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-01-16T07:08:07-08:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">1</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">652331</id>
    <post-number type="integer">1</post-number>
    <topic-id type="integer">32367</topic-id>
    <updated-at type="datetime">2009-09-17T01:56:32-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>*CuriousGaming* wrote:

bq. Each planet will exert a force on the object that is proportional to the mass of the planet and inversely proportional to the square root of the distance from the planet.

That should be the square of the distance, not the square root.

From &quot;Newton's law of universal gravitation&quot;:http://en.wikipedia.org/wiki/Newton%27s_law_of_universal_gravitation , we know that F = Gm1m2 / r^2 where G is the gravitational constant, m1 is the first mass, m2 is the second mass, and r is the distance between the center of the two masses.  We also know from &quot;Newton's second law of motion&quot;:http://en.wikipedia.org/wiki/Newton%27s_laws_of_motion that F=ma.

We put the two equations together, and we get:
m2a = Gm1m2 / r^2
Divide both sides by m2 (mass of the object):
a = Gm1 / r^2
Since G is a constant used to convert m1 from one unit to another, we can just change our mass unit to an arbitrary unit of measure where G happens to be 1, which gives us:
a = m / r^2</body>
    <body-html>&lt;p&gt;&lt;strong&gt;CuriousGaming&lt;/strong&gt; wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Each planet will exert a force on the object that is proportional to the mass of the planet and inversely proportional to the square root of the distance from the planet.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That should be the square of the distance, not the square root.&lt;/p&gt;
&lt;p&gt;From &lt;a href=&quot;http://en.wikipedia.org/wiki/Newton%27s_law_of_universal_gravitation&quot;&gt;Newton&amp;#8217;s law of universal gravitation&lt;/a&gt; , we know that F = Gm1m2 / r^2 where G is the gravitational constant, m1 is the first mass, m2 is the second mass, and r is the distance between the center of the two masses.  We also know from &lt;a href=&quot;http://en.wikipedia.org/wiki/Newton%27s_laws_of_motion&quot;&gt;Newton&amp;#8217;s second law of motion&lt;/a&gt; that F=ma.&lt;/p&gt;
&lt;p&gt;We put the two equations together, and we get:&lt;br /&gt;
m2a = Gm1m2 / r^2&lt;br /&gt;
Divide both sides by m2 (mass of the object):&lt;br /&gt;
a = Gm1 / r^2&lt;br /&gt;
Since G is a constant used to convert m1 from one unit to another, we can just change our mass unit to an arbitrary unit of measure where G happens to be 1, which gives us:&lt;br /&gt;
a = m / r^2&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-01-11T18:33:55-08:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">643630</id>
    <post-number type="integer">5</post-number>
    <topic-id type="integer">31966</topic-id>
    <updated-at type="datetime">2009-09-17T01:53:47-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
  <post>
    <body>As *oceanix* said, you use the graphics class to make graphics.  However, what you need to know is that you don't instantiate the graphics class directly.  Instead, you create a Sprite object and then call methods on the Graphics object (helpfully named &quot;graphics&quot;) within the Sprite.

Here's a quick-and-dirty FlashDevelop-centric tutorial I posted over on AG: &quot;Graphics in AS3&quot;:http://armorgames.com/community/thread/2620432/everything-in-actionscript

Scroll down to the second post from me (just look for the bold text), and it should be pretty straight-forward.</body>
    <body-html>&lt;p&gt;As &lt;strong&gt;oceanix&lt;/strong&gt; said, you use the graphics class to make graphics.  However, what you need to know is that you don&amp;#8217;t instantiate the graphics class directly.  Instead, you create a Sprite object and then call methods on the Graphics object (helpfully named &amp;#8220;graphics&amp;#8221;) within the Sprite.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s a quick-and-dirty FlashDevelop-centric tutorial I posted over on AG: &lt;a href=&quot;http://armorgames.com/community/thread/2620432/everything-in-actionscript&quot;&gt;Graphics in AS3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Scroll down to the second post from me (just look for the bold text), and it should be pretty straight-forward.&lt;/p&gt;</body-html>
    <created-at type="datetime">2009-01-09T12:37:27-08:00</created-at>
    <flaggings-count type="integer">0</flaggings-count>
    <forced-visibility-state type="boolean">true</forced-visibility-state>
    <forum-id type="integer">4</forum-id>
    <hidden-by-id type="integer" nil="true"></hidden-by-id>
    <id type="integer">637576</id>
    <post-number type="integer">12</post-number>
    <topic-id type="integer">23393</topic-id>
    <updated-at type="datetime">2009-09-17T01:09:05-07:00</updated-at>
    <user-id type="integer">899108</user-id>
  </post>
</posts>
