<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>What&#39;s wrong with this code?</title>
		<link>http://www.allegro.cc/forums/view/590372</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 04 Mar 2007 05:55:18 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Howdy,</p><p>     I made a small program to test angled sprite movement. It works and all, except for I can tell that on some angles when I shoot the laser or move the ship in the direction the ship points, it&#39;s off slightly. I&#39;m using float variables as the speed for both the laser and the ship. <br />Here&#39;s is the code: (I am using allegro but I made a wrapper for it for C++, so it&#39;s easier to read. You should be able to decifer everything perfectly fine).</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 "header.h"</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> main<span class="k2">(</span><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> TheApp.ColorDepth<span class="k2">(</span><span class="n">24</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td> TheApp.GfxMode<span class="k2">(</span>GFX_SAFE,<span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td> TheApp.InstallMouse<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td> TheApp.InstallKeyboard<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td> TheApp.InstallTimer<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td> TheApp.InstallJoystick<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td> TheApp.InstallSound<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> spaceship.LoadSprite<span class="k2">(</span><span class="s">"spaceship.bmp"</span>,<span class="n">59</span>,<span class="n">48</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td> spaceship.x<span class="k3">=</span><span class="n">385</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td> spaceship.y<span class="k3">=</span><span class="n">285</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td> laser.LoadSprite<span class="k2">(</span><span class="s">"laser.bmp"</span>,<span class="n">10</span>,<span class="n">10</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td> laser.x<span class="k3">=</span><span class="n">415</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td> laser.y<span class="k3">=</span><span class="n">305</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td> </td></tr><tr><td class="number">19</td><td> space.LoadSprite<span class="k2">(</span><span class="s">"space.bmp"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td> </td></tr><tr><td class="number">21</td><td> buffer.CreateSprite<span class="k2">(</span><span class="n">800</span>,<span class="n">600</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td> </td></tr><tr><td class="number">23</td><td> laserfire<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</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">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_RIGHT<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>                          shipangle<span class="k3">+</span><span class="k3">=</span><span class="n">2</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">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></td></tr><tr><td class="number">32</td><td>         <span class="k2">{</span></td></tr><tr><td class="number">33</td><td>                          shipangle-<span class="k3">=</span><span class="n">2</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_UP<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>                          spaceship.xspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>                          spaceship.yspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>                          spaceship.x<span class="k3">+</span><span class="k3">=</span>spaceship.xspeed<span class="k2">;</span></td></tr><tr><td class="number">40</td><td>                          spaceship.y<span class="k3">+</span><span class="k3">=</span>spaceship.yspeed<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>         <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="k3">&amp;</span><span class="k3">&amp;</span> laserfire<span class="k3">=</span><span class="k3">=</span><span class="k1">false</span><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>                          laser.xspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>                          laser.yspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>                          laser.x<span class="k3">=</span>spaceship.x<span class="k2">;</span></td></tr><tr><td class="number">47</td><td>                          laser.y<span class="k3">=</span>spaceship.y<span class="k2">;</span></td></tr><tr><td class="number">48</td><td>                          laserfire<span class="k3">=</span><span class="k1">true</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="k1">if</span><span class="k2">(</span>laser.x <span class="k3">&gt;</span> TheApp.screenw <span class="k3">|</span><span class="k3">|</span> laser.y <span class="k3">&gt;</span> TheApp.screenh <span class="k3">|</span><span class="k3">|</span></td></tr><tr><td class="number">51</td><td>                    laser.x <span class="k3">&lt;</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> laser.y <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">52</td><td>                    laserfire<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>                    </td></tr><tr><td class="number">54</td><td>         <span class="k1">if</span><span class="k2">(</span>shipangle <span class="k3">&gt;</span> <span class="n">256</span><span class="k2">)</span></td></tr><tr><td class="number">55</td><td>                      shipangle<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td>         <span class="k1">if</span><span class="k2">(</span>shipangle <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">57</td><td>                      shipangle<span class="k3">=</span><span class="n">256</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>                      </td></tr><tr><td class="number">59</td><td>         space.Render<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>         spaceship.Rotate<span class="k2">(</span>buffer,shipangle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>         <span class="k1">if</span><span class="k2">(</span>laserfire<span class="k3">=</span><span class="k3">=</span><span class="k1">true</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>                           laser.x<span class="k3">+</span><span class="k3">=</span>laser.xspeed<span class="k2">;</span></td></tr><tr><td class="number">64</td><td>                           laser.y<span class="k3">+</span><span class="k3">=</span>laser.yspeed<span class="k2">;</span></td></tr><tr><td class="number">65</td><td>                           laser.Render<span class="k2">(</span>buffer<span class="k2">)</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>         textprintf<span class="k2">(</span>buffer.SPRITE,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">0</span>,WHITE,<span class="s">"Ship Angle: %i"</span>,shipangle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>         textprintf<span class="k2">(</span>buffer.SPRITE,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">10</span>,WHITE,<span class="s">"Laser Xspeed: %f"</span>,laser.xspeed<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>         textprintf<span class="k2">(</span>buffer.SPRITE,<a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>,<span class="n">0</span>,<span class="n">20</span>,WHITE,<span class="s">"Laser Yspeed: %f"</span>,laser.yspeed<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>         buffer.RenderToScreen<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/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">72</td><td> <span class="k2">}</span></td></tr><tr><td class="number">73</td><td>&#160;</td></tr><tr><td class="number">74</td><td> <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>   </td></tr><tr><td class="number">75</td><td><span class="k2">}</span>     </td></tr><tr><td class="number">76</td><td>&#160;</td></tr><tr><td class="number">77</td><td><span class="c">// Some Allegro magic to deal with WinMain().</span></td></tr><tr><td class="number">78</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><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 04:46:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>spaceship.xspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
spaceship.yspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>shipangle<span class="k3">/</span>.<span class="n">7111111</span><span class="k2">)</span><span class="k3">*</span>M_PI<span class="k3">/</span><span class="n">180</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>

spaceship.x<span class="k3">+</span><span class="k3">=</span>spaceship.xspeed<span class="k2">;</span>
spaceship.y<span class="k3">+</span><span class="k3">=</span>spaceship.yspeed<span class="k2">;</span>
</pre></div></div><p>
What&#39;s <tt>shipangle/.7111111</tt> doing there? AFAIK it should be like
</p><pre>
spaceship.xspeed = 8*cos(shipangle*M_PI/180);
spaceship.yspeed = 8*sin(shipangle*M_PI/180);
</pre><p>
, assuming that shipangle is in degrees, which, as far as I can see, is true. The same for the laser.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CursedTyrant)</author>
		<pubDate>Sun, 04 Mar 2007 05:01:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">CursedTyrant said:</div><div class="quote"><p>
What&#39;s shipangle/.7111111 doing there?
</p></div></div><p>

It&#39;s there because shipangle is in allegro-degrees, not normal-degrees.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:06:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In that case, you want:</p><div class="source-code snippet"><div class="inner"><pre>spaceship.xspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>M_PI<span class="k3">*</span><span class="n">2</span><span class="k3">/</span><span class="n">256</span><span class="k3">*</span>shipangle<span class="k2">)</span><span class="k2">;</span>
spaceship.yspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>M_PI<span class="k3">*</span><span class="n">2</span><span class="k3">/</span><span class="n">256</span><span class="k3">*</span>shipangle<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

With an additive value also applied based on which direction you want as 0.</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sun, 04 Mar 2007 05:10:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hm, I&#39;ve never played with those. Still, this is the only line in your code where it could be wrong IMO. Maybe .7111111 is not 100% accurate (as it should be, anyway), which would explain your problem?</p><p>Then again, I never used allegro&#39;s rotating functions, so it&#39;s just a wild guess.</p><p>EDIT: Beaten, but it seems I was correct <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CursedTyrant)</author>
		<pubDate>Sun, 04 Mar 2007 05:10:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Kris Asick said:</div><div class="quote"><p>
In that case, you want:</p><p>spaceship.xspeed = 8 * cos(M_PI*2/256*shipangle);<br />spaceship.yspeed = 8 * sin(M_PI*2/256*shipangle);With an additive value also applied based on which direction you want as 0.
</p></div></div><p>
I tried that, and it was still a bit off.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:17:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Where did you get the .711111 from?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 05:21:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">BAF said:</div><div class="quote"><p>
Where did you get the .711111 from?
</p></div></div><p>
Each normal-degree is .7111111111111111111 etc. of an allegro-degree. To convert, you divide the allegro-degrees by .7111111111 etc.:)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:25:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I tried that, and it was still a bit off.
</p></div></div><p>

What exactly are you setting M_PI to? If you&#39;re only setting it to 3.14, try adding as many significant digits as you can.</p><p><span class="source-code">M_PI <span class="k3">=</span> <span class="n">3</span>.<span class="n">141592654</span></span></p><p>You may also try casting to avoid conversion order problems.</p><div class="source-code snippet"><div class="inner"><pre>spaceship.xspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>M_PI<span class="k3">*</span><span class="n">2</span><span class="k3">/</span><span class="n">256</span><span class="k3">*</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>shipangle<span class="k2">)</span><span class="k2">;</span>
spaceship.yspeed <span class="k3">=</span> <span class="n">8</span> <span class="k3">*</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>M_PI<span class="k3">*</span><span class="n">2</span><span class="k3">/</span><span class="n">256</span><span class="k3">*</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>shipangle<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Lastly, xspeed and yspeed <i>must</i> be floating point values for any realm of accuracy, and so must the x and y coordinates of the object. If they&#39;re not, change those immediately.</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sun, 04 Mar 2007 05:28:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What is the M_PI/180 for then? It seems like you are doing a ton of funky conversions.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 05:30:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Kris Asick said:</div><div class="quote"><p>
What exactly are you setting M_PI to? If you&#39;re only setting it to 3.14, try adding as many significant digits as you can.</p><p>M_PI = 3.141592654</p><p>You may also try casting to avoid conversion order problems.</p><p>spaceship.xspeed = 8 * cos(M_PI*2/256*(float)shipangle);<br />spaceship.yspeed = 8 * sin(M_PI*2/256*(float)shipangle);</p><p>Lastly, xspeed and yspeed must be floating point values for any realm of accuracy, and so must the x and y coordinates of the object. If they&#39;re not, change those immediately.
</p></div></div><p>
M_PI is already set to.....something. I didn&#39;t set it. It set itself.<br />If I make the X and Y cords float value instead of int, I get an error when I pass the values to draw_sprite() and other render functions.???
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:34:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s the error? You probably have to cast to an int, which isn&#39;t really a big deal.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 05:36:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">BAF said:</div><div class="quote"><p>

You probably have to cast to an int
</p></div></div><p>

Cast to an int? What?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:37:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
If I make the X and Y cords float value instead of int, I get an error when I pass the values to draw_sprite() and other render functions.
</p></div></div><p>

You need to cast floating point values to integers for those functions like so:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer.SPRITE,spaceship.SPRITE,<span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>spaceship.x,<span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>spaceship.y<span class="k2">)</span><span class="k2">;</span>
.
</pre></div></div><p>

That should do it.</p><p>Some compilers handle simple casts like that automatically, others don&#39;t.</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sun, 04 Mar 2007 05:38:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Compilers won&#39;t handle casts. They will automatically promote values to more precision (coercion), but you have to explicitly cast if you are losing precision.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 05:39:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Compilers won&#39;t handle casts.
</p></div></div><p>

You sure about that? I happen to know for a fact that the error blargmob is getting wouldn&#39;t happen in MSVC 6.0, which is the compiler I use. I pass floating point values routinely to Allegro functions without casting them and they work perfectly fine. But I know from reading other posts that not all compilers do that.</p><p>--- Kris Asick (Gemini)<br />--- <a href="http://www.pixelships.com">http://www.pixelships.com</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kris Asick)</author>
		<pubDate>Sun, 04 Mar 2007 05:45:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah Ha! I just had to make everything a float value and cast as int. Thanks guys, problem solved.;D;D;D;D;D;D<br /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />;D;D;D;D;D;D;D;D;D;D<br />;D;D;D;D;D;D;D
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (blargmob)</author>
		<pubDate>Sun, 04 Mar 2007 05:46:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
You sure about that? I happen to know for a fact that the error blargmob is getting wouldn&#39;t happen in MSVC 6.0, which is the compiler I use. I pass floating point values routinely to Allegro functions without casting them and they work perfectly fine. But I know from reading other posts that not all compilers do that.
</p></div></div><p>

I should have said &quot;AFAIK&quot; and &quot;any standards compliant compiler.&quot;  I think I&#39;m covered now.</p><p>Also, I vote for smiley free week again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Sun, 04 Mar 2007 05:48:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, it was a while ago now, wasn&#39;t it? I&#39;ll get right on it. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /><br />(Smiley added for ironic effect)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sun, 04 Mar 2007 05:55:18 +0000</pubDate>
	</item>
</rss>
