<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Rotation &amp; movement</title>
		<link>http://www.allegro.cc/forums/view/594212</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 03 Dec 2007 13:33:22 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m able to rotate my sprite with:</p><div class="source-code snippet"><div class="inner"><pre>    <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_Q<span class="k2">]</span><span class="k2">)</span>
      _angle--<span class="k2">;</span>
    <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_E<span class="k2">]</span><span class="k2">)</span>
      _angle<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>

<a href="http://www.allegro.cc/manual/rotate_sprite" target="_blank"><span class="a">rotate_sprite</span></a><span class="k2">(</span>buffer, _sprite, _position.X, _position.Y, <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I have a vector for the position of the sprite. Using the above to rotate, how can I get the direction vector so when I move forward it moves the direction that the sprite is rotated? I&#39;d sure it&#39;s fairly easy and I just can&#39;t find anything.</p><p>Or, based on the angle, how can I get the direction vector?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Demons)</author>
		<pubDate>Sat, 01 Dec 2007 21:19:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You should have a velocity on the x and y axis for the sprite, and then do this:</p><div class="source-code snippet"><div class="inner"><pre>vx <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</span>
vy <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</span>
</pre></div></div><p>

Where speed is the speed by which the sprite should be moving. Then you update the x and y values by the vx,vy values:</p><div class="source-code snippet"><div class="inner"><pre>_position.X <span class="k3">+</span><span class="k3">=</span> vx<span class="k2">;</span>
_position.Y <span class="k3">+</span><span class="k3">=</span> vy<span class="k2">;</span>
</pre></div></div><p>

And youre done!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vanneto)</author>
		<pubDate>Sat, 01 Dec 2007 21:32:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh ok. I do have a velocity, and I also have a direction vector, but it seems since I have the angle variable I don&#39;t need the direction vector. Thanks.</p><p>Also, that would call cos() and sin() each cycle. I imagine I could call those and store the value in a variable only when I rotate right?</p><p>What variables do I need these declared as? I&#39;m getting errors about fixed and such and when I make the angle &#39;fix&#39; and the vectors float or anything else I get strange results.</p><p>I have my angle init to 0 and when I use that to move forward it moves right. ie I have it so when you press the W key it sets the speed value to &gt; 0 to start the movement.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Demons)</author>
		<pubDate>Sat, 01 Dec 2007 21:34:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1. Yes you could calculate the new position only when the ship is rotated. That is a good idea. </p><p>2. Well sin() and cos() take floats. So you could make _angle a float and then use ftofix() when calling rotate_sprite().</p><p>3. Hmm... Dont know about this one. Try starting with 90 degrees.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Vanneto)</author>
		<pubDate>Sat, 01 Dec 2007 22:17:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>OK, I must be missing something. Here is my player code, would be great if someone could take a look and let me know what I&#39;m doing wrong.</p><p>The sprite does rotate, but the direction of moving doesn&#39;t work correctly.</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">class</span> Vector2D</td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>private:</td></tr><tr><td class="number">4</td><td>public:</td></tr><tr><td class="number">5</td><td>  <span class="k1">float</span> X, Y<span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="k1">class</span> Player</td></tr><tr><td class="number">10</td><td><span class="k2">{</span></td></tr><tr><td class="number">11</td><td>private:</td></tr><tr><td class="number">12</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>_sprite<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  Vector2D _position<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  Vector2D _velocity<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  Vector2D _direction<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k1">float</span> _angle<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>  <span class="k1">float</span> _speed<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k1">bool</span> _moveForward<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>public:</td></tr><tr><td class="number">20</td><td>  Player<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>    _moveForward <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>    _speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    _angle <span class="k3">=</span> <span class="n">90</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>    _position.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">26</td><td>    _position.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">27</td><td>    _direction.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>    _direction.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    _sprite <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">"C:\\player.bmp"</span>,<span class="n">0</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="k1">void</span> draw<span class="k2">(</span><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">32</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">33</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, _sprite, _position.X, _position.Y, <a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>_angle<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="k1">void</span> move<span class="k2">(</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="c">//_velocity.X = _direction.X * _speed;</span></td></tr><tr><td class="number">38</td><td>    <span class="c">//_velocity.Y = _direction.Y * _speed;</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td>    _velocity.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span></td></tr><tr><td class="number">41</td><td>    _velocity.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>    _position.X <span class="k3">+</span><span class="k3">=</span> _velocity.X<span class="k2">;</span></td></tr><tr><td class="number">44</td><td>    _position.Y <span class="k3">+</span><span class="k3">=</span> _velocity.Y<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>  <span class="k1">void</span> input<span class="k2">(</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="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_Q<span class="k2">]</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>      _angle--<span class="k2">;</span></td></tr><tr><td class="number">51</td><td>      _direction.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<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_E<span class="k2">]</span><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>      _angle<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>      _direction.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">58</td><td>&#160;</td></tr><tr><td class="number">59</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> <span class="k3">!</span>_moveForward<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>      _speed <span class="k3">=</span> .<span class="n">5</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>      _moveForward <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">64</td><td>    <span class="k1">else</span> <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_W<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> _moveForward<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>      _speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>      _moveForward <span class="k3">=</span> <span class="k1">false</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="k2">}</span></td></tr><tr><td class="number">70</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Demons)</author>
		<pubDate>Sat, 01 Dec 2007 22:29:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For your <tt>move()</tt> function doesn&#39;t seem to be truly using your <tt>_velocity</tt>.  I would suggest something similar to:
</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">void</span> move<span class="k2">(</span><span class="k2">)</span>
  <span class="k2">{</span>
    _velocity.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span>
    _velocity.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span>

    _position.X <span class="k3">+</span><span class="k3">=</span> _velocity.X<span class="k2">;</span>
    _position.Y <span class="k3">+</span><span class="k3">=</span> _velocity.Y<span class="k2">;</span>
  <span class="k2">}</span>
</pre></div></div><p>
Could you also explain </p><div class="quote_container"><div class="title">Demons said:</div><div class="quote"><p>
the direction of moving doesn&#39;t work correctly
</p></div></div><p> and say WHAT isn&#39;t working?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (TeamTerradactyl)</author>
		<pubDate>Sat, 01 Dec 2007 23:26:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I must be missing something. That looks the same except you have  ) after speed which shouldn&#39;t compile since there is no matching (.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
and say WHAT isn&#39;t working?
</p></div></div><p>

I don&#39;t know what isn&#39;t working or what it&#39;s doing. I just know it&#39;s not moving it in the right direction. When my guy is facing up, and I try to move (I don&#39;t rotate yet) then he goes right.</p><p>[EDIT]</p><p>OK, something that seems odd. When the angle is 0, cos(angle) is returning a 1, and that gets multiplies by the speed which is .5 making the _velocity.X = to .5, which isn&#39;t right I&#39;m thinking, because that makes my image go right, when the image I have visually is pointing up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Demons)</author>
		<pubDate>Sat, 01 Dec 2007 23:40:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What direction is your <tt>BITMAP *_sprite</tt> stored?  You may need to rotate the sprite&#39;s image by 90 degrees.  The &quot;unturned&quot; direction should be facing right when you have _angle=0.0, it should be facing up when _angle=PI/2 (or in the case of Allegro rotations, 128/2, or 64.0).</p><p>And the &quot;)&quot; artifact was something that happened when copying/pasting; sorry.  I&#39;ll edit my post and fix that typo.</p><p><b>EDIT:</b> Sorry; I guess I had not correctly read your code post, so I had re-keyed what you already had.</p><p>So please disregard that first bit; I thought your math was wrong, but it turns out, you were correct all along.  The relevant thing is that I think your sprite is simply turned 90 degrees.  What direction does it go if you use your Q/E keys and accelerate?  Does it go &quot;straight&quot; and even rotate correctly, but simply have the bitmap facing the wrong direction?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (TeamTerradactyl)</author>
		<pubDate>Sat, 01 Dec 2007 23:56:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My bitmap is stored normally I guess. I created a top down bitmap where you are looking directly down on a person. So you see hit head, shoulders, adn a gun that is pointing &quot;up&quot; or forward.</p><p>When angle is 0 the image is facing up. In my code I init angle to 0, and it uses that in rotate_sprite. So if angle is 0 it seems rotate_sprite just draws it normally (up), but moving makes it go right. So how do I rotate my bitmap yet not the angle? Seems I need the bitmap to be facing right at first.</p><p>When I move and rotate, sometimes it seems to go the right away and sometimes it doesn&#39;t. Seems odd.</p><p>[EDIT]</p><p>Ok, I rotated the image in the paint editor so now it starts out looking right. So now if I move forward and don&#39;t rotate it works by moving right and looks visually right. BUT, if I press Q once then move again the character starts moving up/left, when visually he should move up/right.</p><p>Hmm maybe it&#39;s because the sprite is rotating around the top/left corner instead of the center of the sprite? I assume rotate_sprite() is doing the rotation around the center of the sprite, and my cos()/sin() is doing it around the top/left of teh sprite.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Demons)</author>
		<pubDate>Sun, 02 Dec 2007 00:06:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[EDIT] Nevermind, I read wrong <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (IonBlade)</author>
		<pubDate>Sun, 02 Dec 2007 15:17:12 +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>Player::Player<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>  _moveForward <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  _speed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>  _angle <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  _position.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">7</td><td>  _position.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">8</td><td>  _direction.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  _direction.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>  _sprite <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>,<span class="n">0</span><span class="k2">)</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>&#160;</td></tr><tr><td class="number">13</td><td><span class="k1">void</span> Player::draw<span class="k2">(</span><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">14</td><td><span class="k2">{</span></td></tr><tr><td class="number">15</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, _sprite, _position.X, _position.Y, <a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>_angle <span class="k3">*</span> <span class="n">128</span>.<span class="n">0</span><span class="k2">)</span><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>&#160;</td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><span class="k1">void</span> Player::move<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>  _velocity.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle <span class="k3">*</span> M_PI<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span></td></tr><tr><td class="number">22</td><td>  _velocity.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle <span class="k3">*</span> M_PI<span class="k2">)</span> <span class="k3">*</span> _speed<span class="k2">;</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>  _position.X <span class="k3">+</span><span class="k3">=</span> _velocity.X<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  _position.Y <span class="k3">+</span><span class="k3">=</span> _velocity.Y<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> Player::input<span class="k2">(</span><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>  <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_Q<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>    _angle-<span class="k3">=</span><span class="n">0</span>.<span class="n">05</span><span class="k2">;</span> <span class="c">// If this is too large, it rotates much too quickly</span></td></tr><tr><td class="number">33</td><td>    _direction.X <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>_angle<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="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_E<span class="k2">]</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>    _angle<span class="k3">+</span><span class="k3">=</span><span class="n">0</span>.<span class="n">05</span><span class="k2">;</span> <span class="c">// Same as rotation for KEY_Q</span></td></tr><tr><td class="number">38</td><td>    _direction.Y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>_angle<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_W<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>_moveForward<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>    _speed <span class="k3">=</span> .<span class="n">5</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>    _moveForward <span class="k3">=</span> <span class="k1">true</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>  <span class="k1">else</span> <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_W<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> _moveForward<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>    _speed <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">48</td><td>    _moveForward <span class="k3">=</span> <span class="k1">false</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><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (TeamTerradactyl)</author>
		<pubDate>Mon, 03 Dec 2007 13:33:22 +0000</pubDate>
	</item>
</rss>
