<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Drag line with mouse  on a fixed angle</title>
		<link>http://www.allegro.cc/forums/view/613490</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 15 Nov 2013 18:42:53 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi I know this is not Allegro related but I hope that maybe someone will explain me some things about analitical geometry.</p><p>I have a line that has a point fixed on certain coordinates and the other one follows the mouse. The next thing that I want to do is when I press the left mouse button , the line is fixed on a certain angle pointing to my mouse and I can move it on the axis formed by the mouse and the fixed point. The mouse event is not a problem , the only thins is I don&#39;t know how to write it. Can you give me some hints or ideas how to do this ? <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Tue, 12 Nov 2013 22:10:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just want to paraphrase what you are saying so that we&#39;re on the same page.  So basically what you want is when you have the mouse button pressed, and you move the muse towards the fixed point, the line will get shorter and if you move the mouse away from the fixed point the line will get longer. But so long as the mouse button is held down, the angle the line is on will remain the same.</p><p>Is that correct?</p><p>If so.  The first thing I would do is calculate the x/y ratio. eg:</p><p><span class="source-code"><span class="k1">float</span> ratio <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> initial_x<span class="k2">)</span> <span class="k3">/</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">-</span> initial_y<span class="k2">)</span><span class="k2">;</span></span></p><p>and store either the x or y component at this time:</p><p><span class="source-code"><span class="k1">float</span> x_length <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> initial_x<span class="k2">;</span></span></p><p>Then I would calculate the length (actually, I&#39;d calculate its square to save calculation on times) of the line as it stands right now:</p><p><span class="source-code"><span class="k1">float</span> initial_line_length <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> initial_x<span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> initial_x<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">-</span> initial_y<span class="k2">)</span> <span class="k3">*</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">-</span> initial_y<span class="k2">)</span><span class="k2">;</span></span></p><p>Then do your loop that checks if the mouse is held down, and while it is, keep rechecking the new squared distance from the current position to the initial position:</p><p>&lt;code&gt;float current_line_length = (mouse_x - initial_x) * (mouse_x - initial_x) + (mouse_y - initial_y) * (mouse_y - initial_y);</p><p>The new x position for the end of the line is now:</p><p><span class="source-code"><span class="k1">float</span> new_x <span class="k3">=</span> initial_x <span class="k3">+</span> x_length <span class="k3">*</span> initial_line_length <span class="k3">/</span> current_line_length<span class="k2">;</span></span></p><p>The new y position is now:</p><p><span class="source-code"><span class="k1">float</span> new_y <span class="k3">=</span> initial_y <span class="k3">+</span> x_length <span class="k3">*</span> initial_line_length <span class="k3">/</span> current_line_length <span class="k3">*</span> ratio<span class="k2">;</span></span></p><p>If that causes the line to shrink and grow too quickly, just multiply the current_line_length value to some number between 0 and 1 until the speed is good for you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 13 Nov 2013 08:54:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The initial_x and initial_y are the fixed point&#39;s coordinates ?</p><p>What I want is when I press the mouse button the line won&#39;t get shorter it will be <u>moved</u> .Anyway I think your code gave me some help because I think the difference between getting shorter and be moved will be that for the move I also have to modify the fixed point coordinates. <br />I will try your advice . Thanks in advance. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Wed, 13 Nov 2013 20:02:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/613490/992437#target">chelneru</a> said:</div><div class="quote"><p> The initial_x and initial_y are the fixed point&#39;s coordinates ?</p></div></div><p>Yes.  I probably should have named them fixed_x and fixed_y.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p> Anyway I think your code gave me some help because I think the difference between getting shorter and be moved will be that for the move I also have to modify the fixed point coordinates.</p></div></div><p>That&#39;s even easier. First calculate the difference in position from the fixed point to the end of the line when you detect the mouse button is pressed, and store the mouse location:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">float</span> x_diff <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> fixed_x<span class="k2">;</span>
<span class="k1">float</span> y_diff <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">-</span> fixed_y<span class="k2">;</span>

<span class="k1">float</span> mouse_clicked_x <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a><span class="k2">;</span>
<span class="k1">float</span> mouse_clicked_y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a><span class="k2">;</span>
</pre></div></div><p>

Now while the mouse is held down, just loop through the following, which determines how far the mouse has moved since you pressed the button and moves the line by that amount:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">float</span> x1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_x"><span class="a">mouse_x</span></a> <span class="k3">-</span> mouse_clicked_x <span class="k3">+</span> fixed_x<span class="k2">;</span>
<span class="k1">float</span> y1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/mouse_y"><span class="a">mouse_y</span></a> <span class="k3">-</span> mouse_clicked_y <span class="k3">+</span> fixed_y<span class="k2">;</span>
<span class="k1">float</span> x2 <span class="k3">=</span> x1 <span class="k3">+</span> x_diff<span class="k2">;</span>
<span class="k1">float</span> y2 <span class="k3">=</span> y1 <span class="k3">+</span> y_diff<span class="k2">;</span>
</pre></div></div><p>

The new line is drawn form x1, y1 to x2, y2.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Wed, 13 Nov 2013 22:07:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So , here&#39;s what I did <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />: </p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">//Some code before....</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  4</span><span class="k2">{</span>   
<span class="number">  5</span>  
<span class="number">  6</span>  <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">if</span> <span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> 
<span class="number">  8</span>  <span class="k2">{</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k1">float</span> mouse_clicked_x <span class="k3">=</span> mx<span class="k2">;</span>    <span class="c">//When I press the mouse button </span>
<span class="number"> 11</span>                               <span class="c">//I store the coordinates</span>
<span class="number"> 12</span><span class="k1">float</span> mouse_clicked_y <span class="k3">=</span> my<span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k2">}</span>
<span class="number"> 17</span>  <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 18</span>  
<span class="number"> 19</span>
<span class="number"> 20</span><span class="c">//Now in the Timer event</span>
<span class="number"> 21</span>
<span class="number"> 22</span><span class="k1">float</span> x1 <span class="k3">=</span> mx <span class="k3">-</span> mouse_clicked_x<span class="k2">;</span>  <span class="c">//If I add "+fixed_x" the line </span>
<span class="number"> 23</span>                                  <span class="c">//will be at a 'fixed_x' distance from the mouse</span>
<span class="number"> 24</span><span class="k1">float</span> y1 <span class="k3">=</span> my <span class="k3">-</span> mouse_clicked_y<span class="k2">;</span>
<span class="number"> 25</span>
<span class="number"> 26</span><span class="c">// I put at the third and forth parameter +200 because my line will always have</span>
<span class="number"> 27</span>
<span class="number"> 28</span><span class="c">//the same distance so I will not need the x_diff and y_diff</span>
<span class="number"> 29</span><a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>x1,y1,x1<span class="k3">+</span><span class="n">200</span>,y1<span class="k3">+</span><span class="n">200</span>,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>  <span class="k2">}</span>
</div></div><p>


But this will make a line (that has an angle of 90+ degrees I don&#39;t know why..???) that follows the mouse. I am sorry if I misunderstood what you were trying to explain but I want the line to move on a certain angle even if the mouse is not on the same angle. </p><p>I want to make a pool game . This will help me with the cue. When I press the mouse button i want to drag the cue to set the force that will apply on the ball. So first I set the angle when I just move my mouse over the screen and then when I press the mouse button I only move the cue (line) on that angle that the line had  immediately before i press the button. </p><p>I was thinking to save the mouse coordinates and when I click , I see if the x is decreasing and if yes I will decrease the x coordinate of the line and with the line equation I find the y according to that x coordinate of the line . The problem is i can&#39;t seem to make it to work... <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>I&#39;m sorry if I&#39;m confusing and hard to understand ,I hope you have the patience to explain me my problem <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 00:13:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>A pool cue is pretty simple.</p><p>Here&#39;s the pseudocode to get the cue&#39;s position:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>mouseY <span class="k3">-</span> ballY, mouseX <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="k1">float</span> D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mouseX-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mouseX-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>mouseY-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mouseY-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>

cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

mouseX and mouseY are the mouse&#39;s current position, <b>do not</b> stop updating mouseX and mouseY while the mouse is pressed.</p><p>ballX and ballY are the target ball&#39;s position</p><p>cueAngle is the angle of the cue. <b>Stop updating this when you click</b>. Store it like this:</p><div class="source-code snippet"><div class="inner"><pre>cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>mouseY <span class="k3">-</span> ballY, mouseX <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>


EDIT: I&#39;m guessing you want the cue to start from the ball&#39;s position. To do this just store this in a float called ballDist <b>once when you click</b>:
</p><div class="source-code snippet"><div class="inner"><pre>ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mouseX-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mouseX-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>mouseY-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mouseY-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
Then subtract ballDist from D in the code above.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Thu, 14 Nov 2013 04:02:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have this : </p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span>
<span class="number">  4</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue,<span class="k3">&amp;</span>events<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">if</span><span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number">  8</span><span class="k2">{</span>
<span class="number">  9</span>  
<span class="number"> 10</span>  
<span class="number"> 11</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number"> 12</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number"> 13</span>  
<span class="number"> 14</span>  
<span class="number"> 15</span><span class="k2">}</span>
<span class="number"> 16</span>
<span class="number"> 17</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 18</span><span class="k2">{</span>   
<span class="number"> 19</span>  
<span class="number"> 20</span>  <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>  <span class="k1">if</span> <span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> 
<span class="number"> 22</span>  <span class="k2">{</span>
<span class="number"> 23</span>
<span class="number"> 24</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number"> 25</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number"> 26</span>
<span class="number"> 27</span>  ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>  <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="number"> 29</span>  D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
<span class="number"> 30</span>  <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 31</span>
<span class="number"> 32</span>cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>
<span class="number"> 35</span> 
<span class="number"> 36</span><span class="k2">}</span>
<span class="number"> 37</span>  
<span class="number"> 38</span>
<span class="number"> 39</span>  cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>
<span class="number"> 41</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 42</span>
<span class="number"> 43</span><span class="k2">}</span>
<span class="number"> 44</span><span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 45</span><span class="k2">{</span>
<span class="number"> 46</span>  draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 47</span>  
<span class="number"> 48</span>  <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>ballX,ballY,cueX,cueY,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number"> 49</span>
<span class="number"> 50</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</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="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>  <span class="k2">}</span>
</div></div><p>

When I run it i Get a line from the top left corner <img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /> to the ball coordinates.When I press the mouse button I only see a point <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> that it has a static move or something. Can you tell me how to apply your solution corectly ?  <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /> Also Where I use the D variable ? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 22:33:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Whoops, I wrote the code in wrong (it was pseudocode after all <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><div class="source-code snippet"><div class="inner"><pre>cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

should be:</p><div class="source-code snippet"><div class="inner"><pre>cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> D<span class="k2">;</span>
cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> D<span class="k2">;</span>
</pre></div></div><p>

EDIT: Also, this line should only be done once when you click, you seem to do it continuously when the mouse is down:</p><div class="source-code snippet"><div class="inner"><pre>ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Thu, 14 Nov 2013 22:38:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So , I made the modification but now when I press the mouse button it only appears on ...(let&#39;s say the ball coordinates are the centre of the screen) 0 angle I mean it&#39;s a line from the ball&#39;s coordinates and horizontal to right and is blinking.Here is an image of what I got : <a href="http://imageshack.us/photo/my-images/89/99n1.jpg">click to see image</a> </p><p>Also ballDist can be optional ?  because I have to write an another event so it&#39;s calculated only once when the button is pressed.</p><p>EDIT: The cue&#39;s coordinates are wierd...here&#39;s another image with the coordinates that i &#39;am getting (the point is not very accurate but still )</p><p> 	<a href="http://img13.imageshack.us/img13/9320/9qor.jpg">cue&#39;s coordinates</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 23:11:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Without &quot;ballDist&quot; the cue will jump to the mouse&#39;s distance relative to the ball instead of relative to the mouse&#39;s original position. You don&#39;t need another event, you can do something like this:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">//defined outside loop</span>
<span class="number">  2</span><span class="k1">bool</span> wasMousePressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>    
<span class="number">  5</span>   <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>   <span class="c">//if mouse is currently pressed but was not pressed on the previous iteration</span>
<span class="number">  8</span>   <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>wasMousePressed<span class="k2">)</span><span class="k2">{</span>
<span class="number">  9</span>       ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>   <span class="k2">}</span>
<span class="number"> 11</span>   
<span class="number"> 12</span>   ...
<span class="number"> 13</span>
<span class="number"> 14</span>   <span class="c">//after all the cue logic</span>
<span class="number"> 15</span>   wasMousePressed <span class="k3">=</span> MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 16</span><span class="k2">}</span>
</div></div><p>

Try and see if that fixes it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Thu, 14 Nov 2013 23:18:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here is my code :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span> <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span>
<span class="number">  4</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue,<span class="k3">&amp;</span>events<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">if</span><span class="k2">(</span> events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>    <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number">  9</span>      <span class="k2">{</span>
<span class="number"> 10</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 11</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 12</span>          
<span class="number"> 13</span>      <span class="k2">}</span>
<span class="number"> 14</span><span class="k2">}</span>
<span class="number"> 15</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 16</span><span class="k2">{</span>
<span class="number"> 17</span>  
<span class="number"> 18</span>  
<span class="number"> 19</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number"> 20</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number"> 21</span>  
<span class="number"> 22</span>  
<span class="number"> 23</span><span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 26</span><span class="k2">{</span>   
<span class="number"> 27</span>  
<span class="number"> 28</span>  <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>wasMousePressed<span class="k2">)</span>
<span class="number"> 30</span>  <span class="k2">{</span>
<span class="number"> 31</span>  
<span class="number"> 32</span>    ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span>  
<span class="number"> 35</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number"> 36</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number"> 37</span>  <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="number"> 38</span>  D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
<span class="number"> 39</span>  <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 40</span>
<span class="number"> 41</span>cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 42</span>cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 43</span> cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</span>  
<span class="number"> 45</span>
<span class="number"> 46</span> wasMousePressed <span class="k3">=</span> MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 47</span><span class="k2">}</span>  
<span class="number"> 48</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span><span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 51</span><span class="k2">{</span>
<span class="number"> 52</span>  draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 53</span>  
<span class="number"> 54</span>  <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>ballX,ballY,cueX,cueY,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>  
<span class="number"> 56</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</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="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>  <span class="k2">}</span>
<span class="number"> 59</span><span class="k2">}</span>
</div></div><p>

What/Where is the problem ??</p><p>Also it&#39;s ok with that wasMousePressed to be the only expression in that event ? I mean I thought  &quot;all the cue logic &quot; should be in the braces of the if function where is the ballDist Atribution.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 23:31:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Change this block of code:</p><div class="source-code snippet"><div class="inner"><pre>   mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
   my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
   <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
   D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
   <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
 
 cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
 cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
  cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

to this:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span><span class="k2">{</span>
   mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
   my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
   <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
   D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
   <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
 
 cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
 cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="k2">}</span><span class="k1">else</span><span class="k2">{</span>
  cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

hopefully this will make it perfect <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Thu, 14 Nov 2013 23:36:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When I click the line appears on good coordinates but the cue&#39;s coordinates are faar long, it keeps blinking and if I want to to move it , it&#39;s not any difference it&#39;s just blinking .I guess we advanced a little <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>I think the problem is with the distance . In the console the coordinates for the cue are bad when i keep the mouse pressed and move the mouse , there are some negative/positive numbers with some &#39;e&#39; .If you can help me with that too , i would be very grateful <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> </p><p>EDIT : The D variable when I keep the mouse button pressed is a changing values , even if the mouse is not moving (sometimes is 0 and some infinite values)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 23:48:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hard to say now, post the full code. I put the logic into a little flash program to test it and it works perfectly. See attached (If you don&#39;t have flash player open the file with your internet browser).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Thu, 14 Nov 2013 23:52:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here is the full code :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;math.h&gt;</span>
<span class="number">   9</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  10</span><span class="p">#define Screenwidth 800</span>
<span class="number">  11</span><span class="p">#define Screenheight 600</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#define PI 3.14</span>
<span class="number">  14</span><span class="k1">bool</span> wasMousePressed <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="k1">float</span> ballX<span class="k3">=</span>Screenwidth<span class="k3">/</span><span class="n">2</span> ,ballY <span class="k3">=</span> Screenheight<span class="k3">/</span><span class="n">2</span> <span class="k2">;</span> 
<span class="number">  17</span><span class="k1">int</span> i,j,k<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number">  18</span><span class="k1">float</span> bitmapw,bitmaph<span class="k2">;</span>
<span class="number">  19</span><span class="k1">float</span> mx,my<span class="k2">;</span>
<span class="number">  20</span><span class="k1">float</span> x,y,cueAngle,newAngle,cueX,cueY,D,ballDist<span class="k2">;</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">float</span> angle<span class="k2">;</span>
<span class="number">  23</span><span class="k1">int</span> v<span class="k2">[</span><span class="n">1000</span><span class="k2">]</span><span class="k2">[</span><span class="n">6</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  24</span>
<span class="number">  25</span><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><span class="k3">*</span>argv<span class="k2">)</span>
<span class="number">  26</span><span class="k2">{</span>
<span class="number">  27</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k2">;</span>
<span class="number">  28</span>   <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  29</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  30</span>      <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>NULL,NULL,NULL,<span class="s">"Could not initialize Allegro 5"</span>,NULL,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>      <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  32</span>   <span class="k2">}</span> 
<span class="number">  33</span>
<span class="number">  34</span>   <a href="http://www.allegro.cc/manual/al_set_new_display_flags"><span class="a">al_set_new_display_flags</span></a><span class="k2">(</span>ALLEGRO_WINDOWED <span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>   display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>Screenwidth, Screenheight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span>   <a href="http://www.allegro.cc/manual/al_set_window_position"><span class="a">al_set_window_position</span></a><span class="k2">(</span>display,<span class="n">200</span>,<span class="n">100</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>   <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display,<span class="s">"Test"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  39</span>      <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>display,<span class="s">"Sample Title"</span>,<span class="s">"Display Settings"</span>,<span class="s">"Display window was not created"</span>,NULL,ALLEGRO_MESSAGEBOX_QUESTION<span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>      <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  41</span>   <span class="k2">}</span>
<span class="number">  42</span> 
<span class="number">  43</span>   <a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>    <a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>   <a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>   <a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>   
<span class="number">  48</span>    
<span class="number">  49</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>     <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue,<a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>     <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue,<a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>     <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue,<a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>     <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue,<a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span>     <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  57</span>     <a href="http://www.allegro.cc/manual/ALLEGRO_MOUSE_STATE"><span class="a">ALLEGRO_MOUSE_STATE</span></a> MouseState<span class="k2">;</span>
<span class="number">  58</span>     
<span class="number">  59</span><a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  61</span>  <span class="k2">{</span>
<span class="number">  62</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span>
<span class="number">  63</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue,<span class="k3">&amp;</span>events<span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span><span class="k1">if</span><span class="k2">(</span> events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number">  66</span><span class="k2">{</span>
<span class="number">  67</span>    <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number">  68</span>      <span class="k2">{</span>
<span class="number">  69</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number">  70</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  71</span>          
<span class="number">  72</span>      <span class="k2">}</span>
<span class="number">  73</span><span class="k2">}</span>
<span class="number">  74</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number">  75</span><span class="k2">{</span>
<span class="number">  76</span>  
<span class="number">  77</span>  
<span class="number">  78</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number">  79</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number">  80</span>  
<span class="number">  81</span>  
<span class="number">  82</span><span class="k2">}</span>
<span class="number">  83</span>
<span class="number">  84</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  85</span><span class="k2">{</span>   
<span class="number">  86</span>  
<span class="number">  87</span>  <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>wasMousePressed<span class="k2">)</span>
<span class="number">  89</span>  <span class="k2">{</span>
<span class="number">  90</span>  
<span class="number">  91</span>    ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  <span class="k2">}</span>
<span class="number">  93</span>  
<span class="number">  94</span>  <span class="k1">if</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  95</span>  
<span class="number">  96</span>  <span class="k2">{</span>
<span class="number">  97</span>   mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number">  98</span>   my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number">  99</span>   <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="number"> 100</span>   D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
<span class="number"> 101</span>   <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 102</span> 
<span class="number"> 103</span>
<span class="number"> 104</span> cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 105</span> cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 106</span><span class="k2">}</span>
<span class="number"> 107</span>  <span class="k1">else</span><span class="k2">{</span>
<span class="number"> 108</span>  cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span><span class="k2">}</span>
<span class="number"> 110</span>  
<span class="number"> 111</span>
<span class="number"> 112</span> wasMousePressed <span class="k3">=</span> MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 113</span><span class="k2">}</span>
<span class="number"> 114</span>    
<span class="number"> 115</span>  
<span class="number"> 116</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 117</span>
<span class="number"> 118</span>
<span class="number"> 119</span><span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 120</span><span class="k2">{</span>
<span class="number"> 121</span>  draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 122</span>  
<span class="number"> 123</span>  <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>ballX,ballY,cueX,cueY,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>  
<span class="number"> 125</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</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="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>  <span class="k2">}</span>
<span class="number"> 128</span><span class="k2">}</span>
<span class="number"> 129</span>   <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>   <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>   <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>   <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span> 
<span class="number"> 134</span>   <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 135</span><span class="k2">}</span>
</div></div><p>


It might have some unused variables from my other tries )</p><p>EDIT : that flash is EXACTLY what I want to do !
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Thu, 14 Nov 2013 23:58:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The logic seems correct. The only problem I see is that you define newAngle at the top of your code <i>and</i> within the loop, maybe that causes it? Also, you should initialize cueAngle to 0 or something just to be safe.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Fri, 15 Nov 2013 00:12:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If I remove from the top I get an error that it wasn&#39;t declared.</p><p>In the console the cueAngle seems to be okay</p><p>The newAngle is not really ok . If I click repeatedly in the same place it takes different values like: 0 , infinite values and sometimes normal numbers.</p><p> EDIT: Can you post the flash&#39;s source ? Maybe I can find the problem by spending some time analyzing that perfect flash application <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Fri, 15 Nov 2013 00:22:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Did you remove the declaration of cueAngle before the loop? I meant the declaration of newAngle before the loop instead. Try that first. Here&#39;s the full flash code if you want, but it&#39;s mostly identical to yours.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>import flash.events.MouseEvent<span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span>var cueAngle:Number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  4</span>var mousex:Number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  5</span>var mousey:Number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  6</span>var ballDist:Number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  7</span>var ballX:Number <span class="k3">=</span> <span class="n">275</span><span class="k2">;</span>
<span class="number">  8</span>var ballY:Number <span class="k3">=</span> <span class="n">200</span><span class="k2">;</span>
<span class="number">  9</span>var isDown:Boolean <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 10</span>var wasDown:Boolean <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 11</span>
<span class="number"> 12</span>stage.addEventListener<span class="k2">(</span>MouseEvent.MOUSE_DOWN, mouse_isDown<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>stage.addEventListener<span class="k2">(</span>MouseEvent.MOUSE_UP, mouse_up<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>addEventListener<span class="k2">(</span>Event.ENTER_FRAME, gameLoop<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>function mouse_isDown<span class="k2">(</span>e:MouseEvent<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>    isDown <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>   
<span class="number"> 18</span><span class="k2">}</span>
<span class="number"> 19</span>function mouse_up<span class="k2">(</span>e:MouseEvent<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 20</span>    isDown <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>  
<span class="number"> 21</span><span class="k2">}</span>
<span class="number"> 22</span>function gameLoop<span class="k2">(</span>event:Event<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 23</span>  mousex <span class="k3">=</span> stage.mouseX<span class="k2">;</span>
<span class="number"> 24</span>  mousey <span class="k3">=</span> stage.mouseY<span class="k2">;</span>
<span class="number"> 25</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>isDown<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 26</span>    cue_mc.x <span class="k3">=</span> ballX<span class="k2">;</span>
<span class="number"> 27</span>    cue_mc.y <span class="k3">=</span> ballY<span class="k2">;</span>
<span class="number"> 28</span>    <span class="c">//flash uses degrees instead of radians for movie clip rotation</span>
<span class="number"> 29</span>    cue_mc.rotation <span class="k3">=</span> Math.atan2<span class="k2">(</span>mousey <span class="k3">-</span> ballY, mousex <span class="k3">-</span> ballX<span class="k2">)</span><span class="k3">*</span><span class="n">180</span><span class="k3">/</span>Math.PI <span class="k3">-</span> <span class="n">90</span><span class="k2">;</span>
<span class="number"> 30</span>  <span class="k2">}</span>
<span class="number"> 31</span>  <span class="k1">if</span><span class="k2">(</span>isDown <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>wasDown<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 32</span>    cueAngle <span class="k3">=</span> Math.atan2<span class="k2">(</span>mousey <span class="k3">-</span> ballY, mousex <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>    ballDist <span class="k3">=</span> Math.sqrt<span class="k2">(</span><span class="k2">(</span>mousex-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mousex-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>mousey-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mousey-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>  <span class="k2">}</span>
<span class="number"> 35</span>  <span class="k1">if</span><span class="k2">(</span>isDown<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 36</span>    var newAngle:Number <span class="k3">=</span> Math.atan2<span class="k2">(</span>mousey <span class="k3">-</span> ballY, mousex <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="number"> 37</span>    var D:Number <span class="k3">=</span> Math.sqrt<span class="k2">(</span><span class="k2">(</span>mousex-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mousex-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>mousey-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mousey-ballY<span class="k2">)</span><span class="k2">)</span> <span class="k3">*</span> Math.cos<span class="k2">(</span>newAngle<span class="k2">)</span> <span class="k3">-</span> ballDist<span class="k2">;</span>
<span class="number"> 38</span>    D <span class="k3">=</span> Math.max<span class="k2">(</span>D, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>    
<span class="number"> 40</span>    cue_mc.x <span class="k3">=</span> ballX <span class="k3">+</span> Math.cos<span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> D<span class="k2">;</span>
<span class="number"> 41</span>    cue_mc.y <span class="k3">=</span> ballY <span class="k3">+</span> Math.sin<span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> D<span class="k2">;</span>
<span class="number"> 42</span>  <span class="k2">}</span>
<span class="number"> 43</span>  wasDown <span class="k3">=</span> isDown<span class="k2">;</span>
<span class="number"> 44</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Fri, 15 Nov 2013 00:35:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So based on your source I made some changes in my program :</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span> <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> events<span class="k2">;</span>
<span class="number">  4</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue,<span class="k3">&amp;</span>events<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">if</span><span class="k2">(</span> events.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number">  7</span><span class="k2">{</span>
<span class="number">  8</span>    <span class="k1">switch</span><span class="k2">(</span>events.keyboard.keycode<span class="k2">)</span>
<span class="number">  9</span>      <span class="k2">{</span>
<span class="number"> 10</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 11</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 12</span>          
<span class="number"> 13</span>      <span class="k2">}</span>
<span class="number"> 14</span><span class="k2">}</span>
<span class="number"> 15</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 16</span><span class="k2">{</span>
<span class="number"> 17</span>  
<span class="number"> 18</span>  
<span class="number"> 19</span>  mx<span class="k3">=</span>events.mouse.x<span class="k2">;</span>  
<span class="number"> 20</span>  my<span class="k3">=</span>events.mouse.y<span class="k2">;</span>
<span class="number"> 21</span>   cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span><span class="k2">}</span>
<span class="number"> 23</span>
<span class="number"> 24</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>events.type<span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 25</span><span class="k2">{</span>   
<span class="number"> 26</span>  
<span class="number"> 27</span>  <a href="http://www.allegro.cc/manual/al_get_mouse_state"><span class="a">al_get_mouse_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>MouseState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>wasMousePressed<span class="k2">)</span>
<span class="number"> 29</span>  <span class="k2">{</span>
<span class="number"> 30</span>  
<span class="number"> 31</span>    ballDist <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>     cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span>  
<span class="number"> 35</span>  <span class="k1">if</span><span class="k2">(</span>MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 36</span>  
<span class="number"> 37</span>  <span class="k2">{</span>
<span class="number"> 38</span>   <span class="k1">float</span> newAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span> <span class="k3">-</span> cueAngle<span class="k2">;</span>
<span class="number"> 39</span>   cout<span class="k3">&lt;</span><span class="k3">&lt;</span>newAngle<span class="k3">&lt;</span><span class="k3">&lt;</span>endl<span class="k2">;</span>
<span class="number"> 40</span>   D <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_738.html" target="_blank">sqrt</a><span class="k2">(</span><span class="k2">(</span>mx-ballX<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>mx-ballX<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k3">*</span><span class="k2">(</span>my-ballY<span class="k2">)</span><span class="k2">)</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>newAngle<span class="k2">)</span><span class="k3">-</span>ballDist<span class="k2">;</span>
<span class="number"> 41</span>   <span class="k1">if</span><span class="k2">(</span>D <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> D <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 42</span> 
<span class="number"> 43</span> cueX <span class="k3">=</span> ballX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 44</span> cueY <span class="k3">=</span> ballY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span><span class="k3">*</span>D<span class="k2">;</span>
<span class="number"> 45</span>         <span class="k2">}</span>
<span class="number"> 46</span>  
<span class="number"> 47</span> wasMousePressed <span class="k3">=</span> MouseState.buttons <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 48</span><span class="k2">}</span>
<span class="number"> 49</span>
<span class="number"> 50</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 51</span>
<span class="number"> 52</span>
<span class="number"> 53</span><span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 54</span><span class="k2">{</span>
<span class="number"> 55</span>  draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 56</span>
<span class="number"> 57</span>  <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>ballX,ballY,cueX,cueY,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>  
<span class="number"> 59</span>  
<span class="number"> 60</span>
<span class="number"> 61</span>  <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 62</span>  <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</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="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>  <span class="k2">}</span>
<span class="number"> 64</span><span class="k2">}</span>
</div></div><p>


In the console the newAngle is always 0. And if I click the cue&#39;s coordinates are ok but if i go further than the ball&#39;s coordinates the distance between my mouse and the cue&#39;s coorinates gets higher.The other point it&#39;s just fixed in the center and the line gets shorter or longer and isn&#39;t on the same angle. Hope I didn&#39;t go backwards but do you see any more differences in my c source code and your flash source code ?</p><p>EDIT: Now I declare my newAngle in the loop, and the cueAngle at the top and in the loop.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Fri, 15 Nov 2013 00:53:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Maybe take</p><p><span class="source-code">cueAngle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>my <span class="k3">-</span> ballY, mx <span class="k3">-</span> ballX<span class="k2">)</span><span class="k2">;</span></span></p><p>out of the <span class="source-code">events.type<span class="k3">=</span><span class="k3">=</span>ALLEGRO_EVENT_MOUSE_AXES</span> if statement?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Fri, 15 Nov 2013 01:15:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, that fixed the angle but the ball&#39;s coordinates don&#39;t change . I mean the cue doesn&#39;t not have a constant lenght and the fixed point just stays there ,fixed, and the line gets shorter or longer.</p><p>I think this is only a problem at the screening..how I use the al_draw_line() function ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Fri, 15 Nov 2013 01:21:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>you should draw a line from cueX,cueY to a point further down the cue, for example</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>cueX,cueY, cueX <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_113.html" target="_blank">cos</a><span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> CUELENGTH, cueY <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>cueAngle<span class="k2">)</span> <span class="k3">*</span> CUELENGTH,<a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">100</span>,<span class="n">155</span><span class="k2">)</span>,<span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

set CUELENGTH to some value, for example 100
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ph03nix)</author>
		<pubDate>Fri, 15 Nov 2013 03:28:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>YES !:D It&#39;s working ! <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> Thanks very much I really appreciate your help and sorry if I took much of your time <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (chelneru)</author>
		<pubDate>Fri, 15 Nov 2013 18:42:53 +0000</pubDate>
	</item>
</rss>
