<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to remove magnetic effect in collision!</title>
		<link>http://www.allegro.cc/forums/view/609656</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 01 Mar 2012 13:22:11 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello everyone,</p><p>Looking for some realism in collision and updation, i mean i have a ball in centre, squares coming from right to left, <br />1. If ball touches the left of square, everything stops.<br />2. Now the ball should be made to jump over the square, roll on and go ahead. But when i jump, the ball magnetically sticks to the box!! No realism , so what should i do to make it look smooth and kind of real!!</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>shapeS<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span> <span class="c">// checks whether the square is on the screen</span>
<span class="number">  4</span>    <span class="k2">{</span>
<span class="number">  5</span>      <span class="k1">if</span><span class="k2">(</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">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx <span class="k3">+</span><span class="n">7</span><span class="k2">)</span>
<span class="number">  6</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="k2">)</span>
<span class="number">  7</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k3">!</span><span class="k2">(</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">  8</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="k2">)</span><span class="c">// basic collision detection for top </span>
<span class="number">  9</span>      <span class="k2">{</span>
<span class="number"> 10</span>          shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 11</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="k3">-</span> <span class="n">7</span> <span class="k2">;</span> <span class="c">// this updates ball position and causes magnetic effect</span>
<span class="number"> 12</span>            shapeB.isOnSquare <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 13</span>      <span class="k2">}</span>
<span class="number"> 14</span>          
<span class="number"> 15</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">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k3">+</span> <span class="n">7</span><span class="k2">)</span>
<span class="number"> 16</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">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span><span class="k2">)</span> <span class="c">// checks for left collision</span>
<span class="number"> 17</span>      <span class="k2">{</span>
<span class="number"> 18</span>        shapeB.LeftCollision <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 19</span>      <span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span>      <span class="k1">else</span>
<span class="number"> 22</span>      <span class="k2">{</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="number"> 25</span>      <span class="k2">}</span>
<span class="number"> 26</span>    <span class="k2">}</span>
<span class="number"> 27</span>  <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Tue, 28 Feb 2012 20:23:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You are only snapping y to the top of the box, if you want to make it roll off you need to apply gravity and forward momentum.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Tue, 28 Feb 2012 23:36:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is it like, adding and &amp;&amp; comdition in the JUMP mechanism ? (!isOnGround &amp;&amp; LeftCollision) ? ? </p><p>How do i apply forward momentum ? ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 29 Feb 2012 00:08:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>changing anything in your if statement won&#39;t get the ball rolling forward.  You will need to post more code if we are to figure out how to apply forward momentum.  Usually it just means incrementing x.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Wed, 29 Feb 2012 03:00:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The code goes as this(excluding code fr BG, Explosions, Globals, main() part b4 game loop), so where do i apply momentum ?<br />also, if i want triangles and square in a particular pattern, but random at the same time, ie that pattern should be random.</p><p>How do i go for it, i understand it is just some logic, but what i want to ask is, should i take triangle and square in the same struct and same loop in else if conditions or do as i have done here with different structs.</p><p>I can attach the setup as well, if needed, the game is running, but with triangle-triangle overlap and square-triangle overlap and that magnetic effect!!</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">/***********************</span>
<span class="number">   3</span><span class="c">    GAME LOOP</span>
<span class="number">   4</span><span class="c">************************/</span>
<span class="number">   5</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">   6</span>  <span class="k2">{</span>
<span class="number">   7</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">   8</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">   9</span>    
<span class="number">  10</span>    
<span class="number">  11</span>    time_remaining <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number">  12</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>time_remaining<span class="k3">/</span><span class="n">60</span><span class="k2">)</span> % <span class="n">3</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  13</span>      inc_speed <span class="k3">+</span><span class="k3">=</span><span class="n">0</span>.<span class="n">001</span><span class="k2">;</span>
<span class="number">  14</span>
<span class="number">  15</span>
<span class="number">  16</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">  17</span>    <span class="k2">{</span>
<span class="number">  18</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  19</span>      <span class="k2">{</span>
<span class="number">  20</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  21</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">  22</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  23</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  24</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">  25</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  26</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  27</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">  28</span>          <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> TITLE<span class="k2">)</span>
<span class="number">  29</span>            ChangeState<span class="k2">(</span>state, PLAYING<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>          <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> LOST<span class="k2">)</span>
<span class="number">  31</span>            ChangeState<span class="k2">(</span>state, PLAYING<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</span>      <span class="k2">}</span>
<span class="number">  36</span>
<span class="number">  37</span>    <span class="k2">}</span>
<span class="number">  38</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">  39</span>    <span class="k2">{</span>
<span class="number">  40</span>      <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number">  41</span>      <span class="k2">{</span>
<span class="number">  42</span>      <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number">  43</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">  44</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  45</span>      <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number">  46</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">  47</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  48</span>      <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  49</span>        done<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>
<span class="number">  50</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number">  51</span>      <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number">  52</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">  53</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  54</span>      <span class="k2">}</span>
<span class="number">  55</span>    <span class="k2">}</span>
<span class="number">  56</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_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number">  57</span>    <span class="k2">{</span>
<span class="number">  58</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  59</span>    <span class="k2">}</span>
<span class="number">  60</span>
<span class="number">  61</span>    <span class="c">/***********************</span>
<span class="number">  62</span><span class="c">        UPDATE</span>
<span class="number">  63</span><span class="c">    ************************/</span>
<span class="number">  64</span>
<span class="number">  65</span>  
<span class="number">  66</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">  67</span>    <span class="k2">{</span>
<span class="number">  68</span>      redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  69</span>      <span class="c">/*if(keys[LEFT])</span>
<span class="number">  70</span><span class="c">        MoveLeftBall(shapeB);</span>
<span class="number">  71</span><span class="c">      if(keys[RIGHT])</span>
<span class="number">  72</span><span class="c">        MoveRightBall(shapeB);*/</span>
<span class="number">  73</span>
<span class="number">  74</span>
<span class="number">  75</span>
<span class="number">  76</span>      <span class="k1">if</span> <span class="k2">(</span>shapeB.isOnGround <span class="k3">|</span><span class="k3">|</span> shapeB.isOnSquare <span class="k2">)</span>           
<span class="number">  77</span>      <span class="k2">{</span> <span class="c">// means the ball is on the ground </span>
<span class="number">  78</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">  79</span>        <span class="k2">{</span>
<span class="number">  80</span>          <span class="k1">if</span> <span class="k2">(</span>shapeB.canJump<span class="k2">)</span>       <span class="c">//CAN JUMP</span>
<span class="number">  81</span>          <span class="k2">{</span>
<span class="number">  82</span>            shapeB.dy<span class="k3">=</span> <span class="k3">-</span><span class="n">10</span><span class="k2">;</span>        <span class="c">//VELOCITY UPWARDS</span>
<span class="number">  83</span>            shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>  
<span class="number">  84</span>          <span class="k2">}</span>
<span class="number">  85</span>        <span class="k2">}</span>
<span class="number">  86</span>      <span class="k1">else</span>
<span class="number">  87</span>        shapeB.canJump <span class="k3">=</span> <span class="k1">true</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="number">  91</span>
<span class="number">  92</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>shapeB.isOnGround <span class="k3">|</span><span class="k3">|</span> <span class="k3">!</span>shapeB.isOnSquare<span class="k2">)</span>          
<span class="number">  93</span>        <span class="k2">{</span>
<span class="number">  94</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">  95</span>          speed <span class="k3">=</span> <span class="n">5</span><span class="k3">+</span>inc_speed <span class="k2">;</span>
<span class="number">  96</span>        <span class="k2">}</span>
<span class="number">  97</span>      <span class="k1">else</span>
<span class="number">  98</span>        speed <span class="k3">=</span> <span class="n">3</span><span class="k3">+</span>inc_speed<span class="k2">;</span>
<span class="number">  99</span>
<span class="number"> 100</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.isOnSquare <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"> 101</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 here.  </span>
<span class="number"> 102</span>
<span class="number"> 103</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.dy&gt;5<span class="k2">)</span>            
<span class="number"> 104</span>        shapeB.dy <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 105</span>      
<span class="number"> 106</span>      shapeB.pos_Y  <span class="k3">+</span><span class="k3">=</span> shapeB.dy<span class="k2">;</span>          
<span class="number"> 107</span>
<span class="number"> 108</span>      <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&gt;</span> HEIGHT-20<span class="k2">)</span>
<span class="number"> 109</span>      <span class="k2">{</span>        
<span class="number"> 110</span>        shapeB.pos_Y <span class="k3">=</span> HEIGHT-20<span class="k2">;</span>
<span class="number"> 111</span>        shapeB.dy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</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>      <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> TITLE<span class="k2">)</span>
<span class="number"> 116</span>      <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 117</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 118</span>      <span class="k2">{</span>
<span class="number"> 119</span>        <span class="k1">if</span><span class="k2">(</span>shapeB.LeftCollision <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 120</span>        <span class="k2">{</span>
<span class="number"> 121</span>          
<span class="number"> 122</span>        UpdateBackground<span class="k2">(</span>BG<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</span>        UpdateTriangle<span class="k2">(</span>shapeT,NUM_TRIANGLES, shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>      
<span class="number"> 126</span>        UpdateSquare<span class="k2">(</span>shapeS,NUM_TRIANGLES, shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>        <span class="k2">}</span>
<span class="number"> 128</span>        UpdateExplosions<span class="k2">(</span>explosions<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>        UpdateBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>        StartTriangle<span class="k2">(</span>shapeT, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>        StartSquare<span class="k2">(</span>shapeS, NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>        CollideTriangle<span class="k2">(</span>shapeT,shapeS, NUM_TRIANGLES, shapeB, explosions<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>        CollideSquare<span class="k2">(</span>shapeS, NUM_TRIANGLES, shapeB, explosions<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>        <span class="k1">if</span><span class="k2">(</span>shapeB.lives <span class="k3">&lt;</span><span class="k3">=</span><span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> time_remaining <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 135</span>          ChangeState<span class="k2">(</span>state, LOST<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span>      <span class="k2">}</span>
<span class="number"> 137</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> LOST<span class="k2">)</span>
<span class="number"> 138</span>      <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 139</span>        
<span class="number"> 140</span>    
<span class="number"> 141</span>  <span class="c">/***********************</span>
<span class="number"> 142</span><span class="c">      RENDERING</span>
<span class="number"> 143</span><span class="c">  ************************/</span>
<span class="number"> 144</span>
<span class="number"> 145</span>
<span class="number"> 146</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"> 147</span>    <span class="k2">{</span>
<span class="number"> 148</span>      redraw<span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 149</span>
<span class="number"> 150</span>      <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> TITLE<span class="k2">)</span>
<span class="number"> 151</span>      <span class="k2">{</span>
<span class="number"> 152</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>title, <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="number"> 153</span>      <span class="k2">}</span>
<span class="number"> 154</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 155</span>      <span class="k2">{</span>
<span class="number"> 156</span>        DrawBackground<span class="k2">(</span>BG<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>        DrawBall<span class="k2">(</span>shapeB<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>        DrawTriangle<span class="k2">(</span>shapeT,NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>        DrawSquare<span class="k2">(</span>shapeS,NUM_TRIANGLES<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</span>        DrawExplosions<span class="k2">(</span>explosions<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>      
<span class="number"> 162</span>        <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font18, <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">0</span>,<span class="n">0</span>,<span class="n">0</span>,
<span class="number"> 163</span>          <span class="s">"Player has %i lives. Score : %i"</span>,shapeB.lives,shapeB.score<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>        
<span class="number"> 165</span>        <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font18, <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">600</span>,<span class="n">0</span>,<span class="n">0</span>,
<span class="number"> 166</span>          <span class="s">"Time Remaining: %i"</span>,time_remaining<span class="k3">/</span><span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 167</span>
<span class="number"> 168</span>      <span class="k2">}</span>
<span class="number"> 169</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> LOST<span class="k2">)</span>
<span class="number"> 170</span>      <span class="k2">{</span>
<span class="number"> 171</span>        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>lost, <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="number"> 172</span>        <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font18, <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">255</span>,<span class="n">255</span><span class="k2">)</span>,WIDTH <span class="k3">-</span> <span class="n">10</span> ,<span class="n">20</span>,ALLEGRO_ALIGN_RIGHT,
<span class="number"> 173</span>          <span class="s">"Final Score : %i"</span>,shapeB.score<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 174</span>      <span class="k2">}</span>
<span class="number"> 175</span>
<span class="number"> 176</span>      
<span class="number"> 177</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"> 178</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"> 179</span>          
<span class="number"> 180</span>      <span class="k2">}</span>
<span class="number"> 181</span>    <span class="k2">}</span>
<span class="number"> 182</span>  
<span class="number"> 183</span>  <span class="k2">}</span>
<span class="number"> 184</span>  
<span class="number"> 185</span>  <span class="c">/**********************************</span>
<span class="number"> 186</span><span class="c">    DESTROYING GAME OBJECTS</span>
<span class="number"> 187</span><span class="c">  **********************************/</span>
<span class="number"> 188</span>
<span class="number"> 189</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>boom<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample_instance"><span class="a">al_destroy_sample_instance</span></a><span class="k2">(</span>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 191</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>bgImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>title<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 193</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>lost<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 194</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>expImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 195</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>ballImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>  <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 197</span>  <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>  <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>font18<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</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="number"> 200</span>
<span class="number"> 201</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 202</span><span class="k2">}</span>
<span class="number"> 203</span>
<span class="number"> 204</span>
<span class="number"> 205</span>
<span class="number"> 206</span><span class="k1">void</span> InitBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image <span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 207</span><span class="k2">{</span>
<span class="number"> 208</span>  shapeB.ID<span class="k3">=</span>BALL<span class="k2">;</span>
<span class="number"> 209</span>  shapeB.pos_X<span class="k3">=</span> WIDTH<span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number"> 210</span>  shapeB.pos_Y<span class="k3">=</span> HEIGHT<span class="k2">;</span>
<span class="number"> 211</span>  shapeB.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 212</span>  shapeB.speed <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span>
<span class="number"> 213</span>  shapeB.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 214</span>  shapeB.boundx <span class="k3">=</span> <span class="n">23</span><span class="k2">;</span>
<span class="number"> 215</span>  shapeB.boundy <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 216</span>  shapeB.dx <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 217</span>  shapeB.dy <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 218</span>  shapeB.canJump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 219</span>  shapeB.isOnGround <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 220</span>  shapeB.isOnSquare <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 221</span>  shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 222</span>
<span class="number"> 223</span>  shapeB.maxFrame <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number"> 224</span>  shapeB.curFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 225</span>  shapeB.frameCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 226</span>  shapeB.frameDelay <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 227</span>  shapeB.frameWidth <span class="k3">=</span> <span class="n">64</span><span class="k2">;</span>
<span class="number"> 228</span>  shapeB.frameHeight <span class="k3">=</span> <span class="n">48</span><span class="k2">;</span>
<span class="number"> 229</span>  shapeB.animationColumns <span class="k3">=</span> <span class="n">8</span><span class="k2">;</span>
<span class="number"> 230</span>  shapeB.animationDirection <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 231</span>  shapeB.animationRow <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 232</span>
<span class="number"> 233</span>  time_remaining <span class="k3">=</span> <span class="n">10800</span><span class="k2">;</span>        <span class="c">//A calculated value to display remainging time</span>
<span class="number"> 234</span>  speed<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 235</span>  inc_speed<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 236</span>
<span class="number"> 237</span>  <span class="k1">if</span><span class="k2">(</span>image <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 238</span>    shapeB.image <span class="k3">=</span> image<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="k1">void</span> DrawBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 242</span><span class="k2">{</span>
<span class="number"> 243</span>  
<span class="number"> 244</span>  <span class="k1">int</span> fx <span class="k3">=</span> <span class="k2">(</span>shapeB.curFrame % shapeB.animationColumns<span class="k2">)</span> <span class="k3">*</span> shapeB.frameWidth<span class="k2">;</span>
<span class="number"> 245</span>  <span class="k1">int</span> fy <span class="k3">=</span> shapeB.animationRow <span class="k3">*</span> shapeB.frameHeight<span class="k2">;</span>
<span class="number"> 246</span>
<span class="number"> 247</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>shapeB.image, fx, fy, shapeB.frameWidth,
<span class="number"> 248</span>    shapeB.frameHeight, <span class="k2">(</span>shapeB.pos_X <span class="k3">-</span> shapeB.frameWidth<span class="k3">/</span><span class="n">2</span><span class="k2">)</span>, <span class="k2">(</span>shapeB.pos_Y <span class="k3">-</span> shapeB.frameHeight<span class="k3">/</span><span class="n">2</span><span class="k2">)</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 249</span>
<span class="number"> 250</span>  <span class="c">//al_draw_filled_rectangle(shapeB.pos_X - shapeB.boundx, shapeB.pos_Y - shapeB.boundy,</span>
<span class="number"> 251</span>  <span class="c">//  shapeB.pos_X + shapeB.boundx, shapeB.pos_Y + shapeB.boundy, al_map_rgba(255,0,255,100));</span>
<span class="number"> 252</span>
<span class="number"> 253</span>
<span class="number"> 254</span><span class="k2">}</span>
<span class="number"> 255</span><span class="c">//void MoveLeftBall(Ball &amp;shapeB)</span>
<span class="number"> 256</span><span class="c">//{</span>
<span class="number"> 257</span><span class="c">//  shapeB.pos_X -=shapeB.speed;</span>
<span class="number"> 258</span><span class="c">//  if(shapeB.pos_X &lt;(WIDTH/2) - 100)</span>
<span class="number"> 259</span><span class="c">//    shapeB.pos_X = (WIDTH/2) - 100;</span>
<span class="number"> 260</span><span class="c">//}</span>
<span class="number"> 261</span><span class="c">//void MoveRightBall(Ball &amp;shapeB)</span>
<span class="number"> 262</span><span class="c">//{</span>
<span class="number"> 263</span><span class="c">//  shapeB.pos_X += shapeB.speed; </span>
<span class="number"> 264</span><span class="c">//  if(shapeB.pos_X &gt;(WIDTH/2)+100)</span>
<span class="number"> 265</span><span class="c">//    shapeB.pos_X = (WIDTH/2)+100 ;</span>
<span class="number"> 266</span><span class="c">//}</span>
<span class="number"> 267</span>
<span class="number"> 268</span>
<span class="number"> 269</span><span class="k1">void</span> UpdateBall<span class="k2">(</span>Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 270</span><span class="k2">{</span>
<span class="number"> 271</span>  <span class="k1">if</span><span class="k2">(</span>shapeB.pos_Y <span class="k3">&lt;</span> HEIGHT-20<span class="k2">)</span>
<span class="number"> 272</span>    shapeB.isOnGround <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 273</span>  <span class="k1">else</span>
<span class="number"> 274</span>    shapeB.isOnGround <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 275</span>  
<span class="number"> 276</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>shapeB.LeftCollision<span class="k2">)</span>
<span class="number"> 277</span>  <span class="k2">{</span>
<span class="number"> 278</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">+</span><span class="k3">+</span>shapeB.frameCount <span class="k3">&gt;</span><span class="k3">=</span> shapeB.frameDelay<span class="k2">)</span>
<span class="number"> 279</span>    <span class="k2">{</span>
<span class="number"> 280</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">+</span><span class="k3">+</span>shapeB.curFrame <span class="k3">&gt;</span><span class="k3">=</span> shapeB.maxFrame<span class="k2">)</span>
<span class="number"> 281</span>      <span class="k2">{</span>
<span class="number"> 282</span>        shapeB.curFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 283</span>      
<span class="number"> 284</span>      <span class="k2">}</span>
<span class="number"> 285</span>
<span class="number"> 286</span>      shapeB.frameCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 287</span>    
<span class="number"> 288</span>    <span class="k2">}</span>
<span class="number"> 289</span>
<span class="number"> 290</span>  <span class="k2">}</span>
<span class="number"> 291</span><span class="k2">}</span>
<span class="number"> 292</span>
<span class="number"> 293</span>
<span class="number"> 294</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"> 295</span><span class="k2">{</span>
<span class="number"> 296</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"> 297</span>  <span class="k2">{</span>
<span class="number"> 298</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> TRIANGLE<span class="k2">;</span>
<span class="number"> 299</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"> 300</span>  
<span class="number"> 301</span>  
<span class="number"> 302</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 303</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.bound_triangle_y <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 304</span>  shapeT<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"> 305</span>  shapeT<span class="k2">[</span>i<span class="k2">]</span>.collidingT <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 306</span>  
<span class="number"> 307</span>  <span class="k2">}</span>
<span class="number"> 308</span><span class="k2">}</span>
<span class="number"> 309</span>
<span class="number"> 310</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"> 311</span><span class="k2">{</span>
<span class="number"> 312</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"> 313</span>  <span class="k2">{</span>
<span class="number"> 314</span>    <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.collidingT <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 315</span>    <span class="k2">{</span>  
<span class="number"> 316</span>
<span class="number"> 317</span>       
<span class="number"> 318</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-8,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">+</span> <span class="n">10</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-10,
<span class="number"> 319</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1<span class="k3">+</span><span class="n">8</span>,shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1<span class="k3">+</span><span class="n">10</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="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 320</span>      
<span class="number"> 321</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>
<span class="number"> 325</span>
<span class="number"> 326</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"> 327</span><span class="k2">{</span>
<span class="number"> 328</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"> 329</span>  <span class="k2">{</span>
<span class="number"> 330</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"> 331</span>    <span class="k2">{</span>
<span class="number"> 332</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">400</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 333</span>      <span class="k2">{</span>
<span class="number"> 334</span>        <span class="k1">if</span><span class="k2">(</span>time_remaining % <span class="n">2</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> time_remaining % <span class="n">25</span> <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 335</span>        <span class="k2">{</span>
<span class="number"> 336</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"> 337</span>          shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">=</span> WIDTH<span class="k2">;</span>  
<span class="number"> 338</span>          shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_y1 <span class="k3">=</span> HEIGHT-10<span class="k2">;</span>
<span class="number"> 339</span>        
<span class="number"> 340</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 341</span>        <span class="k2">}</span>
<span class="number"> 342</span>      <span class="k2">}</span>
<span class="number"> 343</span>    <span class="k2">}</span>
<span class="number"> 344</span>  <span class="k2">}</span>
<span class="number"> 345</span><span class="k2">}</span>
<span class="number"> 346</span>
<span class="number"> 347</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, Ball <span class="k3">&amp;</span>shapeB<span class="k2">)</span>
<span class="number"> 348</span><span class="k2">{</span>
<span class="number"> 349</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"> 350</span>  <span class="k2">{</span>
<span class="number"> 351</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> shapeT<span class="k2">[</span>i<span class="k2">]</span>.collidingT <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>
<span class="number"> 352</span>    <span class="k2">{</span>
<span class="number"> 353</span>      shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1 <span class="k3">-</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number"> 354</span>
<span class="number"> 355</span>
<span class="number"> 356</span>
<span class="number"> 357</span>      <span class="k1">if</span><span class="k2">(</span>shapeT<span class="k2">[</span>i<span class="k2">]</span>.pos_x1-15 <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 358</span>        <span class="k2">{</span>
<span class="number"> 359</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"> 360</span>          shapeB.score<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 361</span>        <span class="k2">}</span>
<span class="number"> 362</span>    <span class="k2">}</span>
<span class="number"> 363</span>  <span class="k2">}</span>
<span class="number"> 364</span><span class="k2">}</span>
<span class="number"> 365</span>
<span class="number"> 366</span><span class="k1">void</span> CollideTriangle<span class="k2">(</span>Triangle shapeT<span class="k2">[</span><span class="k2">]</span>, Square shapeS<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="number"> 367</span><span class="k2">{</span>
<span class="number"> 368</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"> 369</span>  <span class="k2">{</span>
<span class="number"> 370</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"> 371</span>    <span class="k2">{</span>
<span class="number"> 372</span>      
<span class="number"> 373</span>            
<span class="number"> 374</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"> 375</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"> 376</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_y <span class="k3">&lt;</span> shapeB.pos_Y <span class="k3">+</span> shapeB.boundy<span class="k2">)</span>
<span class="number"> 377</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_y <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"> 378</span>      <span class="k2">{</span>
<span class="number"> 379</span>        
<span class="number"> 380</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"> 381</span>        shapeB.pos_Y <span class="k3">=</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_y <span class="k3">-</span> shapeB.boundy <span class="k3">-</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 382</span>
<span class="number"> 383</span>        StartExplosions<span class="k2">(</span>explosion,shapeB.pos_X, shapeB.pos_Y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 384</span>        <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>boom, <span class="n">1</span>,<span class="n">0</span>,<span class="n">1</span>,ALLEGRO_PLAYMODE_ONCE,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 385</span>        shapeB.lives--<span class="k2">;</span>
<span class="number"> 386</span>                
<span class="number"> 387</span>      <span class="k2">}</span>
<span class="number"> 388</span>       <span class="c">/*if(time_remaining % 25 == 0)</span>
<span class="number"> 389</span><span class="c">       {</span>
<span class="number"> 390</span><span class="c">         if(shapeT[i].pos_x1 - shapeT[i].bound_triangle_x &lt; shapeS[i].pos_rect_x1 + 40 </span>
<span class="number"> 391</span><span class="c">           &amp;&amp; shapeT[i].pos_y1 - shapeT[i].bound_triangle_y &lt; shapeS[i].pos_rect_y1+40</span>
<span class="number"> 392</span><span class="c">           &amp;&amp; shapeS[i].pos_rect_x1 &lt; shapeT[i].pos_x1+shapeT[i].bound_triangle_x </span>
<span class="number"> 393</span><span class="c">           &amp;&amp; shapeS[i].pos_rect_y1 &lt; shapeT[i].pos_y1+shapeT[i].bound_triangle_y)</span>
<span class="number"> 394</span><span class="c">         {</span>
<span class="number"> 395</span><span class="c">           shapeT[i].collidingT = true;</span>
<span class="number"> 396</span><span class="c">         </span>
<span class="number"> 397</span><span class="c">         }</span>
<span class="number"> 398</span><span class="c"></span>
<span class="number"> 399</span><span class="c">       }*/</span>
<span class="number"> 400</span>
<span class="number"> 401</span>
<span class="number"> 402</span>
<span class="number"> 403</span>
<span class="number"> 404</span>
<span class="number"> 405</span>
<span class="number"> 406</span>
<span class="number"> 407</span>
<span class="number"> 408</span>    <span class="k2">}</span>
<span class="number"> 409</span>  <span class="k2">}</span>
<span class="number"> 410</span>
<span class="number"> 411</span><span class="k2">}</span>
<span class="number"> 412</span>
<span class="number"> 413</span>
<span class="number"> 414</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"> 415</span><span class="k2">{</span>
<span class="number"> 416</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"> 417</span>  <span class="k2">{</span>
<span class="number"> 418</span>    shapeS<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> SQUARE<span class="k2">;</span>
<span class="number"> 419</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"> 420</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"> 421</span>  <span class="k2">}</span>
<span class="number"> 422</span><span class="k2">}</span>
<span class="number"> 423</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"> 424</span><span class="k2">{</span>
<span class="number"> 425</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"> 426</span>  <span class="k2">{</span>
<span class="number"> 427</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"> 428</span>    <span class="k2">{</span>
<span class="number"> 429</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"> 430</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"> 431</span>    <span class="k2">}</span>
<span class="number"> 432</span>  <span class="k2">}</span>
<span class="number"> 433</span><span class="k2">}</span>
<span class="number"> 434</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"> 435</span><span class="k2">{</span>
<span class="number"> 436</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"> 437</span>  <span class="k2">{</span>
<span class="number"> 438</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"> 439</span>    <span class="k2">{</span>
<span class="number"> 440</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"> 441</span>      <span class="k2">{</span>
<span class="number"> 442</span>        <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>time_remaining % <span class="n">25</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 443</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"> 444</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">=</span> WIDTH<span class="k3">+</span><span class="n">40</span><span class="k2">;</span>
<span class="number"> 445</span>        shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_y1 <span class="k3">=</span> HEIGHT-40<span class="k2">;</span>
<span class="number"> 446</span>        
<span class="number"> 447</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 448</span>
<span class="number"> 449</span>      <span class="k2">}</span>
<span class="number"> 450</span>    <span class="k2">}</span>
<span class="number"> 451</span>  <span class="k2">}</span>
<span class="number"> 452</span><span class="k2">}</span>
<span class="number"> 453</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"> 454</span><span class="k2">{</span>
<span class="number"> 455</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"> 456</span>  <span class="k2">{</span>
<span class="number"> 457</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"> 458</span>    <span class="k2">{</span>
<span class="number"> 459</span>      shapeS<span class="k2">[</span>i<span class="k2">]</span>.pos_rect_x1 <span class="k3">-</span><span class="k3">=</span> speed<span class="k2">;</span>
<span class="number"> 460</span>      
<span class="number"> 461</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"> 462</span>        <span class="k2">{</span>
<span class="number"> 463</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"> 464</span>          shapeB.score<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 465</span>        <span class="k2">}</span>
<span class="number"> 466</span>    <span class="k2">}</span>
<span class="number"> 467</span>  <span class="k2">}</span>
<span class="number"> 468</span><span class="k2">}</span>
<span class="number"> 469</span>
<span class="number"> 470</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"> 471</span><span class="k2">{</span>
<span class="number"> 472</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"> 473</span>  <span class="k2">{</span>
<span class="number"> 474</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"> 475</span>    <span class="k2">{</span>
<span class="number"> 476</span>      <span class="k1">if</span><span class="k2">(</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">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx <span class="k3">+</span><span class="n">7</span><span class="k2">)</span>
<span class="number"> 477</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="k2">)</span>
<span class="number"> 478</span>        <span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k3">!</span><span class="k2">(</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"> 479</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="k2">)</span>
<span class="number"> 480</span>      <span class="k2">{</span>
<span class="number"> 481</span>          shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 482</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="k3">-</span> <span class="n">7</span> <span class="k2">;</span>
<span class="number"> 483</span>            shapeB.isOnSquare <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 484</span>      <span class="k2">}</span>
<span class="number"> 485</span>          
<span class="number"> 486</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">&lt;</span> shapeB.pos_X <span class="k3">+</span> shapeB.boundx<span class="k3">+</span> <span class="n">7</span><span class="k2">)</span>
<span class="number"> 487</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">&gt;</span> shapeB.pos_X <span class="k3">-</span> shapeB.boundx<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 488</span>      <span class="k2">{</span>
<span class="number"> 489</span>        shapeB.LeftCollision <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 490</span>      <span class="k2">}</span>
<span class="number"> 491</span>
<span class="number"> 492</span>      <span class="k1">else</span>
<span class="number"> 493</span>      <span class="k2">{</span>
<span class="number"> 494</span>        shapeB.LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 495</span>        
<span class="number"> 496</span>      <span class="k2">}</span>
<span class="number"> 497</span>    <span class="k2">}</span>
<span class="number"> 498</span>  <span class="k2">}</span>
<span class="number"> 499</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Wed, 29 Feb 2012 13:38:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I still don&#39;t see anywhere where you are updating your x position.  If you are on top of a square just keep your x position incrementing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Steve Terry)</author>
		<pubDate>Thu, 01 Mar 2012 09:14:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The x position, increments by itself. i.e the Square keeps on scrolling towards left, while ball is in the same position during the gameplay! <br />What i meant to say was, when the ball collides with the left of square or comes on top, it magnetically sticks to the square, until the square scrolls beyond the ball&#39;s position!</p><p>Also, the LeftCollision value does not get updated in the Update() section!!</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 "GameObject.h"</span>
<span class="number">   2</span>
<span class="number">   3</span>GameObject <span class="k2">:</span><span class="k2">:</span> GameObject<span class="k2">(</span><span class="k2">)</span>
<span class="number">   4</span><span class="k2">{</span>
<span class="number">   5</span>  x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   6</span>  y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   7</span>
<span class="number">   8</span>  velX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   9</span>  velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span>  dirX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  12</span>  dirY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  13</span>  
<span class="number">  14</span>  boundX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  15</span>  boundY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span>  LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  18</span>  
<span class="number">  19</span>
<span class="number">  20</span>  maxFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  21</span>  curFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  22</span>  frameCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  23</span>  frameDelay <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  24</span>  frameWidth <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  25</span>  frameHeight <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  26</span>  animationColumns <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  27</span>  animationDirection <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>  image <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>  alive <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  32</span>  collidable <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  33</span><span class="k2">}</span>
<span class="number">  34</span>
<span class="number">  35</span><span class="k1">void</span> GameObject <span class="k2">:</span><span class="k2">:</span> Destroy<span class="k2">(</span><span class="k2">)</span>
<span class="number">  36</span><span class="k2">{</span>
<span class="number">  37</span>  
<span class="number">  38</span><span class="k2">}</span>
<span class="number">  39</span>
<span class="number">  40</span><span class="k1">void</span> GameObject <span class="k2">:</span><span class="k2">:</span>  Init<span class="k2">(</span><span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">float</span> velX, <span class="k1">float</span> velY, <span class="k1">int</span> dirX, <span class="k1">int</span> dirY, <span class="k1">int</span> boundX, <span class="k1">int</span> boundY<span class="k2">)</span>
<span class="number">  41</span><span class="k2">{</span>
<span class="number">  42</span>  GameObject <span class="k2">:</span><span class="k2">:</span> x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number">  43</span>  GameObject <span class="k2">:</span><span class="k2">:</span> y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>  GameObject <span class="k2">:</span><span class="k2">:</span> velX <span class="k3">=</span> velX<span class="k2">;</span>
<span class="number">  46</span>  GameObject <span class="k2">:</span><span class="k2">:</span> velY <span class="k3">=</span> velY<span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</span>  GameObject <span class="k2">:</span><span class="k2">:</span> dirX <span class="k3">=</span> dirX<span class="k2">;</span>
<span class="number">  49</span>  GameObject <span class="k2">:</span><span class="k2">:</span> dirY <span class="k3">=</span> dirY<span class="k2">;</span>
<span class="number">  50</span>
<span class="number">  51</span>  GameObject <span class="k2">:</span><span class="k2">:</span> boundX <span class="k3">=</span> boundX<span class="k2">;</span>
<span class="number">  52</span>  GameObject <span class="k2">:</span><span class="k2">:</span> boundY <span class="k3">=</span> boundY<span class="k2">;</span>
<span class="number">  53</span><span class="k2">}</span>
<span class="number">  54</span><span class="k1">void</span> GameObject <span class="k2">:</span><span class="k2">:</span> Update<span class="k2">(</span><span class="k2">)</span>
<span class="number">  55</span><span class="k2">{</span>
<span class="number">  56</span>  <span class="k1">if</span><span class="k2">(</span>LeftCollision <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span>            <span class="c">// Always remains false!! Inspite of it being updated to TRUE, below in the Check Collision section!!</span>
<span class="number">  57</span>  <span class="k2">{</span>
<span class="number">  58</span>    x <span class="k3">+</span><span class="k3">=</span> velX <span class="k3">*</span> dirX<span class="k2">;</span>
<span class="number">  59</span>    y <span class="k3">+</span><span class="k3">=</span> velY <span class="k3">*</span> dirY<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="k1">void</span> GameObject <span class="k2">:</span><span class="k2">:</span> Render<span class="k2">(</span><span class="k2">)</span>
<span class="number">  63</span><span class="k2">{</span>
<span class="number">  64</span><span class="k2">}</span>
<span class="number">  65</span>
<span class="number">  66</span><span class="k1">bool</span> GameObject <span class="k2">:</span><span class="k2">:</span> CheckCollisions<span class="k2">(</span>GameObject <span class="k3">*</span>otherObject<span class="k2">)</span>
<span class="number">  67</span><span class="k2">{</span>
<span class="number">  68</span>  <span class="k1">float</span> oX <span class="k3">=</span> otherObject-&gt;GetX<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  69</span>  <span class="k1">float</span> oY <span class="k3">=</span> otherObject-&gt;GetY<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>  <span class="k1">int</span> obX <span class="k3">=</span> otherObject-&gt;GetBoundX<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>  <span class="k1">int</span> obY <span class="k3">=</span> otherObject-&gt;GetBoundY<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>
<span class="number">  74</span>
<span class="number">  75</span>    <span class="k1">if</span><span class="k2">(</span> x <span class="k3">+</span> boundX <span class="k3">&gt;</span> oX <span class="k3">-</span> obX <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number">  76</span>    x <span class="k3">-</span> boundX <span class="k3">&lt;</span> oX <span class="k3">+</span> obX <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number">  77</span>    y <span class="k3">+</span> boundY <span class="k3">&gt;</span> oY <span class="k3">-</span> obY <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number">  78</span>    y <span class="k3">-</span> boundY <span class="k3">&lt;</span> oY <span class="k3">+</span> obY <span class="k3">&amp;</span><span class="k3">&amp;</span> otherObject-&gt;GetID<span class="k2">(</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> TRIANGLE<span class="k2">)</span>
<span class="number">  79</span>  <span class="k2">{</span>
<span class="number">  80</span>    <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  81</span>  <span class="k2">}</span>
<span class="number">  82</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>oX <span class="k3">&lt;</span> x <span class="k3">+</span> boundX <span class="k3">+</span> <span class="n">14</span><span class="k2">)</span><span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>oX<span class="k3">+</span> <span class="n">40</span> <span class="k3">&gt;</span>x <span class="k3">-</span> boundX<span class="k2">)</span><span class="k2">)</span><span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k3">!</span><span class="k2">(</span><span class="k2">(</span>oY <span class="k3">&lt;</span> y <span class="k3">+</span> boundY<span class="k2">)</span><span class="k3">&amp;</span><span class="k3">&amp;</span><span class="k2">(</span>oY<span class="k3">+</span><span class="n">40</span> <span class="k3">&gt;</span> y <span class="k3">-</span> boundY<span class="k2">)</span><span class="k2">)</span> 
<span class="number">  83</span>    <span class="k3">&amp;</span><span class="k3">&amp;</span> otherObject-&gt;GetID<span class="k2">(</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> SQUARE<span class="k2">)</span>
<span class="number">  84</span>  <span class="k2">{</span>
<span class="number">  85</span>    y <span class="k3">=</span> oY <span class="k3">-</span> boundX<span class="k2">;</span>
<span class="number">  86</span>    <span class="c">//x = oX + 40;</span>
<span class="number">  87</span>    <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  88</span>  <span class="k2">}</span>
<span class="number">  89</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>oX <span class="k3">&lt;</span> x <span class="k3">+</span> boundX <span class="k3">+</span> <span class="n">14</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>oX <span class="k3">&gt;</span> x <span class="k3">-</span> boundX<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> otherObject-&gt;GetID<span class="k2">(</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> SQUARE<span class="k2">)</span>
<span class="number">  90</span>  <span class="k2">{</span>
<span class="number">  91</span>    LeftCollision <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>      <span class="c">//this becomes true, as and when condition is me</span>
<span class="number">  92</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  93</span>  <span class="k2">}</span>
<span class="number">  94</span>  <span class="k1">else</span>
<span class="number">  95</span>  <span class="k2">{</span>
<span class="number">  96</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  97</span>    LeftCollision <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  98</span>  <span class="k2">}</span>
<span class="number">  99</span><span class="k2">}</span>
<span class="number"> 100</span><span class="k1">void</span> GameObject <span class="k2">:</span><span class="k2">:</span> Collided<span class="k2">(</span><span class="k1">int</span> objectID<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="k2">}</span>
<span class="number"> 104</span><span class="k1">bool</span> GameObject <span class="k2">:</span><span class="k2">:</span> Collidable<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 105</span><span class="k2">{</span>
<span class="number"> 106</span>  <span class="k1">return</span> alive <span class="k3">&amp;</span><span class="k3">&amp;</span> collidable<span class="k2">;</span>
<span class="number"> 107</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (varynoob)</author>
		<pubDate>Thu, 01 Mar 2012 13:22:11 +0000</pubDate>
	</item>
</rss>
