<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>rotate with mouse</title>
		<link>http://www.allegro.cc/forums/view/586172</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 30 Jun 2006 00:40:20 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am trying to use the mouse to make a bitmap rotate(if the mouse moves along the x axis, the bitmap rotates accordingly). I have been trying to do it with get_mouse_mickeys() and rotate_sprite() but now luck. I do have a feeling I am doing it all wrong. Here&#39;s the code:
</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>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">int</span> player1_x <span class="k3">=</span> <span class="n">320</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td><span class="k1">int</span> player1_y <span class="k3">=</span> <span class="n">240</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k1">int</span> player2_x<span class="k2">;</span></td></tr><tr><td class="number">7</td><td><span class="k1">int</span> player2_y<span class="k2">;</span></td></tr><tr><td class="number">8</td><td><span class="k1">int</span> player1_rotate<span class="k2">;</span></td></tr><tr><td class="number">9</td><td><span class="k1">int</span> player2_rotate<span class="k2">;</span></td></tr><tr><td class="number">10</td><td><span class="k1">int</span> mickeyx <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">int</span> mickeyy <span class="k3">=</span> <span class="n">0</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="k1">int</span> player1_movement<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><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="k2">)</span></td></tr><tr><td class="number">16</td><td><span class="k2">{</span></td></tr><tr><td class="number">17</td><td>player1_x <span class="k3">-</span><span class="k3">-</span><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><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">20</td><td><span class="k2">{</span></td></tr><tr><td class="number">21</td><td>player1_x <span class="k3">+</span><span class="k3">+</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="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></td></tr><tr><td class="number">24</td><td><span class="k2">{</span></td></tr><tr><td class="number">25</td><td>player1_y <span class="k3">-</span><span class="k3">-</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><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></td></tr><tr><td class="number">28</td><td><span class="k2">{</span></td></tr><tr><td class="number">29</td><td>player1_y <span class="k3">+</span><span class="k3">+</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><a href="http://www.allegro.cc/manual/position_mouse" target="_blank"><span class="a">position_mouse</span></a><span class="k2">(</span><span class="n">320</span>, <span class="n">240</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</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">33</td><td><span class="k1">if</span><span class="k2">(</span>mickeyx <span class="k3">&gt;</span> <span class="n">1</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>player1_rotate <span class="k3">+</span><span class="k3">+</span><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><span class="k1">if</span><span class="k2">(</span>mickeyx <span class="k3">&lt;</span> <span class="n">1</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>player1_rotate <span class="k3">-</span><span class="k3">-</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><span class="k2">}</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</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">44</td><td><span class="k2">{</span></td></tr><tr><td class="number">45</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">46</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">47</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">48</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">49</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,<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">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td>&#160;</td></tr><tr><td class="number">52</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="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">53</td><td>&#160;</td></tr><tr><td class="number">54</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="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">55</td><td>   </td></tr><tr><td class="number">56</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="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">57</td><td>   </td></tr><tr><td class="number">58</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">59</td><td><span class="k2">{</span>   </td></tr><tr><td class="number">60</td><td>player1_movement<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</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, player1_rotate<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">63</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">64</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">65</td><td><span class="k2">}</span></td></tr><tr><td class="number">66</td><td>&#160;</td></tr><tr><td class="number">67</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">68</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">69</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">70</td><td>&#160;</td></tr><tr><td class="number">71</td><td><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>&#160;</td></tr><tr><td class="number">73</td><td><span class="k2">}</span></td></tr><tr><td class="number">74</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>
Right now I am focusing on player1 just to get it working properly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (neil dwyer)</author>
		<pubDate>Thu, 29 Jun 2006 05:59:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should have &quot;if(mickeyx &gt; 0)&quot; and &quot;if(mickeyx &lt; 0)&quot;. And if you want it to rotate accordingly to the speed you move the mouse, you should have something like &quot;player1_rotate += mickeyx * SPEED;&quot;. Probably there&#39;s something else wrong but that&#39;s all I see now. What happens when you try to rotate the bitmap?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vasco Freitas)</author>
		<pubDate>Thu, 29 Jun 2006 06:48:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes I was going to do your idea but I wanted to see if I could get it to rotate first. <br />The program is working exactly as if I would have used draw_sprite instead of rotate_sprite.</p><p>Edit: Ok, it wasn&#39;t rotating because it had to be fixed, but the mouse isn&#39;t working.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (neil dwyer)</author>
		<pubDate>Thu, 29 Jun 2006 06:57:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you are giving it an int. It wants a fixed. use itofix(plater1_rotate) in the rotate_sprite last argument
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Fri, 30 Jun 2006 00:40:20 +0000</pubDate>
	</item>
</rss>
