<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>another bullet question</title>
		<link>http://www.allegro.cc/forums/view/586220</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 02 Jul 2006 21:49:53 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There is no bullet, why?
</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;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;stdlib.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;math.h&gt;</span></td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;iostream.h&gt;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="p">#define player_speed 1</span></td></tr><tr><td class="number">7</td><td><span class="p">#define bullet_speed 2</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">float</span> player1_x <span class="k3">=</span> <span class="n">320</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k1">float</span> player1_y <span class="k3">=</span> <span class="n">240</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td><span class="k1">float</span> player2_x<span class="k2">;</span></td></tr><tr><td class="number">13</td><td><span class="k1">float</span> player2_y<span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k1">float</span> player1_rotate<span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k1">float</span> player2_rotate<span class="k2">;</span></td></tr><tr><td class="number">16</td><td><span class="k1">float</span> bullet_x<span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k1">float</span> bullet_y<span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k1">int</span> mickeyx<span class="k2">;</span></td></tr><tr><td class="number">19</td><td><span class="k1">int</span> mickeyy<span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k1">int</span> RED <span class="k3">=</span> <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player1<span class="k2">;</span></td></tr><tr><td class="number">23</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>player2<span class="k2">;</span></td></tr><tr><td class="number">24</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td><span class="k1">void</span> bullet_move<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>bullet_x <span class="k3">+</span><span class="k3">=</span> bullet_speed <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span><a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>player1_rotate<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>bullet_y <span class="k3">+</span><span class="k3">=</span> bullet_speed <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span><a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>player1_rotate<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</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_SPACE<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>bullet_x <span class="k3">=</span> player1_x<span class="k2">;</span></td></tr><tr><td class="number">33</td><td>bullet_y <span class="k3">=</span> player1_y<span class="k2">;</span> </td></tr><tr><td class="number">34</td><td><a href="http://www.allegro.cc/manual/putpixel" target="_blank"><span class="a">putpixel</span></a><span class="k2">(</span>buffer,bullet_x, bullet_y,RED<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr><tr><td class="number">36</td><td><span class="k2">}</span></td></tr><tr><td class="number">37</td><td>&#160;</td></tr><tr><td class="number">38</td><td><span class="k1">void</span> player1_movement<span class="k2">(</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">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_A<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player1_x <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">41</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">42</td><td>    player1_x <span class="k3">-</span><span class="k3">=</span> player_speed<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>  <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_D<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player1_x <span class="k3">&lt;</span> <span class="n">640</span> <span class="k3">-</span> player1-&gt;w<span class="k2">)</span></td></tr><tr><td class="number">45</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">46</td><td>    player1_x <span class="k3">+</span><span class="k3">=</span> player_speed<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="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="k3">&amp;</span><span class="k3">&amp;</span> player1_x <span class="k3">&gt;</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player1_x <span class="k3">&lt;</span> <span class="n">640</span> <span class="k3">-</span> player1-&gt;w <span class="k3">&amp;</span><span class="k3">&amp;</span> player1_y <span class="k3">&gt;</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player1_y <span class="k3">&lt;</span> <span class="n">480</span> <span class="k3">-</span> player1-&gt;h<span class="k2">)</span></td></tr><tr><td class="number">49</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">50</td><td>    player1_y <span class="k3">-</span><span class="k3">=</span> player_speed <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fcos<span class="k2">(</span><a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>player1_rotate<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    player1_x <span class="k3">+</span><span class="k3">=</span> player_speed <span class="k3">*</span> <a href="http://www.allegro.cc/manual/fixtof" target="_blank"><span class="a">fixtof</span></a><span class="k2">(</span>fsin<span class="k2">(</span><a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>player1_rotate<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">53</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="k3">&amp;</span><span class="k3">&amp;</span> player1_y <span class="k3">&lt;</span> <span class="n">480</span> <span class="k3">-</span> player1-&gt;h<span class="k2">)</span></td></tr><tr><td class="number">54</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">55</td><td>    player1_y <span class="k3">+</span><span class="k3">=</span> player_speed<span class="k2">;</span></td></tr><tr><td class="number">56</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">57</td><td>  <span class="k1">if</span><span class="k2">(</span>player1_y <span class="k3">+</span> player1-&gt;h <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">480</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>        player1_y <span class="k3">=</span> <span class="n">479</span> <span class="k3">-</span> player1-&gt;h<span class="k2">;</span></td></tr><tr><td class="number">60</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">61</td><td>    <span class="k1">if</span><span class="k2">(</span>player1_y <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><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>        player1_y <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">65</td><td>    <span class="k1">if</span><span class="k2">(</span>player1_x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">66</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>        player1_x <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">69</td><td>    <span class="k1">if</span><span class="k2">(</span>player1_x <span class="k3">+</span> player1-&gt;w <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">640</span><span class="k2">)</span></td></tr><tr><td class="number">70</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">71</td><td>        player1_x <span class="k3">=</span> <span class="n">639</span> <span class="k3">-</span> player1-&gt;w<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>  <a href="http://www.allegro.cc/manual/get_mouse_mickeys" target="_blank"><span class="a">get_mouse_mickeys</span></a><span class="k2">(</span><span class="k3">&amp;</span>mickeyx, <span class="k3">&amp;</span>mickeyy<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>  player1_rotate <span class="k3">+</span><span class="k3">=</span> mickeyx<span class="k2">;</span></td></tr><tr><td class="number">75</td><td>  </td></tr><tr><td class="number">76</td><td>  </td></tr><tr><td class="number">77</td><td><span class="k2">}</span></td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">80</td><td><span class="k2">{</span></td></tr><tr><td class="number">81</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">82</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">83</td><td>  <a href="http://www.allegro.cc/manual/install_mouse" target="_blank"><span class="a">install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>  <a href="http://www.allegro.cc/manual/set_mouse_speed" target="_blank"><span class="a">set_mouse_speed</span></a><span class="k2">(</span><span class="n">1</span>,<span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">85</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><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</td><td>  <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="k2">;</span></td></tr><tr><td class="number">87</td><td>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> bullet_x <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"  "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> bullet_y <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span></td></tr><tr><td class="number">88</td><td>&#160;</td></tr><tr><td class="number">89</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">90</td><td>&#160;</td></tr><tr><td class="number">91</td><td>  player1 <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">"player.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">92</td><td>     </td></tr><tr><td class="number">93</td><td>  player2 <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">"player.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">94</td><td>  </td></tr><tr><td class="number">95</td><td>&#160;</td></tr><tr><td class="number">96</td><td>  </td></tr><tr><td class="number">97</td><td>     </td></tr><tr><td class="number">98</td><td>  <span class="k1">while</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_ESC<span class="k2">]</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>    player1_movement<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">101</td><td>    bullet_move<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">102</td><td>    <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span>buffer, player1, player1_x, player1_y, <a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>player1_rotate<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">103</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">0</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">104</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">105</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">106</td><td>&#160;</td></tr><tr><td class="number">107</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>player1<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">108</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>player2<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">109</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><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="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">112</td><td><span class="k2">}</span></td></tr><tr><td class="number">113</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>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (neil dwyer)</author>
		<pubDate>Sun, 02 Jul 2006 07:56:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I don&#39;t see any kind of delay in your code. My guess: the player&#39;s movement seems to be linked to the key repeat rate, which prevents it from moving at an insane speed. There is no such limiter for your bullet. Thus, it flies off the screen too quickly to see.</p><p>To make your game run at the same speed on different computers, see <a href="http://www.allegro.cc/manual/miscellaneous/frequently-asked-questions-(faq)/general-problems/bd35ed0706dad8b5c3aa3b3a91cdba2c">here</a>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Myrdos)</author>
		<pubDate>Sun, 02 Jul 2006 08:33:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hmm, that is seems to be it because my cout &lt;&lt; bullet_x &lt;&lt; bullet_y shows that the bullet moves very fast. How should I fix it, maybe a timer?</p><p>EDIT: oops, didn&#39;t see the end of your post.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (neil dwyer)</author>
		<pubDate>Sun, 02 Jul 2006 08:38:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Where&#39;s the timer for the code???
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucid Nightmare)</author>
		<pubDate>Sun, 02 Jul 2006 21:49:53 +0000</pubDate>
	</item>
</rss>
