<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Help with keyboard and graphics.</title>
		<link>http://www.allegro.cc/forums/view/589766</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 31 Jan 2007 16:51:48 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have two questions here, so I&#39;ll address them individually.</p><p>1: In the game I am making, you need to press a key to fire a bullet. When I press the key though, it fires multiple bullets at once (which is bad because they need to be fired individually).<br /><span class="source-code"><span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_D<span class="k2">]</span><span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span><br />Is the code I use to trigger firing a bullet. What&#39;s the best way to fix it?</p><p>2: My game runs at 16 bit colour depth (it always has, purely because I feel like it). The graphics for use in game are stored as bitmaps. When I try using 16-bit bitmaps in-game (they are 16-bit because there is no point in them being any more detailed, it won&#39;t show any more detail at 16-bit colour, obviously) they just show up as black squares the size of the bitmap. I can fix it by saving the bitmaps at any other colour depth (or indexed colour, which can be handy for the ones that only have a few different colours). As I said, I don&#39;t want to go to all the hassle of converting all my bitmaps to a different colour depth and since my game is skinnable by the end user I don&#39;t want them to have problems.<br />This sets the graphics mode:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED,<span class="n">640</span>,<span class="n">480</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">;</span>
</pre></div></div><p>
This loads a graphic:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>background<span class="k2">;</span>
background <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"background.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
And this displays that graphic:<br /><span class="source-code"><a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,background,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></span><br />Finally, since I&#39;m using double buffering, this creates the temporary buffer:<br /><span class="source-code">buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span></span></p><p>Any and all help with these problems would be greatly appreciated.<br />Thanks, Konedima.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 07:22:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">bool</span> kb <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span> KEY_D <span class="k2">]</span> <span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></td></tr><tr><td class="number">5</td><td>    <span class="k1">if</span> <span class="k2">(</span> <span class="k3">!</span>kb <span class="k2">)</span></td></tr><tr><td class="number">6</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>        <span class="c">// just pressed</span></td></tr><tr><td class="number">8</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td>    kb <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k2">}</span></td></tr><tr><td class="number">12</td><td><span class="k1">else</span></td></tr><tr><td class="number">13</td><td><span class="k2">{</span></td></tr><tr><td class="number">14</td><td>    <span class="k1">if</span> <span class="k2">(</span> kb <span class="k2">)</span></td></tr><tr><td class="number">15</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">16</td><td>        <span class="c">// just released</span></td></tr><tr><td class="number">17</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>    kb <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Sun, 28 Jan 2007 07:52:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>if you&#39;re using c++:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;vector&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="c">////////////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">6</td><td><span class="c">////////////////////////////////////////////////////////////////////////////////</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">class</span> control_button_class</td></tr><tr><td class="number">9</td><td><span class="k2">{</span></td></tr><tr><td class="number">10</td><td>public:</td></tr><tr><td class="number">11</td><td>     <span class="k1">bool</span> pressed<span class="k2">;</span></td></tr><tr><td class="number">12</td><td>     <span class="k1">bool</span> just_pressed<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>     <span class="k1">bool</span> just_released<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>     </td></tr><tr><td class="number">15</td><td>     <span class="k1">int</span> key_name<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>     </td></tr><tr><td class="number">17</td><td>     control_button_class<span class="k2">(</span><span class="k1">int</span> al_key_n<span class="k2">)</span></td></tr><tr><td class="number">18</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>         key_name <span class="k3">=</span> al_key_n<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>         pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>         just_pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>         just_released <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>     </td></tr><tr><td class="number">25</td><td>     <span class="k1">void</span> set_key<span class="k2">(</span><span class="k1">int</span> al_key_n<span class="k2">)</span></td></tr><tr><td class="number">26</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">27</td><td>         key_name <span class="k3">=</span> al_key_n<span class="k2">;</span></td></tr><tr><td class="number">28</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td>     <span class="k1">void</span> update<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">31</td><td>     <span class="k2">{</span></td></tr><tr><td class="number">32</td><td>         just_pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> </td></tr><tr><td class="number">33</td><td>         just_released <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> </td></tr><tr><td class="number">34</td><td>          </td></tr><tr><td class="number">35</td><td>         <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>key_name<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pressed<span class="k2">)</span> <span class="k2">{</span> just_released <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">36</td><td>         <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>key_name<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">37</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">38</td><td>             pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>             just_pressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">41</td><td>         </td></tr><tr><td class="number">42</td><td>         <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>key_name<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>pressed<span class="k2">)</span> <span class="k2">{</span> just_pressed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">43</td><td>         <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>key_name<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">44</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">45</td><td>             pressed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>             just_released <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>         <span class="k2">}</span></td></tr><tr><td class="number">48</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">49</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td><span class="k1">class</span> controls_manager_class</td></tr><tr><td class="number">53</td><td><span class="k2">{</span></td></tr><tr><td class="number">54</td><td>public:</td></tr><tr><td class="number">55</td><td>      vector<span class="k3">&lt;</span>control_button_class&gt; button<span class="k2">;</span></td></tr><tr><td class="number">56</td><td>      </td></tr><tr><td class="number">57</td><td>      controls_manager_class<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">58</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">59</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">60</td><td>      </td></tr><tr><td class="number">61</td><td>      <span class="k1">void</span> add_button<span class="k2">(</span><span class="k1">int</span> al_key<span class="k2">)</span></td></tr><tr><td class="number">62</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">63</td><td>           <span class="k1">bool</span> button_used <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>           <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>button.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">65</td><td>           <span class="k2">{</span></td></tr><tr><td class="number">66</td><td>               <span class="k1">if</span> <span class="k2">(</span>button<span class="k3">&lt;</span>i&gt;.key_name <span class="k3">=</span><span class="k3">=</span> al_key<span class="k2">)</span> button_used <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>           <span class="k2">}</span> </td></tr><tr><td class="number">68</td><td>           <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>button_used<span class="k2">)</span> button.push_back<span class="k2">(</span>control_button_class<span class="k2">(</span>al_key<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">70</td><td>      </td></tr><tr><td class="number">71</td><td>      <span class="k1">void</span> update<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">72</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>           <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>button.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> button<span class="k3">&lt;</span>i&gt;.update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">75</td><td>      </td></tr><tr><td class="number">76</td><td>      <span class="k1">bool</span> pressed<span class="k2">(</span><span class="k1">int</span> al_key<span class="k2">)</span></td></tr><tr><td class="number">77</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">78</td><td>           <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>button.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">79</td><td>           <span class="k2">{</span></td></tr><tr><td class="number">80</td><td>               <span class="k1">if</span> <span class="k2">(</span>button<span class="k3">&lt;</span>i&gt;.key_name <span class="k3">=</span><span class="k3">=</span> al_key<span class="k2">)</span> <span class="k1">return</span> button<span class="k3">&lt;</span>i&gt;.pressed<span class="k2">;</span></td></tr><tr><td class="number">81</td><td>           <span class="k2">}</span></td></tr><tr><td class="number">82</td><td>           add_button<span class="k2">(</span>al_key<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">83</td><td>           <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">85</td><td>      </td></tr><tr><td class="number">86</td><td>      <span class="k1">bool</span> just_pressed<span class="k2">(</span><span class="k1">int</span> al_key<span class="k2">)</span></td></tr><tr><td class="number">87</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">88</td><td>           <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>button.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">89</td><td>           <span class="k2">{</span></td></tr><tr><td class="number">90</td><td>              <span class="k1">if</span> <span class="k2">(</span>button<span class="k3">&lt;</span>i&gt;.key_name <span class="k3">=</span><span class="k3">=</span> al_key<span class="k2">)</span> <span class="k1">return</span> button<span class="k3">&lt;</span>i&gt;.just_pressed<span class="k2">;</span></td></tr><tr><td class="number">91</td><td>           <span class="k2">}</span></td></tr><tr><td class="number">92</td><td>           add_button<span class="k2">(</span>al_key<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">93</td><td>           <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">94</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">95</td><td>&#160;</td></tr><tr><td class="number">96</td><td>      <span class="k1">bool</span> just_released<span class="k2">(</span><span class="k1">int</span> al_key<span class="k2">)</span></td></tr><tr><td class="number">97</td><td>      <span class="k2">{</span></td></tr><tr><td class="number">98</td><td>           <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>button.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">99</td><td>           <span class="k2">{</span></td></tr><tr><td class="number">100</td><td>               <span class="k1">if</span> <span class="k2">(</span>button<span class="k3">&lt;</span>i&gt;.key_name <span class="k3">=</span><span class="k3">=</span> al_key<span class="k2">)</span> <span class="k1">return</span> button<span class="k3">&lt;</span>i&gt;.just_released<span class="k2">;</span></td></tr><tr><td class="number">101</td><td>           <span class="k2">}</span></td></tr><tr><td class="number">102</td><td>           add_button<span class="k2">(</span>al_key<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">103</td><td>           <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">104</td><td>      <span class="k2">}</span></td></tr><tr><td class="number">105</td><td>&#160;</td></tr><tr><td class="number">106</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">107</td><td>&#160;</td></tr><tr><td class="number">108</td><td>&#160;</td></tr><tr><td class="number">109</td><td>controls_manager_class input_controller<span class="k2">;</span></td></tr><tr><td class="number">110</td><td>&#160;</td></tr><tr><td class="number">111</td><td><span class="p">#define pressed(x)                      input_controller.pressed(x)</span></td></tr><tr><td class="number">112</td><td><span class="p">#define just_pressed(x)                 input_controller.just_pressed(x)</span></td></tr><tr><td class="number">113</td><td><span class="p">#define just_released(x)                input_controller.just_released(x)</span></td></tr></tbody></table></div></div><p>

it&#39;s easy to use!  just</p><p><span class="source-code"><span class="k1">if</span> <span class="k2">(</span>just_pressed<span class="k2">(</span>KEY_D<span class="k2">)</span><span class="k2">)</span> fire_bullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Sun, 28 Jan 2007 08:13:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>konedima, your avatar rocks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sun, 28 Jan 2007 08:15:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> k <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span> ? <span class="k2">(</span><a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span> <span class="k2">:</span> <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
...
<span class="k1">if</span><span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_D<span class="k2">)</span>
    player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Why do you people keep insisting on using key[] in a way it wasn&#39;t designed for?</p><p>Also, the ordering of how you call set_gfx_mode and load_bitmap is very important. When using Allegro properly, there&#39;s really no reason to restrict to a specific color depth, unless you&#39;re using palette effects (which you&#39;re obviously not). You should try to use desktop_color_depth() whenever possible, otherwise you may get a bad speed hit from color conversions.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 08:26:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m having mixed success with your suggestions.<br />And by mixed, I mean none.</p><p>DanielH: That does nothing, basically. The bullets fire in shorter bursts but I need it to be that only one fires.</p><p>Mark Oates: When I put that in (where I thought it should be, I&#39;m pretty new to C++ but I think I did it right), and I press the key, it doesn&#39;t do anything at all.</p><p>Paul whoknows: Thanks!</p><p>Kitty Cat: For the keys, that doesn&#39;t work. Like Mark&#39;s, the key presses don&#39;t do anything. And I did set it the colour depth to desktop_color_depth(), thanks for the advice. It&#39;s not any faster (it was never particularly slow, and I have to slow it down to keep it at a decent speed) and it doesn&#39;t fix my graphics problem. It still displays my 16 bit bitmaps as black.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 09:38:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re going to have to show more code, then.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 09:47:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How much do you want?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 09:49:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Initialization (where you call set_gfx_mode, create_bitmap, load_bitmap, and stuff), and your input routine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 10:01:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>These are missing some parts inbetween, but all these bits are shown in the order they appear in the code.
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>ball<span class="k2">;</span>
<a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>background<span class="k2">;</span>
</pre></div></div><p>
Same for the rest of the graphics.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> player1size<span class="k2">;</span>
<span class="k1">int</span> player1score<span class="k2">;</span>
</pre></div></div><p>
Same for the rest of the global variables.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> loadgraphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> scoreforone<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
Same for the rest of the functions.
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// Main section</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <span class="c">// Set up all the Allegro functions</span></td></tr><tr><td class="number">4</td><td>    <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/desktop_color_depth" target="_blank"><span class="a">desktop_color_depth</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED,<span class="n">640</span>,<span class="n">480</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k3">!</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>       <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Unable to set graphics mode."</span>,<a href="http://www.allegro.cc/manual/allegro_error" target="_blank"><span class="a">allegro_error</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>       <span class="k2">}</span></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/set_window_title" target="_blank"><span class="a">set_window_title</span></a><span class="k2">(</span><span class="s">"War Pong"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <a href="http://www.allegro.cc/manual/set_config_file" target="_blank"><span class="a">set_config_file</span></a><span class="k2">(</span><span class="s">"warpong.cfg"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    <span class="c">// Set the random seed</span></td></tr><tr><td class="number">13</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>        <span class="c">// Create bitmap for buffer to go into</span></td></tr><tr><td class="number">15</td><td>    buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><span class="n">640</span>,<span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="c">// Run loading functions</span></td></tr><tr><td class="number">17</td><td>    setvars<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    loadgraphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    makebats<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    scoreforone<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    scorefortwo<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>    resetbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>    <span class="c">// Create new ball for start of new game</span></td></tr><tr><td class="number">24</td><td>    newball<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>    <span class="c">// Go to the game loop</span></td></tr><tr><td class="number">26</td><td>    maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span></td></tr><tr><td class="number">28</td><td><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span></td></tr></tbody></table></div></div><p>
That&#39;s the entire main loop.
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// Player 1 input and display</span></td></tr><tr><td class="number">2</td><td><span class="k1">void</span> playerone<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player1bat,<span class="n">0</span>,player1y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_D<span class="k2">]</span><span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">8</td><td><span class="c">// Player 2 input and display</span></td></tr><tr><td class="number">9</td><td><span class="k1">void</span> playertwo<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">10</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player2bat,<span class="n">620</span>,player2y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span><span class="k2">)</span> player2newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>     <span class="k2">}</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="c">// General (non-player specific) input</span></td></tr><tr><td class="number">17</td><td><span class="k1">void</span> generalinput<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">18</td><td>     <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Those are the only functions that take keyboard input.<br />If you need any more just ask.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 10:08:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Unless you&#39;re disabling color conversions, I see no reason why your graphics come out black. Though I can&#39;t see the code where you actually load the graphics.</p><p>As for input, you&#39;re mixing your logic and drawing. Something like this would work:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// General input</span></td></tr><tr><td class="number">2</td><td><span class="k1">void</span> generalinput<span class="k2">(</span><span class="k1">int</span> k<span class="k2">)</span></td></tr><tr><td class="number">3</td><td><span class="k2">{</span></td></tr><tr><td class="number">4</td><td>    <span class="c">// Player 1</span></td></tr><tr><td class="number">5</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_D<span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td>    <span class="c">// Player 2</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>   player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_LEFT<span class="k2">)</span> player2newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>    <span class="c">// General</span></td></tr><tr><td class="number">15</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_ESC<span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td><span class="k2">}</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td><span class="k1">void</span> drawthings<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td><span class="k2">{</span></td></tr><tr><td class="number">20</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player1bat,<span class="n">0</span>,player1y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player2bat,<span class="n">620</span>,player2y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr><tr><td class="number">23</td><td>...</td></tr><tr><td class="number">24</td><td><span class="k1">while</span><span class="k2">(</span>playing<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">25</td><td>    <span class="k1">while</span><span class="k2">(</span>speed_timer <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">26</td><td>        <span class="k3">-</span><span class="k3">-</span>speed_timer<span class="k2">;</span></td></tr><tr><td class="number">27</td><td>        <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>            <span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>            generalinput<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">31</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">32</td><td>&#160;</td></tr><tr><td class="number">33</td><td>    drawthings<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
Note that player up-down movement will be continuous while the key is held down. If you don&#39;t want that, do this instead:
</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_W<span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span>
    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_S<span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span>
...
    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_UP<span class="k2">)</span>   player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span>
    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_DOWN<span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 10:31:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>While I have a look at that keyboard code here&#39;s an example of loading the graphics:
</p><div class="source-code snippet"><div class="inner"><pre>ball <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"ball.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
background <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"background.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
They&#39;re all like that.</p><p>Edit: I generally don&#39;t work well with code other than my own, and when I implemented your changes, I can&#39;t seem to get it to work (and when I do, it just freezes on a black screen). This is what I&#39;ve got:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>     <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>          <span class="c">// Draw objects that always appear before we get into the stuff that moves</span></td></tr><tr><td class="number">4</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,background,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,logo,<span class="n">65</span>,<span class="n">60</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoreone,<span class="n">40</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoretwo,<span class="n">400</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>          <span class="c">// Now the stuff that moves</span></td></tr><tr><td class="number">9</td><td>          workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>          <span class="k1">while</span><span class="k2">(</span>playing<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>          <span class="k1">while</span><span class="k2">(</span>speed_timer <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>           <span class="k3">-</span><span class="k3">-</span>speed_timer<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>                    <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>                    <span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                    input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>                    <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>                    <span class="k2">}</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>                    players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>                    <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>          dodisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>          <span class="c">// Now we rest to make sure the game doesn't run too fast</span></td></tr><tr><td class="number">24</td><td>          <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k1">int</span> k<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">29</td><td>    <span class="c">// Player 1</span></td></tr><tr><td class="number">30</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_D<span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    <span class="c">// Player 2</span></td></tr><tr><td class="number">34</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>   player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_LEFT<span class="k2">)</span> player2newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    <span class="c">// General</span></td></tr><tr><td class="number">38</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_ESC<span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td><span class="k2">}</span></td></tr><tr><td class="number">40</td><td><span class="k1">void</span> players<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">41</td><td>     <span class="c">// Draw the bats</span></td></tr><tr><td class="number">42</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player1bat,<span class="n">0</span>,player1y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player2bat,<span class="n">620</span>,player2y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>     <span class="c">// Make sure the bats don't go off screen</span></td></tr><tr><td class="number">45</td><td>     <span class="k1">if</span> <span class="k2">(</span>player1y <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> player1y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>     <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>player1y <span class="k3">+</span> player1size<span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">480</span><span class="k2">)</span> player1y <span class="k3">=</span> <span class="k2">(</span><span class="n">480</span> <span class="k3">-</span> player1size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>     <span class="k1">if</span> <span class="k2">(</span>player2y <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> player2y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>     <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>player2y <span class="k3">+</span> player2size<span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">480</span><span class="k2">)</span> player2y <span class="k3">=</span> <span class="k2">(</span><span class="n">480</span> <span class="k3">-</span> player2size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 10:34:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re mixing logic and drawing again. And don&#39;t use rest() to time the game. <a href="http://alleg.sourceforge.net/faq.html#How_can_I_make_my_game_run_at_the_same_speed_on_any_computer_">The FAQ is your friend.</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 12:02:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now I&#39;m getting somewhere (it works!) but the bats (using w,s,up,down) move very choppily and pressing esc or either of the shoot buttons don&#39;t register at all.</p><p>This is what I got:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>          <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>          <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>          <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speeder, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>          <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>          <span class="c">// Draw objects that always appear before we get into the stuff that moves</span></td></tr><tr><td class="number">7</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,background,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,logo,<span class="n">65</span>,<span class="n">60</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoreone,<span class="n">40</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoretwo,<span class="n">400</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>          <span class="k1">while</span><span class="k2">(</span>speeder <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">12</td><td>                 speeder--<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>                 <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>                 <span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>                 input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">17</td><td>                 workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>                 ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>                 players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>          drawbats<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>          dodisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>          <span class="c">// Now we rest to make sure the game doesn't run too fast</span></td></tr><tr><td class="number">24</td><td>          <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k1">int</span> k<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">29</td><td>    <span class="c">// Player 1</span></td></tr><tr><td class="number">30</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_D<span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    <span class="c">// Player 2</span></td></tr><tr><td class="number">34</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>   player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">4</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_LEFT<span class="k2">)</span> player2newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    <span class="c">// General</span></td></tr><tr><td class="number">38</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_ESC<span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td><span class="k2">}</span></td></tr><tr><td class="number">40</td><td><span class="k1">void</span> players<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">41</td><td>     <span class="c">// Make sure the bats don't go off screen</span></td></tr><tr><td class="number">42</td><td>     <span class="k1">if</span> <span class="k2">(</span>player1y <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> player1y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>     <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>player1y <span class="k3">+</span> player1size<span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">480</span><span class="k2">)</span> player1y <span class="k3">=</span> <span class="k2">(</span><span class="n">480</span> <span class="k3">-</span> player1size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>     <span class="k1">if</span> <span class="k2">(</span>player2y <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> player2y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>     <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>player2y <span class="k3">+</span> player2size<span class="k2">)</span> <span class="k3">&gt;</span> <span class="n">480</span><span class="k2">)</span> player2y <span class="k3">=</span> <span class="k2">(</span><span class="n">480</span> <span class="k3">-</span> player2size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td><span class="k2">}</span></td></tr><tr><td class="number">47</td><td><span class="k1">void</span> drawbats<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">48</td><td>     <span class="c">// Draw the bats</span></td></tr><tr><td class="number">49</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player1bat,<span class="n">0</span>,player1y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>     <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,player2bat,<span class="n">620</span>,player2y<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 12:57:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Change:<br /><span class="source-code"><span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span></span></p><p>to:</p><p><span class="source-code"><span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="n">8</span><span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Sun, 28 Jan 2007 13:07:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, that doesn&#39;t work. Any other ideas?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 13:32:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oops, my fault for misreading the manual. That was the test for ALT + key.</p><p>What happens if you change it to:<br /><span class="source-code"><span class="k1">int</span> k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span></p><p>and then change the other checks to (for example):<br /><span class="source-code"><span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>k <span class="k3">&gt;</span><span class="k3">&gt;</span> <span class="n">8</span><span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> KEY_ESC<span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Sun, 28 Jan 2007 13:40:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t see why the shoot buttons and escape don&#39;t work. Have you traced them to see that they behave properly? As for the choppiness, that&#39;s probably because you&#39;re moving four pixels at a time. And you&#39;re using rest(10);, which is probably causing timing issues. Instead, use:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span><span class="k2">(</span>speeder <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
    <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
So it only rests when you have time to wait.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Sun, 28 Jan 2007 13:42:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For whatever reason, now it is registering those key presses. And when I mean moving the bats is choppy, I mean that before I did all this they moved smoothly. And faster.</p><p>Sorry if I sound like I&#39;m whining.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Sun, 28 Jan 2007 14:26:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[edit]<br />Hmm, from a reread of your post, I&#39;m not sure it means it all works or there are still problems.<br />[/edit]</p><p>konedima, does the following make any difference to the choppiness?</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>          <span class="k1">int</span> nspeed, k<span class="k2">;</span>                           <span class="c">// &lt;------ added</span></td></tr><tr><td class="number">3</td><td>          <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>          <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>          <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speeder, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>          <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>          <span class="c">// Draw objects that always appear before we get into the stuff that moves</span></td></tr><tr><td class="number">8</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,background,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,logo,<span class="n">65</span>,<span class="n">60</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoreone,<span class="n">40</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>          <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer,scoretwo,<span class="n">400</span>,<span class="n">190</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td>          <span class="c">// give some up some processing time if none is needed</span></td></tr><tr><td class="number">14</td><td>          <span class="k1">if</span> <span class="k2">(</span>speeder <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>                        <span class="c">// &lt;------ added</span></td></tr><tr><td class="number">15</td><td>            <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>                               <span class="c">// &lt;------ added</span></td></tr><tr><td class="number">16</td><td>          nspeed <span class="k3">=</span> speeder<span class="k2">;</span>                        <span class="c">// &lt;------ added</span></td></tr><tr><td class="number">17</td><td>          speeder <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>                             <span class="c">// &lt;------ added</span></td></tr><tr><td class="number">18</td><td>          <span class="k1">while</span><span class="k2">(</span>nspeed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>                      <span class="c">// &lt;------ changed</span></td></tr><tr><td class="number">19</td><td>                 nspeed--<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>                 <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">21</td><td>                 k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span>                <span class="c">// &lt;------ changed</span></td></tr><tr><td class="number">22</td><td>                 input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>                 workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>                 ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>                 players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">28</td><td>          drawbats<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>          dodisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">31</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 06:46:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m good at not being clear <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.</p><p>All the input issues are fixed. The problems I have are that the bat (and sometimes the bullet) movement is very choppy (bullets appear to move back and forth occasionally) and that 16-bit bitmaps still don&#39;t work.</p><p>HardTranceFan, your code doesn&#39;t help, thanks anyway.</p><p>I&#39;ve changed the code since I last posted it - I&#39;ve moved all the drawing operations into one function, and out of their logic functions. Here&#39;s the main game loop:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>          <span class="k1">int</span> nspeed, k<span class="k2">;</span></td></tr><tr><td class="number">3</td><td>          <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>          <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>          <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speeder, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>          <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span>          </td></tr><tr><td class="number">7</td><td>          <span class="k1">if</span> <span class="k2">(</span>speeder <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>                       </td></tr><tr><td class="number">8</td><td>            <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>                              </td></tr><tr><td class="number">9</td><td>          nspeed <span class="k3">=</span> speeder<span class="k2">;</span>                       </td></tr><tr><td class="number">10</td><td>          speeder <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>                            </td></tr><tr><td class="number">11</td><td>          <span class="k1">while</span><span class="k2">(</span>nspeed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>                      </td></tr><tr><td class="number">12</td><td>                 nspeed--<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>                 <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>                 k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>                 input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">17</td><td>                 workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>                 ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>                 players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>          quickdisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 07:02:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you attach the complete source, then some of the allegroids could have a look. It could be that you&#39;ve overlooked an issue elsewhere in your program.</p><p>Or attach the binary and see if it occurs on other machines.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 08:03:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m weirdly overprotective of my source code (espcially since I plan on releasing it as open source when it&#39;s done). I could post it if I really had to, but I&#39;d rather look for other alternatives. The only thing I can think of is that as mentioned before, the bats are moved up four pixels at a time (actually now it&#39;s eight). The program was probably running at a faster framerate before because I only had a rest(10) to slow it down, so that could have been it. I don&#39;t know how to fix it because if they move any slower, they won&#39;t move nearly fast enough.</p><p>Something else I&#39;ve noticed during testing of the latest code is that if you shoot a bullet while moving the bat (by holding the key down), the movement stops until you let go and press down again. Is there any way to fix that?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 09:52:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Something else I&#39;ve noticed during testing of the latest code is that if you shoot a bullet while moving the bat (by holding the key down), the movement stops until you let go and press down again. Is there any way to fix that?
</p></div></div><p>
Ahhh, I just noticed you have a :</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> 
<span class="k2">{</span>
  k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span>
  input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

So while you hold down a key, it&#39;s going to remain within that loop until the key is released. It will update the co-ordinates, but not draw them to the screen.</p><p>Change the <tt>while</tt> to an <tt>if</tt>. I suspect this may fix your visual problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 10:54:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Nope, it doesn&#39;t.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 10:58:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
So while you hold down a key, it&#39;s going to remain within that loop until the key is released.
</p></div></div><p>
No, because keypressed() only returns true when readkey() has a key waiting in the buffer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 29 Jan 2007 11:03:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Apologies, my interpretation of the manual was incorrect.</p><p>Back to the drawing board.</p><p>[edit]<br />Are you calling any key reading functions anywhere else in your code?<br />[/edit]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 11:24:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No key reading functions anywhere else.</p><p>Is there a quicker way to resolve this than forum tag?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 11:31:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, I didn&#39;t read the whole thread, just the first few posts. Why is readkey() better than key[] again? I don&#39;t see the point. As far as I can tell readkey() will return a keypress as soon as the user presses a key, then again after a short delay if the key is being pressed down and then again in regular intervals. Those two times can be changed in the OS&#39;s keyboard settings. Which means the player will be able to change the way how the game responds to keyboard input in the Windows control panel. Which as far as I can tell is not something most people would like.</p><p>For normal everyday keyboard input the key[] array is the way to go. The code snippets Daniel and Mark posted in the first two replies are what you want. Daniel&#39;s is very simple and should be easy to adapt while Mark&#39;s is a little more involved (but complete) and just requires some initialization...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Mon, 29 Jan 2007 12:02:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
it doesn&#39;t do anything at all
</p></div></div><p>
ah, you have to add<br /><span class="source-code">input_controller.update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span><br />somewhere at the beginning of your main loop.  Sorry I forgot to mention that.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Mon, 29 Jan 2007 12:47:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[edit]<br />Damn, Mr Oates. Is that all that might have to be done?<br />[/edit]</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Is there a quicker way to resolve this than forum tag?
</p></div></div><p>
</p><div class="quote_container"><div class="title">I said said:</div><div class="quote"><p>

If you attach the complete source, then some of the allegroids could have a look. It could be that you&#39;ve overlooked an issue elsewhere in your program.
</p></div></div><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I&#39;m weirdly overprotective of my source code (espcially since I plan on releasing it as open source when it&#39;s done). I could post it if I really had to, but I&#39;d rather look for other alternatives.
</p></div></div><p>
I don&#39;t fully understand why you&#39;re protective of your source code, particularly as it&#39;s going to be in the public domain later on anyway. However, we&#39;re not here to discuss that. Looking at an alternative, I&#39;d suggest debugging.</p><p>The sort of debugging I&#39;m thinking of doesn&#39;t mean using a debugger and stepping through the code, but putting in a small amount of code, immediately before and after a function call, that appends a line of text with a timer on it into a log file. Run your program, and then go through log and see where there are large pauses between statements. Once the function is identified, do the same within that function, but for each command line. It&#39;s slow, but debugging is not a fast sport <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>To help you get the idea, here&#39;s a sample of the type of code I&#39;m thinking about:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include &lt;fstream&gt;</span></td></tr><tr><td class="number">2</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>          <span class="c">// this creates an empty file every run. No point in appending to previous runs</span></td></tr><tr><td class="number">4</td><td>          ofstream fout<span class="k2">(</span><span class="s">"debugging.log"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>          fout.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>          <span class="k1">int</span> nspeed, k, totalspeed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>                         <span class="c">// Added total speed</span></td></tr><tr><td class="number">8</td><td>          <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>          <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speeder, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>          <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>          totalspeed <span class="k3">+</span><span class="k3">=</span> speeder<span class="k2">;</span>                                <span class="c">// Added</span></td></tr><tr><td class="number">13</td><td>          <span class="k1">if</span> <span class="k2">(</span>speeder <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>                       </td></tr><tr><td class="number">14</td><td>            <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>                              </td></tr><tr><td class="number">15</td><td>          nspeed <span class="k3">=</span> speeder<span class="k2">;</span>                       </td></tr><tr><td class="number">16</td><td>          speeder <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>                            </td></tr><tr><td class="number">17</td><td>          <span class="k1">while</span><span class="k2">(</span>nspeed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>                      </td></tr><tr><td class="number">18</td><td>                 nspeed--<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>                 <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>                 k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>                 fout.open<span class="k2">(</span><span class="s">"debugging.log"</span>, ios::app<span class="k2">)</span><span class="k2">;</span>                    <span class="c">// Added</span></td></tr><tr><td class="number">22</td><td>                 fout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"before inpt(k)"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> totalspeed <span class="k3">+</span> speeder <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span><span class="k2">;</span><span class="c">// Added</span></td></tr><tr><td class="number">23</td><td>                 fout.close<span class="k2">(</span><span class="k2">)</span>                                             <span class="c">// Added</span></td></tr><tr><td class="number">24</td><td>                 input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>                 fout.open<span class="k2">(</span><span class="s">"debugging.log"</span>, ios::app<span class="k2">)</span><span class="k2">;</span>                    <span class="c">// Added</span></td></tr><tr><td class="number">26</td><td>                 fout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"after inpt(k)"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> totalspeed <span class="k3">+</span> speeder <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span><span class="k2">;</span> <span class="c">// Added</span></td></tr><tr><td class="number">27</td><td>                 fout.close<span class="k2">(</span><span class="k2">)</span>                                             <span class="c">// Added</span></td></tr><tr><td class="number">28</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">29</td><td>                 workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">30</td><td>                 ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td>                 players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">33</td><td>          quickdisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

It may not be the most eloquent or efficient method, but it works, and it&#39;s fairly quick to do.</p><p>Good luck <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 12:54:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Damn, Mr Oates. Is that all that might have to be done?
</p></div></div><p>

Perhaps not. But it&#39;s clean, clear and managed completely in the background. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />  you get these three wonderful functions:</p><div class="source-code snippet"><div class="inner"><pre>pressed<span class="k2">(</span><span class="k2">)</span>
just_pressed<span class="k2">(</span><span class="k2">)</span>
just_released<span class="k2">(</span><span class="k2">)</span>
</pre></div></div><p>

[edit] The only thing it doesn&#39;t do yet is time how long a button has been held down, or send triggers in regular intervals.  But I&#39;ll add that in the future.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Mon, 29 Jan 2007 13:02:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Why is readkey() better than key[] again?
</p></div></div><p>
Because for firing and quitting, he wants to know when the key is actually pressed, not if its down or up at a given point in time. Sure you could emulate it with a shadow key[] array or similar, memcpy&#39;ing, and checking between the two arrays, but why hack in functionality that&#39;s already provided for you?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 29 Jan 2007 13:10:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To be honest, I don&#39;t like revealing my source code because I never wanted my projects to be open source - it&#39;s just that Sourceforge has free hosting, no ads, etc.</p><p>I don&#39;t know if having all the extra source code will help (very little of it is relevant to the issue at hand). But, ask and ye shall recieve.<br /><a href="http://warpong.sourceforge.net/warpongc.cpp">http://warpong.sourceforge.net/warpongc.cpp</a></p><p>By the way: I know there&#39;s probably a lot of bad stuff in there (I should give people an error message if one of the graphics doesn&#39;t exist) but I&#39;ll fix that up for the release version.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 13:36:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I don&#39;t fully understand why you&#39;re protective of your source code, particularly as it&#39;s going to be in the public domain later on anyway.
</p></div></div><p>
Something being open source does not imply in any way that it is in the public domain, though you&#39;re by no means the only one to think that it does.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Sure you could emulate it with a shadow key[] array or similar, memcpy&#39;ing, and checking between the two arrays, but why hack in functionality that&#39;s already provided for you?
</p></div></div><p>
This does not emulate readkey(). Also note that readkey() does not tell you if a key was pressed and held down, or pressed multiple times in rapid succession. For normal game input I use key[] and a copy of the key[] array from the last timestep to detect key down and key up events (actually, I don&#39;t, I use a wrapper around either a keyboard or a gamepad so that I can use either without changing a line of code, but that uses key[] for the keyboard). Another reason to use key[] over readkey() has to do with modifier keys that you may (or may not) want to use like any other key. It depends very much on the situation (and the game in question) what is better. For a top-down RPG or dungeon crawler, I would (do) use key[]. For an RTS, I would (do) use readkey().<br />In this particular case, judging from the described intended behavior, readkey() does seem the more natural implementation. However, if he wants to fire the bullet only when the key is released again, then key[] is the proper (only) way to go.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Mon, 29 Jan 2007 14:20:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Konedima,</p><p>I&#39;ve got the solution to your problem. Thanks for providing your source - I used that plus the graphics from sourceforge to compile the game.</p><p>Anyway, the problem was that you were only checking for player movement keys if keypressed() was true. This causes a stutter at the start and a jutter along the way as it appears to use the OS key repeat settings.</p><p>So, I&#39;ve modified the code as below:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// Somewhere where you declare all your functions:</span></td></tr><tr><td class="number">2</td><td><span class="k1">void</span> movePlayers<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">// Then...</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="k1">void</span> maingame<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>          <span class="k1">int</span> nspeed, k<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>          <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>          <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speeder<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>          <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speeder, BPS_TO_TIMER<span class="k2">(</span><span class="n">60</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>          <span class="k1">while</span> <span class="k2">(</span>win <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>          <span class="k1">if</span> <span class="k2">(</span>speeder <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">13</td><td>            <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>          nspeed <span class="k3">=</span> speeder<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>          speeder <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>          <span class="k1">while</span><span class="k2">(</span>nspeed <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>                 nspeed--<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>                 <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>                 k <span class="k3">=</span> <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">&gt;</span><span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>                 input<span class="k2">(</span>k<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>                 workbullets<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>                 movePlayers<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>                       <span class="c">// New</span></td></tr><tr><td class="number">24</td><td>                 ballmove<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>                 players<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>                 <span class="k2">}</span></td></tr><tr><td class="number">27</td><td>          quickdisplay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>          <span class="k2">}</span></td></tr><tr><td class="number">29</td><td><span class="k2">}</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td><span class="k1">void</span> input<span class="k2">(</span><span class="k1">int</span> k<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">32</td><td>    <span class="c">// Player 1</span></td></tr><tr><td class="number">33</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_D<span class="k2">)</span> player1newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>    <span class="c">// Player 2</span></td></tr><tr><td class="number">35</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_LEFT<span class="k2">)</span> player2newbullet<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>    <span class="c">// General</span></td></tr><tr><td class="number">37</td><td>    <span class="k1">if</span> <span class="k2">(</span>k <span class="k3">=</span><span class="k3">=</span> KEY_ESC<span class="k2">)</span> win <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td><span class="k2">}</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td><span class="c">// The new move function checked independently of keypressed()</span></td></tr><tr><td class="number">41</td><td><span class="k1">void</span> movePlayers<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">42</td><td>    <span class="c">// Player 1</span></td></tr><tr><td class="number">43</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_W<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">-</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_S<span class="k2">]</span><span class="k2">)</span> player1y <span class="k3">=</span> player1y <span class="k3">+</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>    <span class="c">// Player 2</span></td></tr><tr><td class="number">46</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>   player2y <span class="k3">=</span> player2y <span class="k3">-</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span> player2y <span class="k3">=</span> player2y <span class="k3">+</span> <span class="n">8</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>    <span class="c">// General</span></td></tr><tr><td class="number">49</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

BTW, if you want some pointers to speeding up the bats but not the ball, easier ways to load your graphics, drop me a PM.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Mon, 29 Jan 2007 15:59:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Huzzah! Finally, success! The input works perfectly, thanks for all your help.</p><p>HardTranceFan, did you have to modify the graphics from Sourceforge? Because if I recall, the graphics in the resources pack were 16 bit bitmaps, like I&#39;ve been having trouble with.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Mon, 29 Jan 2007 16:45:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No changes to graphics were required. I used the retrowar set of graphics.</p><p>[edit]<br />Sorry, my memory failed me - the graphics are just black quads. The graphics didn&#39;t work.<br />[/edit]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Tue, 30 Jan 2007 00:37:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>...which still leaves the graphics problem, which is thoroughly confusing by my amatuer standards.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Tue, 30 Jan 2007 16:33:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s your images that are the problem, not your code. I loaded and resaved them with MSPaint, and they worked fine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 30 Jan 2007 17:06:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>MSPaint doesn&#39;t save 16 bit bitmaps. The only option above 8 bit is 24 bit.<br />I don&#39;t have a problem with 24 bit bitmaps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Tue, 30 Jan 2007 17:57:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think Allegro doesn&#39;t support 16bit bitmaps. If you&#39;re concerned about filesize, use PNG or if you want to save even more space at the expense of quality, JPEG. There are add-ons available for loading both formats...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Tue, 30 Jan 2007 18:02:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>Now</b> someone tells me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Tue, 30 Jan 2007 18:13:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Someone needs to rewrite the manual then. Under <a href="http://www.allegro.cc/manual/api/loading-image-files/load_bmp">load_bmp()</a>, it says 16bit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 30 Jan 2007 18:16:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know, I might be wrong. But BMP as such is a very broad term. There can be many variants and almost certainly Allegro doesn&#39;t support all of them.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Tue, 30 Jan 2007 18:31:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I think Allegro doesn&#39;t support 16bit bitmaps.
</p></div></div><p>
It should. I vaguely recall that there used to be a bug that prevented it from working sometime pre 4.2, but that should be fixed.<br />Haven&#39;t tested it recently though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Tue, 30 Jan 2007 19:41:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is your avvie an example of what your game will look like? If so, it looks cool. Glad to see your problem is fixed. I just use 24-bit for everything, it&#39;s not too much trouble. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kikaru)</author>
		<pubDate>Tue, 30 Jan 2007 20:35:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Is your avvie an example of what your game will look like?
</p></div></div><p>

Not if he&#39;s using the graphics from his sourceforge page.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 30 Jan 2007 20:52:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://www.allegro.cc/forums/thread/589768">http://www.allegro.cc/forums/thread/589768</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Tue, 30 Jan 2007 21:48:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually it supports many skins (the current tally is 5 in the latest release). Something that simple shouldn&#39;t take me too long to make, and it&#39;s cool, then why not?.</p><p>My avatar is only that simple because I&#39;m lazy <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 03:44:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
My avatar is only that simple because I&#39;m lazy <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.
</p></div></div><p>You want lazy? I didn&#39;t make my avatar, or this christmas version of it, or bother changing it back to the regular one once the holidays were over.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 31 Jan 2007 06:03:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>it probibly took more effor to type that. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Wed, 31 Jan 2007 06:30:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Could we please stay on topic?</p><p>BTW, I&#39;ve created a skin based on my avatar. It sucks, but compressed it&#39;s less than 10k and decompressed it&#39;s less than 100k.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 06:51:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Could we please stay on topic?
</p></div></div><p>

I thought the matter was resolved?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 31 Jan 2007 08:13:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Not the graphics one - there&#39;s still debate about whether Allegro is meant to work with 16 bit bitmaps. If it isn&#39;t, I&#39;ll have to live with that. If it is, we have to figure out what&#39;s wrong.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 08:15:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
If it is, we have to figure out what&#39;s wrong.
</p></div></div><p>

What did you use to create the graphics in the first place? I have several graphics apps, and not a single one of them can create 16bit Windows BMPs, only 8, 24 or 32bit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 31 Jan 2007 08:34:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Photoshop, and I have to admit none of the other programs I&#39;ve tried can do it. But they load fine in other programs.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 09:19:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
But they load fine in other programs.
</p></div></div><p>

I&#39;ve noticed that as well. They work with all the programs I have, but not Allegro. I&#39;ve also had the same problem with BMPs in the past, but after resaving them with another program they worked.</p><p>Just use 24bit BMPs. Your game isn&#39;t that graphics intensive, so they won&#39;t take up that much more space. If size is your real concern, then don&#39;t use BMPs at all, use PNGs or GIFs, both of which can be used with Allegro through the use of other <a href="http://www.allegro.cc/resource/Libraries/ImageFormats">libraries</a>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 31 Jan 2007 09:33:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I might use another image format but I have <b>absolutely no idea</b> how to load the extra libraries and stuff. As Homer Simpson would say, &quot;It&#39;s my first day&quot;.</p><p>Close enough, anyway.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 10:04:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s no different from using the Allegro library. You either build the library, or copy the library files to your compilers <tt>lib</tt> directory, then include the libraries header into your code and use the functions.</p><p>All the ones I&#39;ve used have come with documentation and examples as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 31 Jan 2007 10:20:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is probably a stupid question but if I add those libraries do I have to include any extra files with the end product?</p><p>On that note, what Allegro files do I have to include in the installer, if any?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 10:58:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
there&#39;s still debate about whether Allegro is meant to work with 16 bit bitmaps.
</p></div></div><p>
No debate.
</p><div class="quote_container"><div class="title">I said:</div><div class="quote"><p>
It should. I vaguely recall that there used to be a bug that prevented it from working sometime pre 4.2, but that should be fixed.<br />Haven&#39;t tested it recently though.
</p></div></div><p>

EDIT: tested it with your paddle2.bmp, works fine.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 31 Jan 2007 12:19:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think the debate is that you say it should, everyone else says it doesn&#39;t. Anyway, I&#39;m trying using PNGs, but not having much luck.</p><p>Whenever I try to compile, I get lots of linker errors, like<br />  [Linker error] undefined reference to `crc32&#39; <br />  [Linker error] undefined reference to `inflateReset&#39; <br />And such.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 12:27:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>See above edit. What version of Allegro are you using?</p><p>Anyway, if I say it should work and it doesn&#39;t, it&#39;s a bug and should be reported as such.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 31 Jan 2007 12:28:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Version 4.2.1</p><p>As I said though, I&#39;m trying PNGs, and having problems, could you stop arguing and help me with that?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 12:30:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I think the debate is that you say it should, everyone else says it doesn&#39;t.
</p></div></div><p>I would still wager in favor of Evert. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Wed, 31 Jan 2007 12:58:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Whenever I try to compile, I get lots of linker errors, like<br />[Linker error] undefined reference to `crc32&#39;<br />[Linker error] undefined reference to `inflateReset&#39;
</p></div></div><p>
Did you link with zlib, in addition to libpng and loadpng?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Wed, 31 Jan 2007 14:05:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I now consider the discussion moot, I&#39;m using PNG.</p><p>I fixed my earlier problem with PNG, too - I forgot to put zlib in the linker.</p><p>EDIT: Posted at the same time as Kitty Kat. Good advice, just a bit late.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 14:07:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
could you stop arguing and help me with that?
</p></div></div><p>
With that attitude, no.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 31 Jan 2007 14:27:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry about my attitude. I try not to come off as sounding mean but due to the profession of someone I know I come into contact with squabbling kids far too often. Anyway, it&#39;s solved now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (konedima)</author>
		<pubDate>Wed, 31 Jan 2007 16:51:48 +0000</pubDate>
	</item>
</rss>
