<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Help me out please</title>
		<link>http://www.allegro.cc/forums/view/562765</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 30 Jan 2006 19:47:02 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m doing programming on my game, but I&#39;m stuck.  I&#39;m trying to implement and abuse like control scheme into my game.  I have to bitmaps the player and the players arms.  The math is all correct but the problem I&#39;m having is that the players arm wont constantly rotate, it just stays at the angel that the mouse was at from when the program first runs.  I have the line of code that controls rotation in the while main loop, what am i doing wrong??</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">float</span> radians<span class="k2">;</span></td></tr><tr><td class="number">2</td><td>    <span class="k1">int</span> cx<span class="k2">;</span></td></tr><tr><td class="number">3</td><td>    <span class="k1">int</span> cy<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    </td></tr><tr><td class="number">5</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>arms <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">"arms.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>    </td></tr><tr><td class="number">7</td><td>    <span class="c">// Calculate center of character</span></td></tr><tr><td class="number">8</td><td>    cx <span class="k3">=</span> player_image<span class="k2">[</span>n<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w<span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    cy <span class="k3">=</span> player_image<span class="k2">[</span>n<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    </td></tr><tr><td class="number">11</td><td>    radians <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">-</span> cy, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> cx<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>AL_PI<span class="k3">/</span><span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    </td></tr><tr><td class="number">13</td><td>    <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> allegro_degrees <span class="k3">=</span> <a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span> radians <span class="k3">*</span> <span class="n">255</span>.<span class="n">0</span> <span class="k3">/</span> <span class="k2">(</span><span class="n">2</span>.<span class="n">0</span> <span class="k3">*</span> AL_PI <span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span> <span class="n">0xffffff</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>    </td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>    <span class="c">// Main loop</span></td></tr><tr><td class="number">18</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">19</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>    oldpy <span class="k3">=</span> player-&gt;y<span class="k2">;</span></td></tr><tr><td class="number">22</td><td>        oldpx <span class="k3">=</span> player-&gt;x<span class="k2">;</span></td></tr><tr><td class="number">23</td><td>        </td></tr><tr><td class="number">24</td><td>        <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, arms, <span class="k2">(</span>player-&gt;x-mapxoff<span class="k2">)</span><span class="k3">+</span><span class="n">1</span>, <span class="k2">(</span>player-&gt;y-mapyoff<span class="k3">+</span><span class="n">1</span><span class="k2">)</span><span class="k3">+</span><span class="n">15</span>, allegro_degrees<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Nelson Cole)</author>
		<pubDate>Mon, 30 Jan 2006 09:04:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You never update allegro_degrees.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Mon, 30 Jan 2006 09:14:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you give me a code snippet for that, i wrote this small app, and thats where I&#39;m getting most of the code for the arm to mouse linkage.  But I dont update allegro_degrees in it.</p><p>This is that other app, &quot;Ascheme&quot; </p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.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;stdlib.h&gt;</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> init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td><span class="k1">void</span> deinit<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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">10</td><td>  init<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  </td></tr><tr><td class="number">12</td><td>  <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  </td></tr><tr><td class="number">14</td><td>    <span class="c">// Load tank sprite</span></td></tr><tr><td class="number">15</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>tank <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">"tank.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td> </td></tr><tr><td class="number">17</td><td>    <span class="c">// Calculate center of the screen</span></td></tr><tr><td class="number">18</td><td>    x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k3">/</span><span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td> </td></tr><tr><td class="number">21</td><td>    <span class="c">// Draw tank at starting location</span></td></tr><tr><td class="number">22</td><td><span class="c">//    draw_sprite(screen, tank, x, y);</span></td></tr><tr><td class="number">23</td><td>    </td></tr><tr><td class="number">24</td><td>    <span class="k1">float</span> radians<span class="k2">;</span></td></tr><tr><td class="number">25</td><td><span class="c">//    fixed allegro_degrees;</span></td></tr><tr><td class="number">26</td><td>    </td></tr><tr><td class="number">27</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> <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>        <span class="c">/* put your code here */</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td>        <a href="http://www.allegro.cc/manual/vline" target="_blank"><span class="a">vline</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k3">/</span><span class="n">2</span>, <span class="n">0</span>, <span class="n">600</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">31</td><td>        <a href="http://www.allegro.cc/manual/hline" target="_blank"><span class="a">hline</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k3">/</span><span class="n">2</span>, <span class="n">800</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>        </td></tr><tr><td class="number">33</td><td>        <a href="http://www.allegro.cc/manual/show_mouse" target="_blank"><span class="a">show_mouse</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td>        radians <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">-</span> y, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> x<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>AL_PI<span class="k3">/</span><span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>        </td></tr><tr><td class="number">37</td><td>        <a href="http://www.allegro.cc/manual/fixed" target="_blank"><span class="a">fixed</span></a> allegro_degrees <span class="k3">=</span> <a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span> radians <span class="k3">*</span> <span class="n">255</span>.<span class="n">0</span> <span class="k3">/</span> <span class="k2">(</span><span class="n">2</span>.<span class="n">0</span> <span class="k3">*</span> AL_PI <span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span> <span class="n">0xffffff</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>        </td></tr><tr><td class="number">39</td><td>        <a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, tank, x-<span class="k2">(</span>tank-&gt;w<span class="k3">/</span><span class="n">2</span><span class="k2">)</span>, y-<span class="k2">(</span>tank-&gt;h<span class="k3">/</span><span class="n">2</span><span class="k2">)</span>, allegro_degrees<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td>                    </td></tr><tr><td class="number">41</td><td>        <span class="c">// Display angle</span></td></tr><tr><td class="number">42</td><td>        <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">10</span>, <span class="n">400</span>, <span class="k3">-</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span>,<span class="s">"Angle Degrees    %d"</span>, allegro_degrees<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>        <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">10</span>, <span class="n">410</span>, <span class="k3">-</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span>,<span class="s">"Mouse X position %d"</span>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>        <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">10</span>, <span class="n">420</span>, <span class="k3">-</span><span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span>,<span class="s">"Mouse Y position %d"</span>, <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a><span class="k2">)</span><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>&#160;</td></tr><tr><td class="number">47</td><td>  deinit<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>  <span class="k1">return</span> <span class="n">0</span><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><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><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</td><td><span class="k1">void</span> init<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">53</td><td>  <span class="k1">int</span> depth, res<span class="k2">;</span></td></tr><tr><td class="number">54</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">55</td><td>  depth <span class="k3">=</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></td></tr><tr><td class="number">56</td><td>  <span class="k1">if</span> <span class="k2">(</span>depth <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> depth <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">57</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>depth<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>  res <span class="k3">=</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="k2">;</span></td></tr><tr><td class="number">59</td><td>  <span class="k1">if</span> <span class="k2">(</span>res <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">60</td><td>    <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</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">61</td><td>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="k3">-</span><span class="n">1</span><span class="k2">)</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>&#160;</td></tr><tr><td class="number">64</td><td>  <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</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">66</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">67</td><td>  <span class="c">/* add other initializations here */</span></td></tr><tr><td class="number">68</td><td><span class="k2">}</span></td></tr><tr><td class="number">69</td><td>&#160;</td></tr><tr><td class="number">70</td><td><span class="k1">void</span> deinit<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">71</td><td>  <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>  <span class="c">/* add other deinitializations here */</span></td></tr><tr><td class="number">73</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Nelson Cole)</author>
		<pubDate>Mon, 30 Jan 2006 09:23:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In the layter snippet the allegro_degrees are counted inside the while loop.. and in the first not.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tero Laxström)</author>
		<pubDate>Mon, 30 Jan 2006 19:47:02 +0000</pubDate>
	</item>
</rss>
