<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>2D game has a little problem here</title>
		<link>http://www.allegro.cc/forums/view/613732</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 04 Jan 2014 01:47:26 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Listen up guys,</p><p>I have created a side scrolling game in 800x400 display. Ball continuously moves in right direction, camera follows. Enemy triangles keep coming, ball jumps over them (NOTE: triangles are not moving,but the ball is moving towards right) . The game is fully functional if i want these triangles to overlap, but NO I don&#39;t want them to overlap.</p><p>What i tried so far: I checked for collisiondetection of a triangle relative to previous LIVE triangle. If they collide i make the current triangle[i].live = false. NOT WORKING</p><p>Long story short, HELP!! <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></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">//GLOBAL</span>
<span class="number">   3</span>NUM_TRIANGLE<span class="k3">=</span><span class="n">5</span><span class="k2">;</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="c">//Declaration</span>
<span class="number">   6</span><span class="k1">void</span> Inittriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><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">   7</span><span class="k1">void</span> Drawtriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><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">   8</span><span class="k1">void</span> Starttriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">float</span> <span class="k3">*</span>Cameraposition,<span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span><span class="k1">void</span> Updatetriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">float</span><span class="k3">*</span>Cameraposition,<span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="k1">void</span> Cameraupdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>Cameraposition,Rball <span class="k3">&amp;</span>ball,<span class="k1">int</span> BALL_WIDTH,<span class="k1">int</span> BALL_HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="c">//Somewhere in While loop.</span>
<span class="number">  14</span><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>isGameOver<span class="k2">)</span>  <span class="c">// isGameOver not true</span>
<span class="number">  15</span>      <span class="k2">{</span>
<span class="number">  16</span>        jump<span class="k2">(</span>ball,gnd<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>        Starttriangle<span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a>,Cameraposition, NUM_TRIANGLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>        Updatetriangle<span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a>,Cameraposition, NUM_TRIANGLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>        BallCollideTriangle<span class="k2">(</span>ball,<a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a>,NUM_TRIANGLE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span>        <span class="k1">if</span><span class="k2">(</span>ball.lives <span class="k3">&lt;</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  22</span>          isGameOver <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="number">  28</span><span class="c">//Definition</span>
<span class="number">  29</span><span class="k1">void</span> Inittriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  30</span><span class="k2">{</span>
<span class="number">  31</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">  32</span>  <span class="k2">{</span>
<span class="number">  33</span>    <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> ENEMY<span class="k2">;</span>
<span class="number">  34</span>    <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><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">  35</span>    <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">=</span> <span class="n">15</span><span class="k2">;</span>
<span class="number">  36</span>    <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">=</span> <span class="n">15</span><span class="k2">;</span>
<span class="number">  37</span>  <span class="k2">}</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> Drawtriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  41</span><span class="k2">{</span>
<span class="number">  42</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">  43</span>  <span class="k2">{</span>
<span class="number">  44</span>    
<span class="number">  45</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number">  46</span>    <span class="k2">{</span>
<span class="number">  47</span>            <span class="c">// TRIED to work it up in many ways, Not looking good! Aint working</span>
<span class="number">  48</span>
<span class="number">  49</span>      <span class="c">/*if( triangle[i-1].live &amp;&amp; triangle[i].x -20 &lt; triangle[i-1].x + 20 &amp;&amp;</span>
<span class="number">  50</span><span class="c">        triangle[i].x + 20 &gt; triangle[i-1].x - 20 )</span>
<span class="number">  51</span><span class="c">      {</span>
<span class="number">  52</span><span class="c">        triangle[i].live =false;</span>
<span class="number">  53</span><span class="c">        //al_draw_filled_triangle(triangle[i].x , triangle[i].y , triangle[i].x + 40, triangle[i].y , triangle[i].x + 20 , triangle[i].y - 40, al_map_rgb(255,0,255));</span>
<span class="number">  54</span><span class="c">      }</span>
<span class="number">  55</span><span class="c"></span>
<span class="number">  56</span><span class="c">      else</span>
<span class="number">  57</span><span class="c">      {*/</span>
<span class="number">  58</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_triangle"><span class="a">al_draw_filled_triangle</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.x , <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.y , <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">40</span>, <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.y , <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span> <span class="n">20</span> , <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">-</span> <span class="n">40</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">  59</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="number">  65</span><span class="k1">void</span> Starttriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">float</span> <span class="k3">*</span>Cameraposition,<span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  66</span><span class="k2">{</span>
<span class="number">  67</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">  68</span>  <span class="k2">{</span>
<span class="number">  69</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number">  70</span>    <span class="k2">{</span>
<span class="number">  71</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">200</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><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/triangle"><span class="a">triangle</span></a><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">  74</span>        <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span>  <span class="n">800</span> <span class="k3">+</span>Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  75</span>        <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">325</span><span class="k2">;</span>
<span class="number">  76</span>        
<span class="number">  77</span>      <span class="k2">}</span>
<span class="number">  78</span>    <span class="k2">}</span>
<span class="number">  79</span>  <span class="k2">}</span>
<span class="number">  80</span><span class="k2">}</span>
<span class="number">  81</span>
<span class="number">  82</span><span class="k1">void</span> Updatetriangle<span class="k2">(</span>Triangle <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span><span class="k2">]</span>,<span class="k1">float</span> <span class="k3">*</span>Cameraposition,<span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  83</span><span class="k2">{</span>
<span class="number">  84</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">  85</span>  <span class="k2">{</span>
<span class="number">  86</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number">  87</span>    <span class="k2">{</span>
<span class="number">  88</span>      
<span class="number">  89</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> Cameraposition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span>
<span class="number">  90</span>        <a href="http://www.allegro.cc/manual/triangle"><span class="a">triangle</span></a><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">  91</span>        count<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  92</span>      
<span class="number">  93</span>    <span class="k2">}</span>
<span class="number">  94</span>
<span class="number">  95</span>    
<span class="number">  96</span>  <span class="k2">}</span>
<span class="number">  97</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Fri, 03 Jan 2014 19:24:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your triangles don&#39;t seem to move in the update function. If that&#39;s the case, just ensuring they don&#39;t spawn on top of each other will mean they won&#39;t overlap.</p><p>In your Starttriangle function, after you created your triangle check collisions with all the rest of the triangles on the screen, if collision occurs, retry spawn position until it doesn&#39;t.</p><p>for retrying spawn position you could simply randomize it again or you could write some algorithms that finds the closest place where it wouldn&#39;t collide.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gezegond)</author>
		<pubDate>Fri, 03 Jan 2014 22:19:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Only spawn a new triangle after the player has moved a large enough distance?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Fri, 03 Jan 2014 22:27:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Solved it! used another triangle T to store the values of next triangle to be generated, and checked for overlapping. If not overlap, draw them!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CodeOne)</author>
		<pubDate>Sat, 04 Jan 2014 01:47:26 +0000</pubDate>
	</item>
</rss>
