<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Mouse Click Inside Timer Function</title>
		<link>http://www.allegro.cc/forums/view/618863</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 04 Oct 2023 19:59:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi all:<br />  I was wondering if it was legal in allegro5 to have a </p><p>MOUSE DOWN inside a Timer function. The code below works</p><p>as far as the Timer, but allegro5 does NOT recognize when</p><p>I click the mouse button.
</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">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> play <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number">  2</span>              <span class="k2">{</span>
<span class="number">  3</span>                 <span class="k1">if</span><span class="k2">(</span>ev.timer.source <span class="k3">=</span><span class="k3">=</span> game_timer<span class="k2">)</span>
<span class="number">  4</span>                     <span class="k2">{</span>
<span class="number">  5</span>                       <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number">  6</span>                         <span class="k2">{</span>
<span class="number">  7</span>                            <span class="k1">if</span><span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number">  8</span>                             <span class="k2">{</span>
<span class="number">  9</span>                                  pos_x <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number"> 10</span>                                  pos_y <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 11</span>                                  angle <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_50.html" target="_blank">atan2</a><span class="k2">(</span>pos_y <span class="k3">-</span> ball_y, pos_x <span class="k3">-</span> ball_x<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>                                  <span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 14</span>                                   <span class="k2">{</span>
<span class="number"> 15</span>                                      ball_x <span class="k3">+</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>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</span>
<span class="number"> 16</span>                                      ball_y <span class="k3">+</span><span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</span>
<span class="number"> 17</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>                                      <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, <span class="n">15</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">255</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"> 19</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"> 20</span>                                      update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>                                   <span class="k2">}</span>
<span class="number"> 22</span>                               <span class="k2">}</span>
<span class="number"> 23</span>                          <span class="k2">}</span>
<span class="number"> 24</span>                     <span class="k2">}</span>
<span class="number"> 25</span>code
</div></div><p>
Sorry code got kind of chopped off, but you can see the code.</p><p>If this is NOT legal, how could it be written to work.</p><p>Thanks for your time!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Fri, 22 Sep 2023 00:08:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The EVENT object is a union of specialized events. In a timer event, the mouse event data is invalid. You need to get mouse data elsewhere. Personally I keep variables that get updates during mouse events.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 22 Sep 2023 00:40:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:</p><p>  Thank you for the info! I was afraid I had hit another</p><p>bump in the road! I will have to try something else! </p><p> Thanks again!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Fri, 22 Sep 2023 00:58:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think what you&#39;re looking for is something slightly different than what you tried. Your condition is impossible because if the event type is a TIMER event, then it can&#39;t be a MOUSE_DOWN event.</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">//vars</span>
<span class="number">  2</span><span class="k1">bool</span> mb1 <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>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>   <span class="k1">if</span> <span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>mb1 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  6</span><span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>   <span class="k1">if</span> <span class="k2">(</span>ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>mb1 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</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">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>   <span class="k1">if</span> <span class="k2">(</span>ev.timer.source <span class="k3">=</span><span class="k3">=</span> logic_timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>      <span class="k1">if</span> <span class="k2">(</span>mb1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>         <span class="c">/// Check if the mouse is held down during our logic timer</span>
<span class="number"> 14</span>      <span class="k2">}</span>
<span class="number"> 15</span>   <span class="k2">}</span>
<span class="number"> 16</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 22 Sep 2023 03:20:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Edgar:<br />  <br />   I am looking over your post. I am still having trouble</p><p>understanding how the mouse click is connected to the timer</p><p>function. I will work on the info you posted and maybe I can</p><p>see how it is connected.</p><p>Thanks for the information!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Fri, 22 Sep 2023 18:59:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In allegro 5, we no longer use callbacks with timer functions. You process the event and then handle it at your leisure.</p><p>I am in effect replicating the ALLEGRO_MOUSE_STATE by using the mouse button up and down events to get the pressed state of the button. Then inside our reaction to the timer event, we process our mouse state so it only happens when the timer has a tick on it. This makes the rate steady with your timer.</p><p><img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 22 Sep 2023 19:07:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Edgar:</p><p>  That was the answer I was looking for.</p><p>Thanks again. Have a great day
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Sat, 23 Sep 2023 20:09:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="">Scooter</a> said:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">30</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
   ball_x <span class="k3">+</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>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</span>
   ball_y <span class="k3">+</span><span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span>angle<span class="k2">)</span> <span class="k3">*</span> speed<span class="k2">;</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
   <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, <span class="n">15</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">255</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</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>
   update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>
Hey Scooter, just checking, does this code do what you want it to? Typically we only flip the display when we draw everything else on a timer event.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 23 Sep 2023 22:43:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Edgar:<br />I had a few minutes and thought I would check in and you had<br />replied. Actually you solved the problem but I have many more<br />problems on top of that. This is the first time I have tried<br />to run two different things at the same time and it is NOT<br />going well at all. It is a very simple game I was trying my<br />hand at. I got the idea off the internet. I am trying to run<br />two timers at the same time.<br />I tried to post a picture of what I was trying to do, but couldn&#39;t<br />fine a way to do it. You used to be able to upload but not<br />anymore I guess.<br />Anyway, I have a round disc with a slot in it that rotates. You<br />then bounce a ball off the side and try to get the ball into the<br />slot. That&#39;s about it. Very simple I thought.<br />I can&#39;t seem to get the ball to move correctly and the rotating<br />disc seems to disappear. Then I would have to get involved in<br />collision detection. I was going to continue trying to figure it<br />out and get back with you later,<br />Thanks for the reply.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Sun, 24 Sep 2023 00:37:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Most likely you only need one timer and two variables for ticks that increment on different rates.</p><p>As for collision detection, keep it simple as you can. A slot in a disc can be represented by a line segment on the radii of the disc. Then you test if the ball is at a certain angle to the center of the disc and see if it is close enough to be inside.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 24 Sep 2023 21:14:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar:<br /> I now have something that kinda works. I cut out the mouse and angles.<br />I now shoot the ball straight into the rotating disc. One problem still<br />remains: when I shoot the ball the rotating disc disappears. I am still<br />running two timers with update function for each timer.<br /> What I still don&#39;t understand is how to connect each timer to its update<br />function and keep everything on the screen. I have a timer that rotates<br />the disc and a timer that shoots the ball. Are these functions declared<br />outside of main and the update functions declared inside main?<br />I don&#39;t know how this is done. I forgot to tell you I am using the space<br />bar to shoot the ball.</p><p>Thanks
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Fri, 29 Sep 2023 01:23:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The event variable gives you the timer that triggered the event. Use that to determine which update is needed. </p><p>That being said, you don&#39;t need a timer for each object. You really just need one timer and update all objects when triggered.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 29 Sep 2023 03:07:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>An example of what DanielH and I are saying :</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="number">  2</span><span class="k1">double</span> FPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">double</span> SPF <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">;</span>
<span class="number">  4</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> mtimer <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>SPF<span class="k2">)</span><span class="k2">;</span><span class="c">/// Or as fast as you need for more precision</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="c">/// Vary the tick rate here for the disc and the ball</span>
<span class="number">  7</span><span class="k1">double</span> bticks <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  8</span><span class="k1">double</span> dticks <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  9</span><span class="c">/// Next we have tick rates for the individual counters</span>
<span class="number"> 10</span><span class="k1">const</span> <span class="k1">double</span> BTICKRATE <span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span><span class="c">/// Tick half as fast as master timer</span>
<span class="number"> 11</span><span class="k1">const</span> <span class="k1">double</span> DTICKRATE <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k2">;</span><span class="c">/// Tick as fast as the master timer</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.timer.source <span class="k3">=</span><span class="k3">=</span> mtimer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>   <span class="c">/// Our master timer ticked, add partial or whole ticks to the counters</span>
<span class="number"> 15</span>   bticks <span class="k3">+</span><span class="k3">=</span> BTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number"> 16</span>   dticks <span class="k3">+</span><span class="k3">=</span> DTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number"> 17</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 29 Sep 2023 21:49:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel and Edgar:</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="number">  2</span>              <span class="k1">this</span> of course <span class="k1">using</span> two timers
<span class="number">  3</span>              code works perfect by themselves, NOT TOGETHER
<span class="number">  4</span>              problem is how these should interact with only one timer
<span class="number">  5</span>              operating at two different speeds
<span class="number">  6</span>
<span class="number">  7</span>             <span class="c">// this rotates the disc</span>
<span class="number">  8</span>           <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  9</span>              <span class="k2">{</span>
<span class="number"> 10</span>                 <span class="k1">if</span><span class="k2">(</span>ev.timer.source <span class="k3">=</span><span class="k3">=</span> disc_timer <span class="k3">&amp;</span><span class="k3">&amp;</span> start <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 11</span>                     <span class="k2">{</span>
<span class="number"> 12</span>                        <span class="k1">double</span> angleX <span class="k3">=</span> <span class="k2">(</span>angle <span class="k3">*</span> PI<span class="k2">)</span> <span class="k3">/</span> <span class="n">180</span>.<span class="n">0</span><span class="k2">;</span>  <span class="c">//convert angle to radians</span>
<span class="number"> 13</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>                        <a href="http://www.allegro.cc/manual/al_draw_scaled_rotated_bitmap"><span class="a">al_draw_scaled_rotated_bitmap</span></a><span class="k2">(</span>image, <span class="n">40</span>, <span class="n">40</span>, <span class="n">637</span>, <span class="n">170</span>, <span class="n">1</span>, <span class="n">1</span>, <span class="k3">-</span>angleX, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</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"> 19</span>                        update_angle<span class="k2">(</span>angle<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>                     <span class="k2">}</span>
<span class="number"> 21</span>              <span class="k2">}</span>
<span class="number"> 22</span>
<span class="number"> 23</span>            <span class="c">// this shoots the ball</span>
<span class="number"> 24</span>           <span class="k1">if</span> <span class="k2">(</span>ev.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="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>keyState, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 27</span>                    <span class="k2">{</span>
<span class="number"> 28</span>                        ball_x <span class="k3">=</span> <span class="n">638</span><span class="k2">;</span>
<span class="number"> 29</span>                          ball_y <span class="k3">=</span> <span class="n">524</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>                          <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">45</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 32</span>                             <span class="k2">{</span>
<span class="number"> 33</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"> 34</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>                                <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, ball_dia, <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">255</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"> 38</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"> 39</span>                                update<span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>                             <span class="k2">}</span>
<span class="number"> 41</span>                       <span class="k2">}</span>
<span class="number"> 42</span>               <span class="k2">}</span>
<span class="number"> 43</span>
<span class="number"> 44</span>
<span class="number"> 45</span>             <span class="c">// these are for the updates</span>
<span class="number"> 46</span>           <span class="k1">double</span> update_angle<span class="k2">(</span><span class="k2">)</span>      <span class="c">// update rotating disc</span>
<span class="number"> 47</span>             <span class="k2">{</span>
<span class="number"> 48</span>                angle <span class="k3">+</span><span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 49</span>                <span class="k1">if</span><span class="k2">(</span>angle <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">360</span><span class="k2">)</span> angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 50</span>             <span class="k2">}</span>
<span class="number"> 51</span>
<span class="number"> 52</span>           <span class="k1">int</span> update<span class="k2">(</span><span class="k1">int</span> value<span class="k2">)</span>      <span class="c">// update shooting the ball</span>
<span class="number"> 53</span>             <span class="k2">{</span>
<span class="number"> 54</span>                ball_y <span class="k3">-</span><span class="k3">=</span> value<span class="k2">;</span>
<span class="number"> 55</span>             <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Fri, 29 Sep 2023 22:57:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just a suggestion, but input, logic and drawing should ALL be separated.</p><p>1. process input<br />2. process logic<br />3. process drawing</p><p>What are the speeds of your timers, can&#39;t you adjust to use one? Or adjust ball velocity to match the speed of one timer.</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">int</span> logic_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">void</span> main_loop<span class="k2">(</span><span class="k2">)</span>
<span class="number">  4</span><span class="k2">{</span>
<span class="number">  5</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span>
<span class="number">  6</span>    <span class="k2">{</span>
<span class="number">  7</span>        <span class="k1">if</span> <span class="k2">(</span>process_input<span class="k2">(</span><span class="k2">)</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k1">break</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span>        <span class="k1">while</span> <span class="k2">(</span>logic_counter <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 10</span>        <span class="k2">{</span>
<span class="number"> 11</span>             process_input<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>             <span class="k3">-</span><span class="k3">-</span>logic_counter<span class="k2">;</span>
<span class="number"> 13</span>        <span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</span>        process_drawing<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k2">}</span>
<span class="number"> 17</span><span class="k2">}</span>
<span class="number"> 18</span>
<span class="number"> 19</span><span class="k1">int</span> process_input<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 20</span><span class="k2">{</span>
<span class="number"> 21</span><span class="c">/// get event info</span>
<span class="number"> 22</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k3">+</span><span class="k3">+</span>logic_counter<span class="k2">;</span>
<span class="number"> 23</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEYBOARD <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span> <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 26</span><span class="k2">}</span>
<span class="number"> 27</span>
<span class="number"> 28</span>
<span class="number"> 29</span><span class="k1">void</span> process_logic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 30</span><span class="k2">{</span>
<span class="number"> 31</span><span class="k2">}</span>
<span class="number"> 32</span>
<span class="number"> 33</span><span class="k1">void</span> process_drawing<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 34</span><span class="k2">{</span>
<span class="number"> 35</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Fri, 29 Sep 2023 23:19:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have to check which timer it is in both cases:
</p><div class="source-code snippet"><div class="inner"><pre> <span class="c">// this shoots the ball</span>
<span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.timer.source <span class="k3">=</span><span class="k3">=</span> ball_timer<span class="k2">)</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (torhu)</author>
		<pubDate>Fri, 29 Sep 2023 23:27:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar:<br />  Here is what I have now. I think everything is here. I have no<br />idea how the timing flows in the program. I wanted to upload all<br />the bitmaps but never found a way to upload the zip file. I wanted<br />you to look at my file and tell me where the timing should be placed.<br />  No hurry, just when you have the time. Thanks!</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="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_primitives.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;math.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;time.h&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;stdbool.h&gt;</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#define PI 3.1415927</span>
<span class="number">  14</span>
<span class="number">  15</span><span class="k1">float</span> screen_width <span class="k3">=</span> <span class="n">1280</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">float</span> screen_height <span class="k3">=</span> <span class="n">750</span><span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span><span class="k1">float</span> image_height<span class="k2">;</span>
<span class="number">  19</span><span class="k1">float</span> image_width<span class="k2">;</span>
<span class="number">  20</span>
<span class="number">  21</span><span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  22</span>
<span class="number">  23</span><span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  24</span><span class="k1">bool</span> draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">bool</span> start <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="c">//double FPS = 60.0;</span>
<span class="number">  28</span><span class="k1">double</span> SPF <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><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">double</span> bticks <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">double</span> dticks <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  31</span><span class="k1">const</span> <span class="k1">double</span> BTICKRATE <span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span><span class="c">/// Tick half as fast as master timer</span>
<span class="number">  32</span><span class="k1">const</span> <span class="k1">double</span> DTICKRATE <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k2">;</span><span class="c">/// Tick as fast as the master timer</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="k1">float</span> ball_x <span class="k3">=</span> <span class="n">636</span><span class="k2">;</span>
<span class="number">  35</span><span class="k1">float</span> ball_y <span class="k3">=</span> <span class="n">588</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">int</span> ball_dia <span class="k3">=</span> <span class="n">6</span><span class="k2">;</span>
<span class="number">  37</span>
<span class="number">  38</span><span class="k1">float</span> new_x, new_y<span class="k2">;</span>
<span class="number">  39</span><span class="k1">int</span> pos_x, pos_y<span class="k2">;</span>
<span class="number">  40</span><span class="k1">double</span> angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span><span class="k1">double</span> angleX<span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span><span class="k1">int</span> i<span class="k2">;</span>
<span class="number">  44</span><span class="k1">int</span> speed<span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</span><span class="k1">int</span> update<span class="k2">(</span><span class="k1">int</span> value<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span><span class="k1">double</span> update_angle<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>
<span class="number">  49</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  50</span>   <span class="k2">{</span>
<span class="number">  51</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  52</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image   <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  53</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image2  <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  54</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image3  <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  55</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a>  <span class="k3">*</span>image4  <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  56</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a>   <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  57</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> NULL<span class="k2">;</span>
<span class="number">  58</span>
<span class="number">  59</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="number">  60</span>        <span class="k2">{</span>
<span class="number">  61</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't initialize allegro!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  63</span>        <span class="k2">}</span>
<span class="number">  64</span>
<span class="number">  65</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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">  66</span>        <span class="k2">{</span>
<span class="number">  67</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize the mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  69</span>        <span class="k2">}</span>
<span class="number">  70</span>
<span class="number">  71</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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">  72</span>        <span class="k2">{</span>
<span class="number">  73</span>          <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't initialize primitives addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>          <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><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="k1">if</span><span class="k2">(</span><span class="k3">!</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">  78</span>        <span class="k2">{</span>
<span class="number">  79</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize the mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  81</span>        <span class="k2">}</span>
<span class="number">  82</span>
<span class="number">  83</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>screen_width, screen_height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>
<span class="number">  85</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  86</span>        <span class="k2">{</span>
<span class="number">  87</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't create allegro display!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  89</span>        <span class="k2">}</span>
<span class="number">  90</span>
<span class="number">  91</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</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">  92</span>        <span class="k2">{</span>
<span class="number">  93</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  95</span>        <span class="k2">}</span>
<span class="number">  96</span>
<span class="number">  97</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">  98</span>
<span class="number">  99</span>      <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>      <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>
<span class="number"> 102</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> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>
<span class="number"> 104</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"> 105</span>
<span class="number"> 106</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"> 107</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="k2">;</span>
<span class="number"> 108</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"> 109</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"> 110</span>
<span class="number"> 111</span>      image <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"disc.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>   <span class="c">//   al_draw_bitmap(image, 637, 170, 0);</span>
<span class="number"> 113</span>
<span class="number"> 114</span>      image2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"menu.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>      image3 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"new_frame.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>      image4 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"ship.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>  <span class="c">//    al_draw_line(637, 50, 637, 710, al_map_rgb(255, 0, 0), 1);</span>
<span class="number"> 121</span>
<span class="number"> 122</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"> 123</span>
<span class="number"> 124</span>      <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>image<span class="k2">)</span>
<span class="number"> 125</span>         <span class="k2">{</span>
<span class="number"> 126</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr,<span class="s">"Couldn't display image!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>            <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 128</span>         <span class="k2">}</span>
<span class="number"> 129</span>
<span class="number"> 130</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> keyState<span class="k2">;</span>
<span class="number"> 131</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"> 132</span>      done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 133</span>
<span class="number"> 134</span>      <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 135</span>         <span class="k2">{</span>
<span class="number"> 136</span>         <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number"> 137</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>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>         <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>keyState<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>           <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 140</span>             <span class="k2">{</span>
<span class="number"> 141</span>                done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 142</span>             <span class="k2">}</span>
<span class="number"> 143</span>
<span class="number"> 144</span>          <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 145</span>           <span class="k2">{</span>
<span class="number"> 146</span>          <span class="c">/// Our master timer ticked, add partial or whole ticks to the counters</span>
<span class="number"> 147</span>           bticks <span class="k3">+</span><span class="k3">=</span> BTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number"> 148</span>           dticks <span class="k3">+</span><span class="k3">=</span> DTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number"> 149</span>           <span class="k2">}</span>
<span class="number"> 150</span>
<span class="number"> 151</span>
<span class="number"> 152</span>           <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> start <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 153</span>              <span class="k2">{</span>
<span class="number"> 154</span>                 <span class="k1">if</span><span class="k2">(</span>ev.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 155</span>                     <span class="k2">{</span>
<span class="number"> 156</span>                        <span class="k1">float</span> angleX <span class="k3">=</span> <span class="k2">(</span>angle <span class="k3">*</span> PI<span class="k2">)</span> <span class="k3">/</span> <span class="n">180</span>.<span class="n">0</span><span class="k2">;</span>  <span class="c">//convert angle to radians</span>
<span class="number"> 157</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>                        <a href="http://www.allegro.cc/manual/al_draw_rotated_bitmap"><span class="a">al_draw_rotated_bitmap</span></a><span class="k2">(</span>image, <span class="n">40</span>, <span class="n">40</span>, <span class="n">637</span>, <span class="n">170</span>, <span class="k3">-</span>angleX, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>                        <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</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"> 163</span>                        angle <span class="k3">+</span><span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 164</span>                        <span class="k1">if</span><span class="k2">(</span>angle <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">360</span><span class="k2">)</span> angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 165</span>                     <span class="k2">}</span>
<span class="number"> 166</span>              <span class="k2">}</span>
<span class="number"> 167</span>
<span class="number"> 168</span>           <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER <span class="k3">&amp;</span><span class="k3">&amp;</span> start <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 169</span>             <span class="k2">{</span>
<span class="number"> 170</span>                 <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>keyState, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 171</span>                    <span class="k2">{</span>
<span class="number"> 172</span>                          ball_x <span class="k3">=</span> <span class="n">638</span><span class="k2">;</span>
<span class="number"> 173</span>                          ball_y <span class="k3">=</span> <span class="n">524</span><span class="k2">;</span>
<span class="number"> 174</span>
<span class="number"> 175</span>                          <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 176</span>                             <span class="k2">{</span>
<span class="number"> 177</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"> 178</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 179</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>                                <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 181</span>                                <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, ball_dia, <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">255</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"> 182</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"> 183</span>                                update<span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 184</span>                             <span class="k2">}</span>
<span class="number"> 185</span>                     <span class="k2">}</span>
<span class="number"> 186</span>             <span class="k2">}</span>
<span class="number"> 187</span>
<span class="number"> 188</span>           <span class="k1">if</span><span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<span class="k2">)</span>
<span class="number"> 189</span>              <span class="k2">{</span>
<span class="number"> 190</span>                 <span class="k1">if</span><span class="k2">(</span> ev.mouse.button <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 191</span>                    <span class="k2">{</span>
<span class="number"> 192</span>                         pos_x <span class="k3">=</span> ev.mouse.x<span class="k2">;</span>
<span class="number"> 193</span>                         pos_y <span class="k3">=</span> ev.mouse.y<span class="k2">;</span>
<span class="number"> 194</span>
<span class="number"> 195</span>                       <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">727</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">765</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">727</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">750</span><span class="k2">)</span><span class="k2">)</span>  <span class="c">// EXIT</span>
<span class="number"> 196</span>                            <span class="k2">{</span>
<span class="number"> 197</span>                                start <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 198</span>                                draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 199</span>                                done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 200</span>                            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 201</span>                            <span class="k2">}</span>
<span class="number"> 202</span>
<span class="number"> 203</span>                        <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span>pos_x <span class="k3">&gt;</span> <span class="n">510</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_x <span class="k3">&lt;</span> <span class="n">565</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>pos_y <span class="k3">&gt;</span> <span class="n">727</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> pos_y <span class="k3">&lt;</span> <span class="n">750</span><span class="k2">)</span><span class="k2">)</span>  <span class="c">// START</span>
<span class="number"> 204</span>                            <span class="k2">{</span>
<span class="number"> 205</span>                                start <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 206</span>                                draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 207</span>                            <span class="k2">}</span>
<span class="number"> 208</span>
<span class="number"> 209</span>                    <span class="k2">}</span>
<span class="number"> 210</span>               <span class="k2">}</span>
<span class="number"> 211</span>
<span class="number"> 212</span>         <span class="k2">}</span>
<span class="number"> 213</span>
<span class="number"> 214</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"> 215</span>      <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 216</span>      <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 217</span>      <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>image3<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 218</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"> 219</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"> 220</span>
<span class="number"> 221</span>      <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 222</span>   <span class="k2">}</span>
<span class="number"> 223</span>
<span class="number"> 224</span><span class="k1">double</span> update_angle<span class="k2">(</span><span class="k2">)</span>      <span class="c">// update rotating disc</span>
<span class="number"> 225</span>   <span class="k2">{</span>
<span class="number"> 226</span>      angle <span class="k3">+</span><span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 227</span>      <span class="k1">if</span><span class="k2">(</span>angle <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">360</span><span class="k2">)</span> angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 228</span>   <span class="k2">}</span>
<span class="number"> 229</span>
<span class="number"> 230</span><span class="k1">int</span> update<span class="k2">(</span><span class="k1">int</span> value<span class="k2">)</span>      <span class="c">// update shooting the ball</span>
<span class="number"> 231</span>   <span class="k2">{</span>
<span class="number"> 232</span>      ball_y <span class="k3">-</span><span class="k3">=</span> value<span class="k2">;</span>
<span class="number"> 233</span>   <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Tue, 03 Oct 2023 23:10:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh, where to start?</p><p>You only have one timer now. You won&#39;t need to check if the timer source matches anymore.</p><p>You can also consolidate it all under one allegro_event_timer if statement
</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">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="c">/// Our master timer ticked, add partial or whole ticks to the counters</span>
<span class="number">  4</span>    bticks <span class="k3">+</span><span class="k3">=</span> BTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number">  5</span>    dticks <span class="k3">+</span><span class="k3">=</span> DTICKRATE<span class="k3">*</span>SPF<span class="k2">;</span>
<span class="number">  6</span>    
<span class="number">  7</span>    <span class="k1">if</span><span class="k2">(</span>start <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number">  8</span>    <span class="k2">{</span>
<span class="number">  9</span>            <span class="k1">float</span> angleX <span class="k3">=</span> <span class="k2">(</span>angle <span class="k3">*</span> PI<span class="k2">)</span> <span class="k3">/</span> <span class="n">180</span>.<span class="n">0</span><span class="k2">;</span>  <span class="c">//convert angle to radians</span>
<span class="number"> 10</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">20</span>, <span class="n">20</span>, <span class="n">20</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>            <a href="http://www.allegro.cc/manual/al_draw_rotated_bitmap"><span class="a">al_draw_rotated_bitmap</span></a><span class="k2">(</span>image, <span class="n">40</span>, <span class="n">40</span>, <span class="n">637</span>, <span class="n">170</span>, <span class="k3">-</span>angleX, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</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"> 16</span>            angle <span class="k3">+</span><span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 17</span>            <span class="k1">if</span><span class="k2">(</span>angle <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">360</span><span class="k2">)</span> angle <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span>            <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>keyState, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 20</span>            <span class="k2">{</span>
<span class="number"> 21</span>                ball_x <span class="k3">=</span> <span class="n">638</span><span class="k2">;</span>
<span class="number"> 22</span>                ball_y <span class="k3">=</span> <span class="n">524</span><span class="k2">;</span>
<span class="number"> 23</span>
<span class="number"> 24</span>                <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 25</span>                <span class="k2">{</span>
<span class="number"> 26</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"> 27</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 29</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>                    <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, ball_dia, <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">255</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"> 31</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"> 32</span>                    update<span class="k2">(</span><span class="n">10</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="k2">}</span>
<span class="number"> 35</span>      <span class="k2">}</span>
<span class="number"> 36</span><span class="k2">}</span>
<span class="number"> 37</span><span class="k2">}</span>
</div></div><p>


Why are you doing this 60 times? 
</p><div class="source-code snippet"><div class="inner"><pre>                <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
                <span class="k2">{</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>
                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, <span class="n">500</span>, <span class="n">727</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image3, <span class="n">383</span>, <span class="n">20</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image4, <span class="n">582</span>, <span class="n">495</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
                    <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>ball_x, ball_y, ball_dia, <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">255</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</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>
                    update<span class="k2">(</span><span class="n">10</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 (DanielH)</author>
		<pubDate>Wed, 04 Oct 2023 04:13:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think he wants a short animation of the ball going into the disc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 04 Oct 2023 17:55:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Daniel:<br />  I tried what you posted and I still have the same problem.<br />The disc disappears while the ball is moving. I am not sure,<br />but I think this is something I have already tried before.<br />  Any yes, Edgar is right. This gave me more control of the ball,<br />mainly to be sure it stopped moving.<br />  Please take another look to see what is wrong.</p><p>Thanks guys!!!!!!!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Scooter)</author>
		<pubDate>Wed, 04 Oct 2023 18:50:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You can do animation this way, but be aware it is blocking your program from getting input. You need to draw the disc in the same section of code you draw your ball. That&#39;s why it disappears. Track the state of the &#39;start&#39; variable. bticks and dticks do no good if you don&#39;t use them. You need variables to track the accumulated time. Then check if one of the variables has ticked or not.</p><p>What you should try to achieve is freeing your logic from drawing. Always draw the whole screen, based on what is visible. And use your logic to determine what is where and when.</p><p>Hope this helps.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 04 Oct 2023 19:59:10 +0000</pubDate>
	</item>
</rss>
