<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Pivot</title>
		<link>http://www.allegro.cc/forums/view/550273</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 06 Dec 2005 09:08:52 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How can I pivot a bitmap so that it follows the mouse, like <a href="http://img123.imageshack.us/full.php?image=aaa5tw.jpg">this</a>? I&#39;ve got:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/pivot_sprite" target="_blank"><span class="a">pivot_sprite</span></a><span class="k2">(</span>buffer, playerbuffer<span class="k2">[</span>PLAYER_ARM<span class="k2">]</span>,
     <span class="k2">(</span>playerx<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="k2">(</span>playery<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="n">16</span>,
     <span class="n">5</span>,
     <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span> ???????? <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

<span class="source-code">??????? Should be...</span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Mon, 05 Dec 2005 03:56:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I didn&#39;t quite get what you want. Is it just a line? If so, do
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a> <span class="k2">(</span>bitmap, sprite_center_x, sprite_center_y, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a>, <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>, color<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pedro Avelar Gontijo)</author>
		<pubDate>Mon, 05 Dec 2005 04:09:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, no it&#39;s a bitmap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Mon, 05 Dec 2005 04:10:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Otherwise look into atan2 and remember to convert the output of that (radians) correctly to the input of pivot_sprite (Allegro units in fixed point).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Harte)</author>
		<pubDate>Mon, 05 Dec 2005 04:12:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Then explain better what are you rotating <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /><br />[edit]<br />Beaten and not understanding a thing <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><br />[edit]<br />Now understanding but still beaten <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Pedro Avelar Gontijo)</author>
		<pubDate>Mon, 05 Dec 2005 04:12:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>thanks thomas.</p><p>pedro: <a href="http://img213.imageshack.us/my.php?image=aaa8dm.jpg">bitmap</a></p><p>[edit]<br />Negatory...</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/pivot_sprite" target="_blank"><span class="a">pivot_sprite</span></a><span class="k2">(</span>buffer, playerbuffer<span class="k2">[</span>PLAYER_ARM<span class="k2">]</span>,
     <span class="k2">(</span>playerx<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="k2">(</span>playery<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="n">16</span>,
     <span class="n">5</span>,
     <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</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="k1">double</span><span class="k2">)</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><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

It moves about 1 pixel.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Mon, 05 Dec 2005 04:15:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No idea what you want, but doesent
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/pivot_sprite" target="_blank"><span class="a">pivot_sprite</span></a><span class="k2">(</span>buffer, playerbuffer<span class="k2">[</span>PLAYER_ARM<span class="k2">]</span>,
     <span class="k2">(</span>playerx<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="k2">(</span>playery<span class="k3">+</span><span class="k2">(</span>playerbuffer<span class="k2">[</span>PLAYER_CURRENTFACING<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><span class="k2">)</span>,
     <span class="n">16</span>,
     <span class="n">5</span>,
     <a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</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="k1">double</span><span class="k2">)</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><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
require that atan2 returns an integer, when it (if we&#39;re talking math.h here) actually returns radians (double)?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Mon, 05 Dec 2005 04:35:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>...
<a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</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="k1">double</span><span class="k2">)</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><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Still doesn&#39;t work (moves 1 pixel)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Mon, 05 Dec 2005 04:37:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Gah.
</p><div class="quote_container"><div class="title">Thomas said:</div><div class="quote"><p>
Otherwise look into atan2 <i>and remember to convert the output of that (radians) correctly to the input of pivot_sprite (Allegro units in fixed point)</i>.
</p></div></div><p>

1) Use ftofix(). Casting atan2&#39;s output to int will just throw away information (hint: how many integers are there between -&pi; and +&pi;?). <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>2) Convert between radians (period: 2&pi; ) and Allegro units (period: 256).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Mon, 05 Dec 2005 14:09:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/itofix" target="_blank"><span class="a">itofix</span></a><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span><span class="k2">(</span><span class="k1">double</span><span class="k2">)</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="k1">double</span><span class="k2">)</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><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div></div><p>
Hmm, wouldn&#39;t you want to convert to a local coordinate system for the sprite you want to pivot? Like this:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span>radians_to_allegro_degrees<span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>sprite_y <span class="k3">-</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> sprite_x<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (miran)</author>
		<pubDate>Mon, 05 Dec 2005 22:42:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
2) Convert between radians (period: 2&#960; ) and Allegro units (period: 256).
</p></div></div><p>

wtf?</p><p>[edit]<br />Let me rephrase that... I did read that 2&#960; = 360 degrees (correct?). So are you saying that 2&#960; = 256 Allegro units?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Tue, 06 Dec 2005 05:10:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes. One allegro &quot;full circle&quot; is 256 units.<br />Also, what mirian said is probably a good idea.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Tue, 06 Dec 2005 06:16:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m having trouble with this.</p><div class="source-code snippet"><div class="inner"><pre>...
<a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>playery <span class="k3">-</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> playerx<span class="k2">)</span><span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">128</span><span class="k3">/</span><span class="n">3</span>.<span class="n">14</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I chose 128 because it&#39;s half of 256. 180 is half of 360.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Tue, 06 Dec 2005 08:55:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s the trouble? Other than the 180 is an integer which may cause the compiler to return an integer, which would be 0 (or it may not, dunno).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Tue, 06 Dec 2005 09:02:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>...
<a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>playery <span class="k3">-</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> playerx<span class="k2">)</span><span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">128</span>.<span class="n">0</span><span class="k3">/</span><span class="n">3</span>.<span class="n">14</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

KittyCat: It&#39;s not &quot;following&quot; the mouse. In fact, it appears to face the opposite direction and I&#39;ve tried:</p><div class="source-code snippet"><div class="inner"><pre>...
<span class="c">//     /</span>
<a href="http://www.allegro.cc/manual/ftofix" target="_blank"><span class="a">ftofix</span></a><span class="k2">(</span><span class="k3">-</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>playery <span class="k3">-</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a>, <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> playerx<span class="k2">)</span><span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span><span class="n">128</span>.<span class="n">0</span><span class="k3">/</span><span class="n">3</span>.<span class="n">14</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

[edit]<br /><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/f/0/f0b6069cc56087b490bbee6813a179d9.jpg" alt="a4hj.jpg" width="169" height="159" /><a href="http://img386.imageshack.us/img386/2571/a4hj.jpg[/img">http://img386.imageshack.us/img386/2571/a4hj.jpg[/img</a>]
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (scriptX)</author>
		<pubDate>Tue, 06 Dec 2005 09:08:52 +0000</pubDate>
	</item>
</rss>
