<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[urgent] 2-d Side Scroller Game in CPP</title>
		<link>http://www.allegro.cc/forums/view/609597</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 24 Feb 2012 05:59:28 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello everyone,</p><p>I am new to game programming, i am looking to code a 2-d side scroller which could do such things :<br />As the game begins, the ball starts rolling from left to right, and speeds up as the time goes on.<br />In its path, it faces obstacles like Triangles and Squares and combination of the two at random distances.<br />The player needs to jump the ball over the obstacles, suppose he hits the triangle he loses a life and stops if he hits a square and needs to jump over it, roll on the top and go ahead.<br />I need to code this very urgently, and i am confused in the proper C++ and ALLEGRO coding for <br />1. JUMP<br />2. Random Triangles and Squares.</p><p>Waiting for your replies.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 02:12:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why is this urgent?</p><p>There are many threads in this forum on how to implement jumping in platformers. Try to do a search and see if that helps you.</p><p>What do you mean by random triangles and squares? Do you know how to generate random numbers?</p><p>Also: showing some code always helps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Tue, 21 Feb 2012 03:02:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I need to submit this in 4 days!</p><p>By random Triangles and Squares, i mean. when a ball rolls from right to left, triangles and squares and their combinations such as triangle-triangle, triangle-square etc are encountered as obstacles, and the player needs to jump over these to move ahead.</p><p>Yes i know the SRAND dunction, but how tu use it for these figures, is still cryptic. </p><p>I&#39;ll search again for JUMP, was looking for a simpler logic so as to understand it quickly and apply easily.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 03:10:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can do jumping simply by having a vector to represent the velocity of a ball going in a direction. What you do is, when the player jumps, the Y value of the vector is increased. Each frame, the position of the ball increases by this vector. In addition, each frame the Y value of the vector is affected thus producing the parabola of jumping. To make sure the player doesn&#39;t keep jumping, you can figure out if he is on top of an object by finding the normal or some other hackish way. You only let the ball jump when it is on top of something.</p><p>For the other part, if your level is a plane, you could move by random increments along the plane and at each stop, if random number is 0, put triangle, else, put square or something.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 21 Feb 2012 03:46:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So this is homework?</p><p>As I have recently been implementing some jump mechanics myself, I took the time to produce <a href="http://wiki.allegro.cc/index.php?title=How_to_implement_jumping_in_platformers">a short tutorial</a> covering one technique on how to implement jumping. It&#39;s based on some code you could have found if you had done a search <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> I hope it&#39;s of use to you!</p><p>I guess you meant the rand() function. If you can generate random numbers within a range, you should then be able to generate the coordinates for your triangles and squares, and also what order they should come in.</p><p>It&#39;s easier to help if you show some code, and explain in more detail what you&#39;re having problem with.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Tue, 21 Feb 2012 03:46:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thank you so much to both of you, will try and implement things and will post the code asap with the help needed.</p><p>PS : It is not a homework, i am an engineering graduate. So no more curriculum studies for now, but it is more of a demo kind of game, i need to submit. Your help may prove of a career paving path for me.</p><p>The code i have been stuck at : </p><p>PRESSING SPACE KEEPS THE BALL IN AIR!! REQUEST YOU TO CORRECT ME:-/</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   3</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="k1">const</span> <span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">1000</span><span class="k2">;</span>
<span class="number">   6</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">enum</span> KEYS<span class="k2">{</span>LEFT, RIGHT, SPACE<span class="k2">}</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  10</span><span class="k2">{</span>
<span class="number">  11</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  12</span>  <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span>  <span class="k1">int</span> pos_x <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number">  15</span>  <span class="k1">int</span> pos_y <span class="k3">=</span> <span class="n">370</span><span class="k2">;</span>
<span class="number">  16</span>  <span class="k1">bool</span> keys<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>  <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  19</span>
<span class="number">  20</span>
<span class="number">  21</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  22</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  23</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  24</span>  <span class="c">//Initialization Functions</span>
<span class="number">  25</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>                    <span class="c">//initialize Allegro</span>
<span class="number">  26</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>      <span class="c">//create our display object</span>
<span class="number">  29</span>
<span class="number">  30</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>                    <span class="c">//test display object</span>
<span class="number">  31</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>  <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span>  event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>    
<span class="number">  39</span>
<span class="number">  40</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  46</span>  <span class="k2">{</span>
<span class="number">  47</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  48</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>    
<span class="number">  50</span>    <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  51</span>    <span class="k2">{</span>
<span class="number">  52</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  53</span>      <span class="k2">{</span>
<span class="number">  54</span>      <span class="c">/*case ALLEGRO_KEY_UP:</span>
<span class="number">  55</span><span class="c">          keys[UP] = true;</span>
<span class="number">  56</span><span class="c">          break;</span>
<span class="number">  57</span><span class="c">      case ALLEGRO_KEY_DOWN:</span>
<span class="number">  58</span><span class="c">          keys[DOWN] = true;</span>
<span class="number">  59</span><span class="c">          break;*/</span>
<span class="number">  60</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  61</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  62</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  63</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  64</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  65</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  66</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  67</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  68</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  69</span>      <span class="k2">}</span>
<span class="number">  70</span>
<span class="number">  71</span>    <span class="k2">}</span>
<span class="number">  72</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number">  73</span>    <span class="k2">{</span>
<span class="number">  74</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  75</span>      <span class="k2">{</span>
<span class="number">  76</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  77</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  78</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  79</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  80</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  81</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  82</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  83</span>        done<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
<span class="number">  84</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  85</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  86</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  87</span>      <span class="k2">}</span>
<span class="number">  88</span>    <span class="k2">}</span>
<span class="number">  89</span>
<span class="number">  90</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  91</span>    <span class="k2">{</span>
<span class="number">  92</span>      pos_x <span class="k3">-</span><span class="k3">=</span>keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">*</span> <span class="n">7</span><span class="k2">;</span>
<span class="number">  93</span>      pos_x <span class="k3">+</span><span class="k3">=</span>keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">*</span> <span class="n">7</span><span class="k2">;</span>
<span class="number">  94</span>      <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number">  95</span>      <span class="k2">{</span>
<span class="number">  96</span>        pos_y <span class="k3">=</span> <span class="n">370</span><span class="k2">;</span>
<span class="number">  97</span>      <span class="k2">}</span>
<span class="number">  98</span>      <span class="k1">if</span><span class="k2">(</span>pos_y&gt;<span class="k3">=</span><span class="n">330</span><span class="k2">)</span>
<span class="number">  99</span>        pos_y <span class="k3">-</span><span class="k3">=</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">*</span><span class="n">40</span><span class="k2">;</span>
<span class="number"> 100</span>      redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 101</span>    <span class="k2">}</span>
<span class="number"> 102</span>  
<span class="number"> 103</span>    
<span class="number"> 104</span>    <span class="k1">if</span><span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 105</span>    <span class="k2">{</span>
<span class="number"> 106</span>      redraw<span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 107</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>pos_x,pos_y,<span class="n">20</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>    <span class="k2">}</span>
<span class="number"> 111</span>
<span class="number"> 112</span>  <span class="k2">}</span>
<span class="number"> 113</span>
<span class="number"> 114</span>
<span class="number"> 115</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>            <span class="c">//destroy our display object</span>
<span class="number"> 116</span>
<span class="number"> 117</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 118</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 03:52:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You really should do it with vectors. Your hack is hard to visualize. Also, it&#39;s not a good idea to multiply by a Boolean, because in theory a true Boolean only needs to be non zero,  it does not have to be 1.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 21 Feb 2012 04:56:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>for a start you don&#39;t <span class="source-code"><span class="k1">break</span></span> after:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
  done<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Tue, 21 Feb 2012 05:10:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try using velocities (i.e. vectors) as I&#39;ve done in my tutorial and other people have suggested.</p><p>I&#39;m not sure if you want to be able to control the jumping height or not.</p><p>If not, then it&#39;s simply this:
</p><ul><li><p>when the player pressed up, set dy to a negative value.
</p></li><li><p>if player is not on ground, increase dy with a positive value (gravity)
</p></li><li><p>update y using dy: y += dy</p></li></ul><p>If you want controlled jumping height, see my tutorial I posted.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Tue, 21 Feb 2012 05:27:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>wow... good luck man <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 21 Feb 2012 05:50:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The ball bounces, but if the jump key is pressed, it bounces in the mid air.</p><p>All Triangles are generated in a small place, i.e all 4 triangles show up overlapping or inside each other, no random distance! <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /><img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   3</span><span class="p">#include "objects.h"</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="k1">const</span> <span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">1000</span><span class="k2">;</span>
<span class="number">   6</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">const</span> <span class="k1">int</span> NUM_TRIANGLES <span class="k3">=</span> <span class="n">4</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="k1">enum</span> KEYS<span class="k2">{</span>LEFT, RIGHT, SPACE<span class="k2">}</span><span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="c">//prototypes</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">void</span> InitTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">void</span> DrawTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">void</span> UpdateTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  21</span><span class="k2">{</span>
<span class="number">  22</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  23</span>  <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  24</span>  <span class="k1">bool</span> jumping <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  25</span>
<span class="number">  26</span>  <span class="k1">int</span> pos_x <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number">  27</span>  <span class="k1">int</span> pos_y <span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number">  28</span>  <span class="k1">int</span> speed <span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  29</span>
<span class="number">  30</span>  <span class="k1">float</span> dx <span class="k3">=</span><span class="n">1</span>, dy <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  31</span>
<span class="number">  32</span>  <span class="k1">bool</span> keys<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span>  <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span>
<span class="number">  37</span>  Triangle shapeT<span class="k2">[</span>NUM_TRIANGLES<span class="k2">]</span><span class="k2">;</span>
<span class="number">  38</span>
<span class="number">  39</span>
<span class="number">  40</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  41</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  42</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  43</span>  <span class="c">//Initialization Functions</span>
<span class="number">  44</span>  
<span class="number">  45</span>  
<span class="number">  46</span>  
<span class="number">  47</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>                    <span class="c">//initialize Allegro</span>
<span class="number">  48</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  49</span>
<span class="number">  50</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>      <span class="c">//create our display object</span>
<span class="number">  51</span>
<span class="number">  52</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>                    <span class="c">//test display object</span>
<span class="number">  53</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>  <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</span>  
<span class="number">  59</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>  InitTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>
<span class="number">  62</span>  event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>    
<span class="number">  65</span>
<span class="number">  66</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>
<span class="number">  69</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  72</span>  <span class="k2">{</span>
<span class="number">  73</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  74</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>    
<span class="number">  76</span>    <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  77</span>    <span class="k2">{</span>
<span class="number">  78</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  79</span>      <span class="k2">{</span>
<span class="number">  80</span>      <span class="c">/*case ALLEGRO_KEY_UP:</span>
<span class="number">  81</span><span class="c">          keys[UP] = true;</span>
<span class="number">  82</span><span class="c">          break;</span>
<span class="number">  83</span><span class="c">      case ALLEGRO_KEY_DOWN:</span>
<span class="number">  84</span><span class="c">          keys[DOWN] = true;</span>
<span class="number">  85</span><span class="c">          break;*/</span>
<span class="number">  86</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  87</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  88</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  89</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  90</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  91</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  92</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  93</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  94</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  95</span>      <span class="k2">}</span>
<span class="number">  96</span>
<span class="number">  97</span>    <span class="k2">}</span>
<span class="number">  98</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number">  99</span>    <span class="k2">{</span>
<span class="number"> 100</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 101</span>      <span class="k2">{</span>
<span class="number"> 102</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 103</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 104</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 105</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 106</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 107</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 108</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 109</span>        done<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
<span class="number"> 110</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 111</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 112</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 113</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 114</span>      <span class="k2">}</span>
<span class="number"> 115</span>    <span class="k2">}</span>
<span class="number"> 116</span>
<span class="number"> 117</span>  <span class="c">//  pos_y -=keys[UP] * 10;</span>
<span class="number"> 118</span>  <span class="c">//  pos_y +=keys[DOWN] * 10;</span>
<span class="number"> 119</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 120</span>    <span class="k2">{</span>
<span class="number"> 121</span>      pos_x <span class="k3">-</span><span class="k3">=</span>keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">*</span> <span class="n">7</span><span class="k2">;</span>
<span class="number"> 122</span>      pos_x <span class="k3">+</span><span class="k3">=</span>keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">*</span> <span class="n">7</span><span class="k2">;</span>
<span class="number"> 123</span>      <span class="c">/*if(keys[SPACE] == false)</span>
<span class="number"> 124</span><span class="c">      {</span>
<span class="number"> 125</span><span class="c">        pos_y = 370;</span>
<span class="number"> 126</span><span class="c">      }</span>
<span class="number"> 127</span><span class="c">      if(pos_y&gt;=330)</span>
<span class="number"> 128</span><span class="c">        pos_y -=keys[SPACE] *40;*/</span>
<span class="number"> 129</span>
<span class="number"> 130</span>      <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y&gt;<span class="k3">=</span><span class="n">350</span><span class="k2">)</span>
<span class="number"> 131</span>      <span class="k2">{</span>
<span class="number"> 132</span>        dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 133</span>        jumping <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 134</span>      <span class="k2">}</span>
<span class="number"> 135</span>
<span class="number"> 136</span>      <span class="k1">if</span><span class="k2">(</span>pos_y <span class="k3">&lt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number"> 137</span>        dy <span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number"> 138</span>
<span class="number"> 139</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span><span class="k3">=</span><span class="n">380</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> dy <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 140</span>      dy <span class="k3">-</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">1</span><span class="k2">;</span> <span class="c">// got to be LESS than 0.5 in this example</span>
<span class="number"> 141</span>
<span class="number"> 142</span>      <span class="k1">if</span><span class="k2">(</span>dy&gt;5<span class="k2">)</span>
<span class="number"> 143</span>        dy <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 144</span>      
<span class="number"> 145</span>      speed <span class="k3">+</span><span class="k3">=</span><span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number"> 146</span>      pos_x <span class="k3">+</span><span class="k3">=</span>speed<span class="k2">;</span>
<span class="number"> 147</span>      pos_y <span class="k3">+</span><span class="k3">=</span>dy<span class="k2">;</span>
<span class="number"> 148</span>
<span class="number"> 149</span>      <span class="k1">if</span><span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number"> 150</span>        pos_y <span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number"> 151</span>
<span class="number"> 152</span>
<span class="number"> 153</span>      redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 154</span>    <span class="k2">}</span>
<span class="number"> 155</span>  
<span class="number"> 156</span>    
<span class="number"> 157</span>    <span class="k1">if</span><span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 158</span>    <span class="k2">{</span>
<span class="number"> 159</span>      redraw<span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 160</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>pos_x,pos_y,<span class="n">20</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>      DrawTriangle<span class="k2">(</span>shapeT,NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</span>      <span class="c">//al_draw_triangle(100,400,120,360,140,400,al_map_rgb(255,0,255),2);</span>
<span class="number"> 163</span>      <span class="c">//al_draw_rounded_rectangle(180,340,260,400,5,5,al_map_rgb(255,255,255),3);</span>
<span class="number"> 164</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 165</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</span>
<span class="number"> 167</span>    <span class="k2">}</span>
<span class="number"> 168</span>
<span class="number"> 169</span>  <span class="k2">}</span>
<span class="number"> 170</span>
<span class="number"> 171</span>  <span class="c">//al_rest(5.0);</span>
<span class="number"> 172</span>
<span class="number"> 173</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>            <span class="c">//destroy our display object</span>
<span class="number"> 174</span>
<span class="number"> 175</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 176</span><span class="k2">}</span>
<span class="number"> 177</span>
<span class="number"> 178</span><span class="k1">void</span> InitTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 179</span><span class="k2">{</span>
<span class="number"> 180</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 181</span>  <span class="k2">{</span>
<span class="number"> 182</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> TRIANGLE<span class="k2">;</span>
<span class="number"> 183</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">=</span> <span class="n">100</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">700</span><span class="k2">;</span>
<span class="number"> 184</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 185</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2 <span class="k3">=</span> <span class="n">120</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">700</span><span class="k2">;</span>
<span class="number"> 186</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2 <span class="k3">=</span> <span class="n">360</span><span class="k2">;</span>
<span class="number"> 187</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">=</span> <span class="n">140</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">700</span><span class="k2">;</span>
<span class="number"> 188</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 189</span>  <span class="k2">}</span>
<span class="number"> 190</span><span class="k2">}</span>
<span class="number"> 191</span>
<span class="number"> 192</span><span class="k1">void</span> DrawTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 193</span><span class="k2">{</span>
<span class="number"> 194</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 195</span>  <span class="k2">{</span>
<span class="number"> 196</span>    
<span class="number"> 197</span>    <a href="http://www.allegro.cc/manual/al_draw_triangle"><span class="a">al_draw_triangle</span></a><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2,
<span class="number"> 198</span>    shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span>  <span class="k2">}</span>
<span class="number"> 200</span><span class="k2">}</span>
<span class="number"> 201</span>
<span class="number"> 202</span><span class="c">//void UpdateTriangle(Triangle &amp;shapeT, int size)</span>
<span class="number"> 203</span><span class="c">//{</span>
<span class="number"> 204</span><span class="c">//}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 16:12:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">380</span><span class="k2">)</span> <span class="k2">{</span> <span class="c">// means the ball is on the ground right?</span>
    <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
        <span class="k1">if</span> <span class="k2">(</span>jumping<span class="k2">)</span> <span class="k2">{</span>
            dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>
            jumping <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
        <span class="k2">}</span>
    <span class="k2">}</span>
    <span class="k1">else</span>
        jumping <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k2">}</span>
<span class="c">// a more proper name for the jumping variable would be canJump, or mayJumpAgain</span>
</pre></div></div><p>

Regarding the triangle problem, I would generate random numbers for just one xy-coordinate and create the other two vertices by using that coordinate. This way you can easily change the size of the triangles if you want to.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Tue, 21 Feb 2012 17:19:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Whoa, thanks a lot <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> The bounce is working now! But i am getting the obstacles of the game(have been testing only on triangles for now) all wrong. Have attached an image.</p><p>Have modified, only x1 of the triangle and its way better now, but i get overlapping triangles!!</p><p><span class="remote-thumbnail"><span class="json">{"name":"605625","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/2\/9235031d8a61a4cb19d0ed47e6b819cb.jpg","w":1015,"h":122,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/2\/9235031d8a61a4cb19d0ed47e6b819cb"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/9/2/9235031d8a61a4cb19d0ed47e6b819cb-240.jpg" alt="605625" width="240" height="28" /></span></p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> InitTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
  <span class="k2">{</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> TRIANGLE<span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">=</span> <span class="n">100</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">600</span><span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k3">+</span><span class="n">20</span><span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2 <span class="k3">=</span> <span class="n">360</span><span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k3">+</span><span class="n">40</span><span class="k2">;</span>
  shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
  <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 17:37:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609597/947868#target">varynoob</a> said:</div><div class="quote"><p>Have modified, only x1 of the triangle and its way better now, but i get overlapping triangles!!</p></div></div><p>
Therefore, you should..?</p><p>You have all the information you need to solve that problem: a list of all the generated triangles and their coordinates.</p><p>[EDIT]<br />I really hope somebody doesn&#39;t just give you the solution to this too. You need to start thinking for yourself.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Tue, 21 Feb 2012 18:10:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[UPDATED]<br />I have been trying. I have now managed to make things scroll and triangles and squares coming, but i am really in confusion with 2 things :</p><p>1. Squares and Triangles OVERLAP each other(as seen in the image).</p><p><span class="remote-thumbnail"><span class="json">{"name":"605627","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/f\/efd5069bfe3772701fee009ee6d06eca.jpg","w":806,"h":194,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/f\/efd5069bfe3772701fee009ee6d06eca"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/e/f/efd5069bfe3772701fee009ee6d06eca-240.jpg" alt="605627" width="240" height="57" /></span></p><p>2. How can i make the screen scroll? I mean, for ex mario: you keep on going and things keep coming!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 21 Feb 2012 21:37:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You scroll by moving the world around the player. The player is always at the center of the screen except at the left and right extents of the level.</p><p>It&#39;s easier to think of it in terms of a camera. You can look into ALLEGRO_TRANSFORMations for this: <a href="http://www.liballeg.org/a5docs/refman/transformations.html">http://www.liballeg.org/a5docs/refman/transformations.html</a></p><p>If you were able to get a degree in Engineering, which involved maths far more complex than simple transformations, then the maths required to simulate a camera should be a breeze.</p><p>The idea of transformations is that you make the Player&#39;s position 0,0 on the screen which will cause your character to be at the center of the screen which consequently scrolls your props too.</p><p>If you need an example on transformations in Allegro, there is ex_transform.c that you can have a look at. It comes with the Allegro source code.</p><p>In theory, these 3 functions should do it for you:
</p><div class="source-code snippet"><div class="inner"><pre>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> transform<span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>transform<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>transform, x, y<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>transform<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

It is up to you to figure out x and y.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 21 Feb 2012 22:09:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Problem: Triangles overlap<br />What we want to achieve: Make them not overlap<br />Solution: Is there a way to see if they overlap and then do something about it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Tue, 21 Feb 2012 22:23:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So you&#39;re trying to remake the impossible game:</p><p><span class="remote-thumbnail"><span class="json">{"name":"images","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/7\/07445f55dd03592bdf31dede6f94f276.jpg","w":300,"h":168,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/7\/07445f55dd03592bdf31dede6f94f276"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/0/7/07445f55dd03592bdf31dede6f94f276-240.jpg" alt="images" width="240" height="134" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Wed, 22 Feb 2012 00:42:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Neil Walker : Why impossible ? What i am trying to code, already exists as an smart phone app. The game in the picture isnt the exact model of it.</p><p>Arvidsson : As in, you want me to paste the code? I am confused with the statement </p><p>&quot;Solution: Is there a way to see if they overlap and then do something about it?&quot;</p><p>jmasterx : will try it, have been into the overlapping issue.</p><p>As i added, the Ball move functions, for left, right and jump, the JUMP Logic seems to be not working. Cant figure out why?</p><p>Here&#39;s the updated code :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   3</span><span class="p">#include "objects.h"</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="k1">const</span> <span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">1000</span><span class="k2">;</span>
<span class="number">   6</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">const</span> <span class="k1">int</span> NUM_TRIANGLES <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="k1">enum</span> KEYS<span class="k2">{</span>LEFT, RIGHT, SPACE<span class="k2">}</span><span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="c">//prototypes</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">void</span> InitBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">void</span> DrawBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">void</span> MoveLeftBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span><span class="k1">void</span> MoveRightBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span><span class="k1">void</span> JumpBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">void</span> InitTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span><span class="k1">void</span> DrawTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span><span class="k1">void</span> StartTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">void</span> UpdateTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  28</span><span class="k2">{</span>
<span class="number">  29</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  30</span>  <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  31</span><span class="c">//  bool canJump = false;</span>
<span class="number">  32</span>
<span class="number">  33</span><span class="c">//  float pos_x = 30;</span>
<span class="number">  34</span><span class="c">//  float pos_y = 380;</span>
<span class="number">  35</span>  <span class="k1">float</span> speed <span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  36</span>
<span class="number">  37</span><span class="c">//  float dx =1, dy = 1;</span>
<span class="number">  38</span>
<span class="number">  39</span>  <span class="k1">bool</span> keys<span class="k2">[</span><span class="n">3</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span>  <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>
<span class="number">  44</span>  Triangle shapeT<span class="k2">[</span>NUM_TRIANGLES<span class="k2">]</span><span class="k2">;</span>
<span class="number">  45</span>  Ball shapeB<span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  48</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  49</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  50</span>  <span class="c">//Initialization Functions</span>
<span class="number">  51</span>  
<span class="number">  52</span>  
<span class="number">  53</span>  
<span class="number">  54</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>                    <span class="c">//initialize Allegro</span>
<span class="number">  55</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  56</span>
<span class="number">  57</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>      <span class="c">//create our display object</span>
<span class="number">  58</span>
<span class="number">  59</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>                    <span class="c">//test display object</span>
<span class="number">  60</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  61</span>
<span class="number">  62</span>  <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>  
<span class="number">  66</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>  InitTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>  InitBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  69</span>  event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>    
<span class="number">  72</span>
<span class="number">  73</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>
<span class="number">  76</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>
<span class="number">  78</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  79</span>  <span class="k2">{</span>
<span class="number">  80</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  81</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>    
<span class="number">  83</span>    <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  84</span>    <span class="k2">{</span>
<span class="number">  85</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  86</span>      <span class="k2">{</span>
<span class="number">  87</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  88</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  89</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  90</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  91</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  92</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  93</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  94</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  95</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  96</span>      <span class="k2">}</span>
<span class="number">  97</span>
<span class="number">  98</span>    <span class="k2">}</span>
<span class="number">  99</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 100</span>    <span class="k2">{</span>
<span class="number"> 101</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 102</span>      <span class="k2">{</span>
<span class="number"> 103</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 104</span>          keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 105</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 106</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 107</span>          keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 108</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 109</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 110</span>        done<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
<span class="number"> 111</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 112</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 113</span>          keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 114</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 115</span>      <span class="k2">}</span>
<span class="number"> 116</span>    <span class="k2">}</span>
<span class="number"> 117</span>
<span class="number"> 118</span>  
<span class="number"> 119</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 120</span>    <span class="k2">{</span>
<span class="number"> 121</span>      redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 122</span>      <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 123</span>        MoveLeftBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>      <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 125</span>        MoveRightBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>
<span class="number"> 127</span>
<span class="number"> 128</span>
<span class="number"> 129</span>      <span class="k1">if</span> <span class="k2">(</span>shapeB.pos_Y <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">380</span><span class="k2">)</span> 
<span class="number"> 130</span>      <span class="k2">{</span> <span class="c">// means the ball is on the ground </span>
<span class="number"> 131</span>        <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span> 
<span class="number"> 132</span>        <span class="k2">{</span>
<span class="number"> 133</span>          <span class="k1">if</span> <span class="k2">(</span>shapeB.canJump<span class="k2">)</span> 
<span class="number"> 134</span>          <span class="k2">{</span>
<span class="number"> 135</span>            shapeB.dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 136</span>            shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 137</span>          <span class="k2">}</span>
<span class="number"> 138</span>        <span class="k2">}</span>
<span class="number"> 139</span>      <span class="k1">else</span>
<span class="number"> 140</span>        shapeB.canJump <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 141</span>      <span class="k2">}</span>
<span class="number"> 142</span>
<span class="number"> 143</span>
<span class="number"> 144</span>
<span class="number"> 145</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&lt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number"> 146</span>        shapeB.dy <span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number"> 147</span>
<span class="number"> 148</span>      
<span class="number"> 149</span>      <span class="c">//JumpBall(shapeB);</span>
<span class="number"> 150</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeB.pos_Y <span class="k3">&lt;</span><span class="k3">=</span><span class="n">380</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeB.dy <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 151</span>        shapeB.dy <span class="k3">-</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">1</span><span class="k2">;</span> <span class="c">// got to be LESS than 0.5</span>
<span class="number"> 152</span>
<span class="number"> 153</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.dy&gt;5<span class="k2">)</span>
<span class="number"> 154</span>        shapeB.dy <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 155</span>      
<span class="number"> 156</span>      speed <span class="k3">+</span><span class="k3">=</span><span class="n">0</span>.<span class="n">01</span><span class="k2">;</span>
<span class="number"> 157</span>      <span class="c">//shapeB.pos_X +=speed*1/2;</span>
<span class="number"> 158</span>      shapeB.pos_Y <span class="k3">+</span><span class="k3">=</span>shapeB.dy<span class="k2">;</span>
<span class="number"> 159</span>
<span class="number"> 160</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&gt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number"> 161</span>        shapeB.pos_Y <span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number"> 162</span>
<span class="number"> 163</span>
<span class="number"> 164</span>      StartTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 165</span>      UpdateTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</span>    <span class="k2">}</span>
<span class="number"> 167</span>  
<span class="number"> 168</span>    
<span class="number"> 169</span>    <span class="k1">if</span><span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 170</span>    <span class="k2">{</span>
<span class="number"> 171</span>      redraw<span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 172</span>      <span class="c">/*al_draw_filled_circle(pos_x,pos_y,20,al_map_rgb(255,0,255));*/</span>
<span class="number"> 173</span>      <span class="c">//UpdateTriangle(shapeT,NUM_TRIANGLES);</span>
<span class="number"> 174</span>      DrawBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 175</span>      DrawTriangle<span class="k2">(</span>shapeT,NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 176</span>      
<span class="number"> 177</span>      <span class="c">//al_draw_rounded_rectangle(180,340,260,400,5,5,al_map_rgb(255,255,255),3);</span>
<span class="number"> 178</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 179</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>
<span class="number"> 181</span>    
<span class="number"> 182</span>    <span class="k2">}</span>
<span class="number"> 183</span>  <span class="k2">}</span>
<span class="number"> 184</span>
<span class="number"> 185</span>  <span class="c">//al_rest(5.0);</span>
<span class="number"> 186</span>
<span class="number"> 187</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>            <span class="c">//destroy our display object</span>
<span class="number"> 188</span>
<span class="number"> 189</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 190</span>  <span class="k2">}</span>
<span class="number"> 191</span>
<span class="number"> 192</span>
<span class="number"> 193</span>
<span class="number"> 194</span><span class="k1">void</span> InitBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 195</span><span class="k2">{</span>
<span class="number"> 196</span>  shapeB.ID<span class="k3">=</span>BALL<span class="k2">;</span>
<span class="number"> 197</span>  shapeB.pos_X<span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number"> 198</span>  shapeB.pos_Y<span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number"> 199</span>  shapeB.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 200</span>  shapeB.speed <span class="k3">=</span> <span class="n">7</span><span class="k2">;</span>
<span class="number"> 201</span>  shapeB.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 202</span>  shapeB.boundX <span class="k3">=</span> <span class="n">57</span><span class="k2">;</span>
<span class="number"> 203</span>  shapeB.boundY <span class="k3">=</span> <span class="n">57</span><span class="k2">;</span>
<span class="number"> 204</span>  shapeB.dx <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 205</span>  shapeB.dy <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 206</span>
<span class="number"> 207</span><span class="k2">}</span>
<span class="number"> 208</span><span class="k1">void</span> DrawBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 209</span><span class="k2">{</span>
<span class="number"> 210</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>shapeB.pos_X,shapeB.pos_Y,<span class="n">20</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 211</span><span class="k2">}</span>
<span class="number"> 212</span><span class="k1">void</span> MoveLeftBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 213</span><span class="k2">{</span>
<span class="number"> 214</span>  shapeB.pos_X <span class="k3">-</span><span class="k3">=</span>shapeB.speed<span class="k2">;</span>
<span class="number"> 215</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_X<span class="k3">&lt;</span><span class="n">20</span><span class="k2">)</span>
<span class="number"> 216</span>    shapeB.pos_X <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 217</span><span class="k2">}</span>
<span class="number"> 218</span><span class="k1">void</span> MoveRightBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 219</span><span class="k2">{</span>
<span class="number"> 220</span>  shapeB.pos_X <span class="k3">+</span><span class="k3">=</span> shapeB.speed<span class="k2">;</span> 
<span class="number"> 221</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_X&gt;600<span class="k2">)</span>
<span class="number"> 222</span>    shapeB.pos_X <span class="k3">=</span> <span class="n">600</span><span class="k2">;</span>
<span class="number"> 223</span><span class="k2">}</span>
<span class="number"> 224</span><span class="k1">void</span> JumpBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 225</span><span class="k2">{</span>
<span class="number"> 226</span>    <span class="k1">if</span> <span class="k2">(</span>shapeB.canJump<span class="k2">)</span> 
<span class="number"> 227</span>        <span class="k2">{</span>
<span class="number"> 228</span>          shapeB.dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 229</span>          shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 230</span>        <span class="k2">}</span>
<span class="number"> 231</span>      
<span class="number"> 232</span>    <span class="k1">else</span>
<span class="number"> 233</span>    <span class="k2">{</span>
<span class="number"> 234</span>      shapeB.canJump <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 235</span>    <span class="k2">}</span>
<span class="number"> 236</span>
<span class="number"> 237</span>    <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&lt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number"> 238</span>      shapeB.dy <span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number"> 239</span>        
<span class="number"> 240</span><span class="k2">}</span>
<span class="number"> 241</span>
<span class="number"> 242</span>
<span class="number"> 243</span>
<span class="number"> 244</span><span class="k1">void</span> InitTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 245</span><span class="k2">{</span>
<span class="number"> 246</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 247</span>  <span class="k2">{</span>
<span class="number"> 248</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> TRIANGLE<span class="k2">;</span>
<span class="number"> 249</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 250</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 251</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.<a href="http://www.delorie.com/djgpp/doc/libc/libc_639.html" target="_blank">random</a> <span class="k3">=</span> <span class="n">1</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">10</span><span class="k2">;</span>
<span class="number"> 252</span>  
<span class="number"> 253</span>  <span class="k2">}</span>
<span class="number"> 254</span><span class="k2">}</span>
<span class="number"> 255</span>
<span class="number"> 256</span><span class="k1">void</span> DrawTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 257</span><span class="k2">{</span>
<span class="number"> 258</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 259</span>  <span class="k2">{</span>
<span class="number"> 260</span>    <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 261</span>    <span class="k2">{</span>
<span class="number"> 262</span>
<span class="number"> 263</span>      <span class="c">//if(shapeT[i].pos_x3 == shapeT[i+1].pos_x1 || shapeT[i].pos_x3 +100&lt;= shapeT[i+1].pos_x1) </span>
<span class="number"> 264</span>      <span class="c">//{</span>
<span class="number"> 265</span>      <span class="c">/*&amp;&amp; shapeT[i].pos_x3 == shapeT[i].pos_rect_x1 || shapeT[i].pos_x3 + 400 &lt;= shapeT[i].pos_rect_x1 </span>
<span class="number"> 266</span><span class="c">        || shapeT[i].pos_x1 &gt;= shapeT[i].pos_rect_x2) */</span>
<span class="number"> 267</span>      
<span class="number"> 268</span>      <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.<a href="http://www.delorie.com/djgpp/doc/libc/libc_639.html" target="_blank">random</a> <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">)</span>    
<span class="number"> 269</span>        <a href="http://www.allegro.cc/manual/al_draw_triangle"><span class="a">al_draw_triangle</span></a><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2,
<span class="number"> 270</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 271</span>      <span class="k1">else</span>
<span class="number"> 272</span>        <a href="http://www.allegro.cc/manual/al_draw_rounded_rectangle"><span class="a">al_draw_rounded_rectangle</span></a><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1,
<span class="number"> 273</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y2,<span class="n">5</span>,<span class="n">5</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>,<span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 274</span>      <span class="c">//}</span>
<span class="number"> 275</span>    <span class="k2">}</span>
<span class="number"> 276</span>  <span class="k2">}</span>
<span class="number"> 277</span><span class="k2">}</span>
<span class="number"> 278</span>
<span class="number"> 279</span><span class="k1">void</span> StartTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 280</span><span class="k2">{</span>
<span class="number"> 281</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 282</span>  <span class="k2">{</span>
<span class="number"> 283</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 284</span>    <span class="k2">{</span>
<span class="number"> 285</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">500</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 286</span>      <span class="k2">{</span>
<span class="number"> 287</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 288</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">=</span> <span class="n">780</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">20</span><span class="k2">;</span>
<span class="number"> 289</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 290</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k3">+</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 291</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2 <span class="k3">=</span> <span class="n">370</span><span class="k2">;</span>
<span class="number"> 292</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k3">+</span><span class="n">20</span><span class="k2">;</span>
<span class="number"> 293</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 294</span>        
<span class="number"> 295</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">+</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 296</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">=</span> <span class="n">320</span><span class="k2">;</span>
<span class="number"> 297</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2 <span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">+</span> <span class="n">80</span><span class="k2">;</span>
<span class="number"> 298</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y2 <span class="k3">=</span> <span class="n">400</span><span class="k2">;</span>
<span class="number"> 299</span>
<span class="number"> 300</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 301</span>
<span class="number"> 302</span>      <span class="k2">}</span>
<span class="number"> 303</span>    <span class="k2">}</span>
<span class="number"> 304</span>  <span class="k2">}</span>
<span class="number"> 305</span><span class="k2">}</span>
<span class="number"> 306</span>
<span class="number"> 307</span><span class="k1">void</span> UpdateTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 308</span><span class="k2">{</span>
<span class="number"> 309</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 310</span>  <span class="k2">{</span>
<span class="number"> 311</span>    <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 312</span>    <span class="k2">{</span>
<span class="number"> 313</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">-</span><span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 314</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x2 <span class="k3">-</span><span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 315</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">-</span><span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 316</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 317</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2 <span class="k3">-</span><span class="k3">=</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 318</span>
<span class="number"> 319</span>
<span class="number"> 320</span>      <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3 <span class="k3">&lt;</span><span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2 <span class="k3">&lt;</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 321</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 322</span>    <span class="k2">}</span>
<span class="number"> 323</span>  <span class="k2">}</span>
<span class="number"> 324</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 22 Feb 2012 03:10:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Trying to make a quick buck piggybacking off people here? <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 22 Feb 2012 03:22:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I doubt he&#39;d label it &quot;urgent&quot; if he was trying to develop an app, it&#39;s homework that he procrastinated on.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Wed, 22 Feb 2012 03:24:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s why I said a &quot;quick&quot; buck. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 22 Feb 2012 03:25:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609597/947897#target">varynoob</a> said:</div><div class="quote"><p>Arvidsson : As in, you want me to paste the code? I am confused with the statement &quot;Solution: Is there a way to see if they overlap and then do something about it?&quot;</p></div></div><p>
What Arvidsson meant is the same as I did: <b>THINK</b>. You can&#39;t expect other people to keep solving everything for you. Sooner or later, you&#39;re going to have to think for yourself. What he posted was a basic recipe to solving your problem.</p><p>I&#39;ll restate it in the form of three questions you should ask yourself:
</p><ol><li><p>What is the problem?
</p></li><li><p>What are the conditions that cause the problem?
</p></li><li><p>Now that you know what the problem is and how it occurs, how do you fix it?
</p></li></ol></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Wed, 22 Feb 2012 03:33:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No No No Sir.<br />Please dont get me wrong, and this isnt any home work, i need to code it by weekend in any case for then, i will miss an opportunity, that&#39;s it. <br />I have been just asking, since this is an allegro forum, and there are people like you who have hell lot of exp, while i am a total newbie.</p><p>If this is against, any rules, i am really sorry! <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /></p><p>[EDIT]</p><p>I am trying to sir. But, for a first timer, it gets, little confusing at times.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 22 Feb 2012 03:36:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, I&#39;ll take your word. Sounds like something for a job interview. Good luck.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 22 Feb 2012 03:41:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes exactly, thankyou sir. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Its my dream to be a game programmer, and this opportunity means a lot to me, got just 3 days left! <br />Sadly though, here in, we do not get much resources or motivation for Game Programming, so gets stiff.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 22 Feb 2012 03:48:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well try a little harder, and you&#39;ll get it done and get answers. Ask specific questions relating to your code, which you should post if it has changed.</p><p>For example &quot;my triangles overlap, how do I fix it&quot; is a pretty general question. You should try fixing it. You might be able to do it yourself (don&#39;t sell yourself short!) If you can&#39;t figure it out, show us the code where you tried to figure it out and someone can probably tell you how to fix your code.</p><p>People here just don&#39;t like giving out a 100% ready made solution, they want you to try and figure it out yourself first.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 22 Feb 2012 03:53:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, for the triangles: check the variables defining the positions of the triangles <i>before</i> you draw them. </p><p>Anyway, if game programming skills are crucial for the career opening, something says me you should wait for the <i>opening</i> 2 or 3 years and meanwhile improve your skills.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Wed, 22 Feb 2012 04:31:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If I put something 10ft wide 7ft away from something else that is 10ft wide do you think they will touch....?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Wed, 22 Feb 2012 05:27:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The London Symphony Orchestra has an opening in the Oboe section! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />  I just got an Oboe! Quick, what do the buttons to!? <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Wed, 22 Feb 2012 05:37:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m not sure, but I&#39;m thinking they change the pitch of the sound. Try putting the keys in an array called pitch[numNotes] or something, and then do something else blah blah blah yawn. Comon varynoob give us all hope with a custom solution.... <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Wed, 22 Feb 2012 05:59:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Guys, look at this, everything seems to be ohkay, except the Ball hangs in the air, when Jump key is pressed. Before i made Ball Struct &amp; functions for Ball Movement, ball was jumping fine. But now, there is this weird error with the same code. <br />It has something to do with the Draw function of the Ball, but i am not able to figure it out. <br />Looking to put in collision detection and spritesheets, so need functions for ball movement, such as MoveRightBall/Left/Jump.</p><p>This is the code i have changed</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span>
<span class="number">   2</span><span class="c">//HAVE CHANGED THIS PART, THINGS WORKED, WHEN STRUCT WAS NOT CREATED/USED. NOW THE //BALL HANGS IN THE AIR AND DOES NOT COME DOWN</span>
<span class="number">   3</span>
<span class="number">   4</span><span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span>
<span class="number">   5</span>        MoveLeftBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">   6</span>      <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span>
<span class="number">   7</span>        MoveRightBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span>
<span class="number">  10</span>
<span class="number">  11</span>      <span class="k1">if</span> <span class="k2">(</span>shapeB.isOnGround<span class="k2">)</span>           
<span class="number">  12</span>      <span class="k2">{</span> <span class="c">// means the ball is on the ground </span>
<span class="number">  13</span>        <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>         
<span class="number">  14</span>        <span class="k2">{</span>
<span class="number">  15</span>          <span class="k1">if</span> <span class="k2">(</span>shapeB.canJump<span class="k2">)</span>       
<span class="number">  16</span>          <span class="k2">{</span>
<span class="number">  17</span>            shapeB.dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>      
<span class="number">  18</span>            shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>  
<span class="number">  19</span>          <span class="k2">}</span>
<span class="number">  20</span>        <span class="k2">}</span>
<span class="number">  21</span>      <span class="k1">else</span>
<span class="number">  22</span>        shapeB.canJump <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>        
<span class="number">  23</span>      <span class="k2">}</span>
<span class="number">  24</span>
<span class="number">  25</span>
<span class="number">  26</span>
<span class="number">  27</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>shapeB.isOnGround<span class="k2">)</span>          
<span class="number">  28</span>        shapeB.dy <span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>        
<span class="number">  29</span>
<span class="number">  30</span>      <span class="k1">if</span> <span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeB.isOnGround <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeB.dy <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>    
<span class="number">  31</span>      shapeB.dy <span class="k3">-</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">1</span><span class="k2">;</span> <span class="c">// got to be LESS than 0.5 in this example  </span>
<span class="number">  32</span>
<span class="number">  33</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.dy&gt;5<span class="k2">)</span>            
<span class="number">  34</span>        shapeB.dy <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  35</span>      
<span class="number">  36</span>      speed <span class="k3">+</span><span class="k3">=</span><span class="n">0</span>.<span class="n">01</span><span class="k2">;</span>
<span class="number">  37</span>      <span class="c">//pos_x +=speed*1/2;</span>
<span class="number">  38</span>      shapeB.pos_Y  <span class="k3">+</span><span class="k3">=</span> shapeB.dy<span class="k2">;</span>          
<span class="number">  39</span>
<span class="number">  40</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&gt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number">  41</span>      <span class="k2">{</span>        
<span class="number">  42</span>        shapeB.pos_Y <span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number">  43</span>        shapeB.dy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  44</span>      <span class="k2">}</span>
<span class="number">  45</span>
<span class="number">  46</span>
<span class="number">  47</span>
<span class="number">  48</span>
<span class="number">  49</span>
<span class="number">  50</span>
<span class="number">  51</span>      StartTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>      UpdateTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>    <span class="k2">}</span>
<span class="number">  54</span>  
<span class="number">  55</span>    
<span class="number">  56</span>    <span class="k1">if</span><span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span>
<span class="number">  57</span>    <span class="k2">{</span>
<span class="number">  58</span>      redraw<span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  59</span>      <span class="c">//al_draw_filled_circle(pos_x,pos_y,20,al_map_rgb(255,0,255)); THIS WAS THE WORKING BALL WITHOUT BALL STRUCT AND FUNCTIONS</span>
<span class="number">  60</span>      DrawBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>      DrawTriangle<span class="k2">(</span>shapeT,NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</span><span class="c">//HAVE EDITED OUT THE DESTROY PART AND END OF main()</span>
<span class="number">  64</span>
<span class="number">  65</span><span class="c">//THE FUNCTION BEGINS</span>
<span class="number">  66</span>
<span class="number">  67</span><span class="k1">void</span> InitBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number">  68</span><span class="k2">{</span>
<span class="number">  69</span>  shapeB.ID<span class="k3">=</span>BALL<span class="k2">;</span>
<span class="number">  70</span>  shapeB.pos_X<span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number">  71</span>  shapeB.pos_Y<span class="k3">=</span> <span class="n">380</span><span class="k2">;</span>
<span class="number">  72</span>  shapeB.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  73</span>  shapeB.speed <span class="k3">=</span> <span class="n">7</span><span class="k2">;</span>
<span class="number">  74</span>  shapeB.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  75</span>  shapeB.boundX <span class="k3">=</span> <span class="n">57</span><span class="k2">;</span>
<span class="number">  76</span>  shapeB.boundY <span class="k3">=</span> <span class="n">57</span><span class="k2">;</span>
<span class="number">  77</span>  shapeB.dx <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  78</span>  shapeB.dy <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  79</span>  shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  80</span>  shapeB.isOnGround <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span><span class="k2">}</span>
<span class="number">  83</span><span class="k1">void</span> DrawBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number">  84</span><span class="k2">{</span>
<span class="number">  85</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&lt;</span> <span class="n">380</span><span class="k2">)</span>
<span class="number">  86</span>    shapeB.isOnGround <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  87</span>  <span class="k1">else</span>
<span class="number">  88</span>    shapeB.isOnGround <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  89</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>shapeB.pos_X,shapeB.pos_Y,<span class="n">20</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span><span class="k2">}</span>
<span class="number">  91</span><span class="k1">void</span> MoveLeftBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number">  92</span><span class="k2">{</span>
<span class="number">  93</span>  shapeB.pos_X <span class="k3">-</span><span class="k3">=</span>shapeB.speed<span class="k2">;</span>
<span class="number">  94</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_X<span class="k3">&lt;</span><span class="n">20</span><span class="k2">)</span>
<span class="number">  95</span>    shapeB.pos_X <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number">  96</span><span class="k2">}</span>
<span class="number">  97</span><span class="k1">void</span> MoveRightBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number">  98</span><span class="k2">{</span>
<span class="number">  99</span>  shapeB.pos_X <span class="k3">+</span><span class="k3">=</span> shapeB.speed<span class="k2">;</span> 
<span class="number"> 100</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_X&gt;600<span class="k2">)</span>
<span class="number"> 101</span>    shapeB.pos_X <span class="k3">=</span> <span class="n">600</span><span class="k2">;</span>
<span class="number"> 102</span><span class="k2">}</span>
<span class="number"> 103</span><span class="c">//void JumpBall(Ball &amp;shapeB)            NEED TO FIGURE THIS OUT AS WELL</span>
<span class="number"> 104</span><span class="c">//{</span>
<span class="number"> 105</span><span class="c">//    if (shapeB.canJump) </span>
<span class="number"> 106</span><span class="c">//        {</span>
<span class="number"> 107</span><span class="c">//          shapeB.dy= -10;</span>
<span class="number"> 108</span><span class="c">//          shapeB.canJump = false;</span>
<span class="number"> 109</span><span class="c">//        }</span>
<span class="number"> 110</span><span class="c">//      </span>
<span class="number"> 111</span><span class="c">//    else</span>
<span class="number"> 112</span><span class="c">//    {</span>
<span class="number"> 113</span><span class="c">//      shapeB.canJump = true;</span>
<span class="number"> 114</span><span class="c">//    }</span>
<span class="number"> 115</span><span class="c">//</span>
<span class="number"> 116</span><span class="c">//    if(shapeB.pos_Y &lt; 380)</span>
<span class="number"> 117</span><span class="c">//      shapeB.dy += 0.5;</span>
<span class="number"> 118</span><span class="c">//        </span>
<span class="number"> 119</span><span class="c">//}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 22 Feb 2012 13:49:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609597/947897#target">varynoob</a> said:</div><div class="quote"><p>Neil Walker : Why impossible ?</p></div></div><p>Because that&#39;s the name of the game <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Wed, 22 Feb 2012 15:09:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The ball hangs in the air you say. Then you should ask yourself, what is the condition for the ball to fall. Could it be gravity? What is the condition for gravity to be applied? Is it ever true?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Wed, 22 Feb 2012 15:34:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Arvidsson : Sir, after trying several times, got the mistake, corrected for the JUMP. Have been working on collisions.</p><p>[EDIT]<br />CIRCLE_TRIANGLE<br />Is this okay ?</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeB.pos_X <span class="k3">+</span> shapeB.r <span class="k3">&gt;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>shapeB.pos_X <span class="k3">-</span> shapeB.r <span class="k3">&lt;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x3<span class="k2">)</span> 
        <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>shapeB.pos_Y <span class="k3">+</span> shapeB.r <span class="k3">&gt;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y2 <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.r <span class="k3">&lt;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y3<span class="k2">)</span><span class="k2">)</span>
</pre></div></div><p>

[edit]</p><p>HOW DO I CHECK IN BALL(bounding rectangle)&lt;-&gt;RECTANGLE, IF THE BALL HITS LEFT SIDE OF RECTANGLE, THE SCREEN PAUSES, ELSE IF BALL IS ON TOP EDGE OF SQUARE, IT ROLLS DOWN AND SCREEN KEEPS SCROLLING AND GAME CONTINUES!</p><p>Suggestions plz. Using this (not working): </p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">-</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number">  2</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">+</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number">  3</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">-</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number">  4</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">+</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number">  5</span>      <span class="k2">{</span>
<span class="number">  6</span>        <span class="c">//shapeT[i].collidingT = true;</span>
<span class="number">  7</span>        shapeB.lives--<span class="k2">;</span>
<span class="number">  8</span>        <span class="c">//shapeB.pos_Y = shapeT[i].pos_y2 - shapeB.r;</span>
<span class="number">  9</span>        <span class="c">//shapeT[i].speed = 0;</span>
<span class="number"> 10</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>        StartExplosions<span class="k2">(</span>explosion,shapeB.pos_X, shapeB.pos_Y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>        
<span class="number"> 14</span>      <span class="k2">}</span>
<span class="number"> 15</span>
<span class="number"> 16</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 17</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2 <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 18</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 19</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y2 <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 20</span>
<span class="number"> 21</span>
<span class="number"> 22</span>      <span class="k2">{</span>
<span class="number"> 23</span>        <span class="c">//shapeB.pos_X = shapeT[i].pos_rect_x1 - shapeB.r;</span>
<span class="number"> 24</span>        <span class="c">//shapeB.pos_Y = shapeT[i].pos_rect_y1 - shapeB.r;</span>
<span class="number"> 25</span>        <span class="c">//shapeT[i].collidingS = true;</span>
<span class="number"> 26</span>        
<span class="number"> 27</span>        
<span class="number"> 28</span>        <span class="c">//shapeT[i].speed = 0;</span>
<span class="number"> 29</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 30</span>        
<span class="number"> 31</span>      <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 22 Feb 2012 19:43:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh God, he&#39;s shouting now. <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" /></p><p>We&#39;ll never make the London Symphony.  <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /></p><div class="spoiler"><p>*sniff... <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> screw it! <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /> screw it all!<br /><span class="remote-thumbnail"><span class="json">{"name":"605641","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/d\/6de24c7282296dab186ca05f9e5d0e22.jpg","w":268,"h":331,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/d\/6de24c7282296dab186ca05f9e5d0e22"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/6/d/6de24c7282296dab186ca05f9e5d0e22-240.jpg" alt="605641" width="240" height="296" /></span></p></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Thu, 23 Feb 2012 16:05:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What are you talking about? Got no idea!! Spamming ?? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>Anyone with Circle-Triangle &amp; Circle-Rectangle collision detection simultaneous checking ? ?:-[
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Thu, 23 Feb 2012 17:46:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>With your education, you should have no trouble figuring out a formula for each type of detection; even if it&#39;s inefficient, it will do.</p><p>Once you come up with some formulas, we will gladly guide you on how to turn that formula into C++ code.</p><p>If you can figure out if a point is in a circle, if a point is in a triangle, and if a point is in a rectangle, you should be able to figure out a way to do it.</p><p>You might find it easier to treat a circle as a rectangle because if the circle&#39;s radius is less than the box&#39;s height, you&#39;ll have to check if the circle collides with its edge.</p><p>Also, he is not spamming, this is the atmosphere at a.cc .
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Thu, 23 Feb 2012 18:36:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Mark, that guy in the background may want to see about getting his uni-brow waxed <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Thu, 23 Feb 2012 19:33:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>varynoob, without trying to sound demeaning, it&#39;s very obvious that you are out of your depth here.  If you do manage to get the help you need from people here in order to get the job, then what?  It won&#39;t take long before your employer realizes that you don&#39;t have the necessary experience.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Thu, 23 Feb 2012 20:18:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>He&#39;s absolutely right I&#39;m afraid, that&#39;s why I stopped giving you hints. Sorry, but maybe it&#39;s time to get realistic. <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 23 Feb 2012 20:49:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have learnt from my mistakes sir, as everybody had told here, to try and try, and come up with things, i did the same.</p><p>Used Bounding box for circle, and bounding box of triangle to check collisions between the two, while the rectangle itself, has sides, so it is easy for that.</p><p>But what i am facing is, the collision comes out to be ok at times and weird at other times. So asked you of the flaw.</p><p>Here is the code.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">void</span> CollideTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> csize, Ball <span class="k3">&amp;</span>shapeB, Explosion <span class="k3">&amp;</span>explosion<span class="k2">)</span>   <span class="c">//FUNCTION TO CHECK BOTH THE COLLSIONS</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> csize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  4</span>  <span class="k2">{</span>
<span class="number">  5</span>    <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number">  6</span>    <span class="k2">{</span>
<span class="number">  7</span>      
<span class="number">  8</span>            
<span class="number">  9</span>       <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">-</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 10</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">+</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 11</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">-</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 12</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">+</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> 
<span class="number"> 13</span>
<span class="number"> 14</span><span class="c">//UPPER PART CHECKS FOR CIRCLE-TRIANGLE WHILE THE PART BELOW CHECKS FOR CIRCLE=RECTAGLE</span>
<span class="number"> 15</span>
<span class="number"> 16</span>          <span class="k2">(</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 17</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x2 <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 18</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 19</span>          <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y2 <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>         
<span class="number"> 20</span>
<span class="number"> 21</span>      <span class="k2">{</span>
<span class="number"> 22</span>        <span class="c">//shapeT[i].collidingT = true;</span>
<span class="number"> 23</span>        <span class="c">//shapeB.lives--;</span>
<span class="number"> 24</span>        <span class="c">//shapeB.pos_Y = shapeT[i].pos_y2 - shapeB.r;</span>
<span class="number"> 25</span>        <span class="c">//shapeT[i].speed = 0;</span>
<span class="number"> 26</span>        shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 27</span>
<span class="number"> 28</span>        StartExplosions<span class="k2">(</span>explosion,shapeB.pos_X, shapeB.pos_Y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>        
<span class="number"> 30</span>      <span class="k2">}</span>
<span class="number"> 31</span>
<span class="number"> 32</span>    <span class="k2">}</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span><span class="k2">}</span>
</div></div><p>

PS : SO I HAVE BEEN TRYING, AND HAVE COME UP WITH THE COLLISION TECHNIQUES AS WELL.</p><p>IT IS ALL ABOUT MORE UP THAN BOTTOM, MORE BOTTOM THAN UP, MORE LEFT THAN RIGHT &amp; MORE RIGHT THAN LEFT.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Thu, 23 Feb 2012 22:59:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why would you add/subtract bound_triangle_x from posy ??
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 23 Feb 2012 23:19:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Dizzy Egg : Typo sir! It was meant to be &#39;bound_triangle_y&#39;.</p><p>I have been trying out different things, but havnt really landed into any good one, as in i want to achieve if Circle hits Left of square, everything freezes except the ball, which if made to bounce, should make things back normal and scrolling.</p><p>What i did is, checked the collision with the sides of square i.e Right of circle more right than square&#39;s left &amp; Left of circle more left than Square&#39;s right.</p><p>If the condition is true, Leftcollision is true.</p><p>If Leftcollision is true, All the update functions are skipped, thus screen is freezed.</p><p>But this stuff doesnt do well for me. Code below : 
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> ssize <span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>     <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="n">5</span> <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number">  4</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number">  5</span><span class="c">/*      &amp;&amp;(shapeS[i].pos_rect_y1 &lt; shapeB.pos_Y + shapeB.boundy)</span>
<span class="number">  6</span><span class="c">      &amp;&amp;(shapeS[i].pos_rect_y1+40 &gt; shapeB.pos_Y - shapeB.boundy)*/</span><span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>      <span class="c">//StartExplosions(explosion,shapeB.pos_X, shapeB.pos_Y);</span>
<span class="number">  9</span>
<span class="number"> 10</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k2">}</span>
<span class="number"> 12</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="n">5</span> <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 13</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 14</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 15</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1<span class="k3">+</span><span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 16</span>    <span class="k2">{</span>
<span class="number"> 17</span>      <span class="c">//shapeB.pos_Y = shapeS[i].pos_rect_y1 - shapeB.boundy ;</span>
<span class="number"> 18</span>      shapeS<span class="k2">[</span>i<span class="k2">]</span>.collidingS <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 19</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k2">}</span>
<span class="number"> 21</span>
<span class="number"> 22</span>    <span class="k1">else</span>
<span class="number"> 23</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 24</span>  <span class="k2">}</span>
<span class="number"> 25</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Fri, 24 Feb 2012 00:00:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="n">5</span> <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span></span></p><p>...think about it; if shapeS[i].pos_rect_x1 = 20, and shapeB.pos_X = 50, this is <b>ALWAYS</b> going to be true! THINK ABOUT THE LOGIC!!!!!!!! <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 24 Feb 2012 00:17:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>if((shapeS[i].pos_rect_x1 -5 &lt; shapeB.pos_X + shapeB.boundx)<br />      &amp;&amp;(shapeS[i].pos_rect_x1+ 40 &gt; shapeB.pos_X - shapeB.boundx)<br />      </p><p>But then, this condition also has an &amp;&amp; thus if 1st is always true, the 2nd will only be true, if the left of  the ball is less than the right of the square!!</p><p>boundx = 23.</p><p>So for shapeS[i].pos_rect_x1 = 20, and shapeB.pos_X = 50</p><p>it will be : (15&lt;73) &amp;&amp; (60 &gt;27&gt; | TRUE </p><p>For shapeS[i].pos_rect_x1 = 20, and shapeB.pos_X = 90</p><p>it will be : (15&lt;113) &amp;&amp; (60 &gt; 67 ) | FALSE</p><p>So, it should be correct?? What&#39;s wrong? <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Fri, 24 Feb 2012 00:57:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know you tell me! What is wrong! Explain whats wrong when you run the code...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 24 Feb 2012 01:09:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh yes, sorry, i mean it collides with some squares while it doesnt with others! All random, it is something to do with my Update and Draw functions of square!</p><p>How do i check, that only if there is not square already on (x,y) position, next square should be drawn else, neither drawn nor updated(coz sometimes, invisible squares are coming up, i.e which are not drawn, but updated!)</p><p>THE SQUARE FUNCTIONS ARE AS : 
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">void</span> InitSquare<span class="k2">(</span>Square shapeS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size <span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  4</span>  <span class="k2">{</span>
<span class="number">  5</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> SQUARE<span class="k2">;</span>
<span class="number">  6</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  7</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">=</span> <span class="n">960</span><span class="k2">;</span>
<span class="number">  8</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">=</span> <span class="n">360</span><span class="k2">;</span>
<span class="number">  9</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 10</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.collidingS <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 11</span>  <span class="k2">}</span>
<span class="number"> 12</span><span class="k2">}</span>
<span class="number"> 13</span><span class="k1">void</span> DrawSquare<span class="k2">(</span>Square shapeS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 14</span><span class="k2">{</span>
<span class="number"> 15</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 16</span>  <span class="k2">{</span>
<span class="number"> 17</span>    <span class="k1">if</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 18</span>    <span class="k2">{</span>
<span class="number"> 19</span>      <span class="c">//if(random &lt; 10)// &amp;&amp; shapeT[i].pos_rect_x1 &gt; shapeT[i-1].pos_rect_x2) </span>
<span class="number"> 20</span>        <a href="http://www.allegro.cc/manual/al_draw_rounded_rectangle"><span class="a">al_draw_rounded_rectangle</span></a><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1,shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1,
<span class="number"> 21</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span><span class="n">40</span>,shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1<span class="k3">+</span><span class="n">40</span>,<span class="n">6</span>,<span class="n">6</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">255</span>,<span class="n">255</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>    <span class="k2">}</span>
<span class="number"> 23</span>  <span class="k2">}</span>
<span class="number"> 24</span><span class="k2">}</span>
<span class="number"> 25</span><span class="k1">void</span> StartSquare<span class="k2">(</span>Square shapeS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 26</span><span class="k2">{</span>
<span class="number"> 27</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 28</span>  <span class="k2">{</span>
<span class="number"> 29</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 30</span>    <span class="k2">{</span>
<span class="number"> 31</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">100</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 32</span>      <span class="k2">{</span>
<span class="number"> 33</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 34</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">=</span> <span class="n">960</span><span class="k2">;</span>
<span class="number"> 35</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">=</span> <span class="n">360</span><span class="k2">;</span>
<span class="number"> 36</span>        <span class="c">//shapeT[i].pos_rect_x2 = shapeS[i].pos_rect_x1 + 40;</span>
<span class="number"> 37</span>        <span class="c">//shapeT[i].pos_rect_y2 = shapeS[i].pos_rect_y1 + 40;</span>
<span class="number"> 38</span>
<span class="number"> 39</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 40</span>
<span class="number"> 41</span>      <span class="k2">}</span>
<span class="number"> 42</span>    <span class="k2">}</span>
<span class="number"> 43</span>  <span class="k2">}</span>
<span class="number"> 44</span><span class="k2">}</span>
<span class="number"> 45</span><span class="k1">void</span> UpdateSquare<span class="k2">(</span>Square shapeS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size, Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 46</span><span class="k2">{</span>
<span class="number"> 47</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span>size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 48</span>  <span class="k2">{</span>
<span class="number"> 49</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 50</span>    <span class="k2">{</span>
<span class="number"> 51</span>      shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="k3">=</span> shapeS<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 52</span>      <span class="c">//shapeT[i].pos_rect_x2 -= shapeS[i].speed;</span>
<span class="number"> 53</span>
<span class="number"> 54</span>
<span class="number"> 55</span>      <span class="k1">if</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span><span class="n">40</span> <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 56</span>        <span class="k2">{</span>
<span class="number"> 57</span>          shapeS<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 58</span>          shapeB.score<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 59</span>        <span class="k2">}</span>
<span class="number"> 60</span>    <span class="k2">}</span>
<span class="number"> 61</span>  <span class="k2">}</span>
<span class="number"> 62</span><span class="k2">}</span>
<span class="number"> 63</span>
<span class="number"> 64</span><span class="k1">void</span> CollideSquare<span class="k2">(</span>Square shapeS<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> ssize, Ball <span class="k3">&amp;</span>shapeB, Explosion <span class="k3">&amp;</span>explosion<span class="k2">)</span>
<span class="number"> 65</span><span class="k2">{</span>
<span class="number"> 66</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> ssize <span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 67</span>  <span class="k2">{</span>
<span class="number"> 68</span>     <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="n">5</span> <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 69</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 70</span>    <span class="k2">{</span>
<span class="number"> 71</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>   <span class="c">//CHECKING FOR COLLIOION WITH LEFT SIDE OF SQUARE</span>
<span class="number"> 72</span>    <span class="k2">}</span>
<span class="number"> 73</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="n">5</span> <span class="k3">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 74</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1<span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span>
<span class="number"> 75</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 76</span>      <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1<span class="k3">+</span><span class="n">40</span> <span class="k3">&gt;</span> shapeB.pos_Y <span class="k3">-</span> shapeB.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 77</span>    <span class="k2">{</span>
<span class="number"> 78</span>      shapeB.pos_Y <span class="k3">=</span> shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">-</span> shapeB.boundy <span class="k2">;</span> <span class="c">//THIS SHOULD MAKE BALL LAND OVER THE SQUARE WHEN ALL CONDITIONS ARE MET, BUT DOESNT</span>
<span class="number"> 79</span>      shapeS<span class="k2">[</span>i<span class="k2">]</span>.collidingS <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 80</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 81</span>    <span class="k2">}</span>
<span class="number"> 82</span>
<span class="number"> 83</span>    <span class="k1">else</span>
<span class="number"> 84</span>      shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 85</span>  <span class="k2">}</span>
<span class="number"> 86</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Fri, 24 Feb 2012 01:39:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609597/948065#target">LennyLen</a> said:</div><div class="quote"><p>varynoob, without trying to sound demeaning, it&#39;s very obvious that you are out of your depth here.  If you do manage to get the help you need from people here in order to get the job, then what?  It won&#39;t take long before your employer realizes that you don&#39;t have the necessary experience.</p></div></div><p>
Gonna have to echo this. You&#39;ll finish the game, get the job, and be fired in two weeks. The point of this assignment is to see if you can do the job. If you could, you wouldn&#39;t be back in this thread every ten minutes.</p><p>I work as a video game programmer. When I applied for the job, they told me to make a Breakout clone, and I was budgeted two days. Difference was I could actually do it. And good thing, because I&#39;ve had ample opportunity to laugh at some of the things other people send in.</p><p>Here, have a video break:</p><p><a href="http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-1">So You Want To Be A Developer Part One</a><br /><a href="http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-2">So You Want To Be A Developer Part Two</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Fri, 24 Feb 2012 04:04:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Awesome videos, 23. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 24 Feb 2012 04:44:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thankyou 23, will try harder! If you see, i have asked many a times, but have only taken from this thread &quot;Jumping mechanism&quot; and lots of advice to KEEP THINKING and TRYING. I have been doing so, and will watch these videos and take your words as motivation. Everyone here has been saying the same, that until you do it yourself, it wont be of any use!</p><p>I am almost done with the game, it may not be perfect, but atleast i have tried and got something working! Thanks again everyone.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Fri, 24 Feb 2012 05:03:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t believe we normally give this treatment to every user here.  We try to be very helpful when someone comes to us with a problem where they already did most of the hard work and have a few bugs with their implementation.  The problem is that you started the thread practically expecting us to do everything up front, so it gave a very bad impression.  Not to mention that this seems to be something for a job interview or homework which most of us here would rather see you do some research beforehand.  We will gladly help you with any of the problems, but you can&#39;t sound so desperate and demanding up front.</p><p>I did a quick Google search for &quot;circle triangle collision&quot; and &quot;circle square collision&quot; and there are some pretty relevant results returned.  You can find most of the information you are needing from sources that practically give you the answer if you look.  You may try that and if it fails to work for you, create a new thread and say, hey I found this algorithm for collision detection, this is how I implemented it and it&#39;s not quite working when I do this or that, can you help?</p><p>You may get a different response from us if that were the case.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Fri, 24 Feb 2012 05:59:28 +0000</pubDate>
	</item>
</rss>
