<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Lag in the main loop </title>
		<link>http://www.allegro.cc/forums/view/617583</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 17 Oct 2018 14:49:28 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello guys, i&#39;m facing a problem with my program: <br />I&#39;ve only write a code for make a circle walk 10 pixels on the screem 60 times per second, but the circle sometimes &quot;jumps&quot;, like if it have walked 50 pixels or more instead of 10, I&#39;m going to post my main loop, hope you can help me finding where is the problem</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>finish<span class="k2">)</span>
<span class="number">  2</span>    <span class="k2">{</span>
<span class="number">  3</span>        <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eventQueue<span class="k2">)</span><span class="k2">)</span>
<span class="number">  4</span>        <span class="k2">{</span>
<span class="number">  5</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>eventQueue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  8</span>                Keys::keyPressed<span class="k2">(</span>keys, event.keyboard.keycode<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 11</span>                Keys::keyReleased<span class="k2">(</span>keys, event.keyboard.keycode<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 14</span>                finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 17</span>            <span class="k2">{</span>
<span class="number"> 18</span>                gamePlay.update<span class="k2">(</span>keys, finish<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>                
<span class="number"> 20</span>                draw <span class="k3">=</span> <span class="k1">true</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="k1">if</span><span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 24</span>        <span class="k2">{</span>
<span class="number"> 25</span>            draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 26</span>            gamePlay.drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>        <span class="k2">}</span>
<span class="number"> 28</span><span class="k2">}</span>
<span class="number"> 29</span>
<span class="number"> 30</span>
<span class="number"> 31</span>
<span class="number"> 32</span><span class="k1">void</span> GamePlay::update<span class="k2">(</span><span class="k1">bool</span><span class="k3">*</span> keys, <span class="k1">bool</span><span class="k3">&amp;</span> finish<span class="k2">)</span>
<span class="number"> 33</span><span class="k2">{</span>
<span class="number"> 34</span>    <span class="k1">if</span><span class="k2">(</span>posX <span class="k3">&gt;</span> <span class="n">1000</span><span class="k2">)</span>
<span class="number"> 35</span>        test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 36</span>    <span class="k1">if</span> <span class="k2">(</span>posX <span class="k3">&lt;</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 37</span>        test <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 38</span>    <span class="k1">if</span><span class="k2">(</span>test<span class="k2">)</span>
<span class="number"> 39</span>        posX<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 40</span>    <span class="k1">else</span>
<span class="number"> 41</span>        posX-<span class="k3">=</span><span class="n">10</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="number"> 46</span><span class="k1">void</span> GamePlay::drawGame<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 47</span><span class="k2">{</span>
<span class="number"> 48</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>posX,posY,<span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</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"> 50</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="c">/**isso afeta o backbuffer**/</span>
<span class="number"> 51</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Sun, 14 Oct 2018 07:50:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Remove the ! before al_is_event_queue_empty(). You want to call al_wait_for_event when the queue is empty and wait until there is an event. The way you have it you would only wait for an event if there already is one, so never... which means your loop just runs through millions of times heating up a CPU core and making everything unstable and jumpy.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Sun, 14 Oct 2018 10:00:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi Elias, thanks for your reply, I tried to change the main loop but unfortunely my drawings are still jumpy.</p><p>I tried a lot of new combinations, but none of them seems to solve the problem</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>finish<span class="k2">)</span>
<span class="number">  2</span>    <span class="k2">{</span>
<span class="number">  3</span>
<span class="number">  4</span>        <span class="k1">while</span><span class="k2">(</span><span class="n">1</span><span class="k2">)</span>
<span class="number">  5</span>        <span class="k2">{</span>
<span class="number">  6</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>eventQueue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number">  9</span>                Keys::keyPressed<span class="k2">(</span>keys, event.keyboard.keycode<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 12</span>                Keys::keyReleased<span class="k2">(</span>keys, event.keyboard.keycode<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>
<span class="number"> 14</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 15</span>                finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 16</span>
<span class="number"> 17</span>            <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 18</span>                gamePlay.update<span class="k2">(</span>keys, finish<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>            <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eventQueue<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 21</span>                gamePlay.drawGame<span class="k2">(</span><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="k2">}</span>
</div></div><p>



I also tried a logic with two timers, one for the logic and other for drawing, but it have not worked too.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Sun, 14 Oct 2018 17:32:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><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">//-------------------------------Main loop--------------------------------</span>
<span class="number">  2</span><span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  <span class="k1">do</span>
<span class="number">  5</span>  <span class="k2">{</span>
<span class="number">  6</span>  <span class="c">//------------------------Getting events--------------------------</span>
<span class="number">  7</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number">  8</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>eventQueue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span>    <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<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="number"> 14</span>
<span class="number"> 15</span>    <span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 16</span>    <span class="k2">{</span>
<span class="number"> 17</span>      redraw <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>    
<span class="number"> 20</span>        <span class="c">//-----------------------Getting events END-----------------------</span>
<span class="number"> 21</span>  <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eventQueue<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>
<span class="number"> 23</span>
<span class="number"> 24</span>
<span class="number"> 25</span>  <span class="c">//-------------------------Redrawing elements-------------------------</span>
<span class="number"> 26</span>    <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span>
<span class="number"> 27</span>    <span class="k2">{</span>
<span class="number"> 28</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"> 29</span>      redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 30</span>    <span class="k2">}</span>
<span class="number"> 31</span>  <span class="c">//-----------------------Redrawing elements END-----------------------</span>
<span class="number"> 32</span>  <span class="k2">}</span>
<span class="number"> 33</span><span class="c">//-----------------------------Main loop END------------------------------</span>
</div></div><p>

I always use this as my main loop, the only thing that I notice is that your code does not have the &quot;<span class="source-code"><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span></span>&quot; before &quot;<span class="source-code"><a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>eventQueue, <span class="k3">&amp;</span>event<span class="k2">)</span><span class="k2">;</span></span>&quot;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trictonicmp)</author>
		<pubDate>Mon, 15 Oct 2018 00:07:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>trictonicmp&#39;s loop looks right to me. The key points are:</p><ul><li><p>call al_wait_for_event when there&#39;s nothing else to do 
</p></li><li><p>only redraw when there was a timer event 
</p></li><li><p>only redraw when there are no events left in the queue
</p></li></ul></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elias)</author>
		<pubDate>Mon, 15 Oct 2018 21:56:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Good thread.  I&#39;m going to try upgrading Ramen&#39;s loop using the advice in here.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (roger levy)</author>
		<pubDate>Mon, 15 Oct 2018 23:52:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Fixing the formatting and making it more condensed :
</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">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  2</span>   <span class="k1">bool</span> quit <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">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>      <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>         Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>         redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  8</span>      <span class="k2">}</span>
<span class="number">  9</span>      <span class="k1">do</span> <span class="k2">{</span>
<span class="number"> 10</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"> 11</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>q , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</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"> 13</span>            Update<span class="k2">(</span>dt<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 15</span>         <span class="k2">}</span>
<span class="number"> 16</span>         <span class="c">/// Handle events here</span>
<span class="number"> 17</span>      <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>q<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>   <span class="k2">}</span>
</div></div><p>

This is pretty much the standard loop, and has been on the wiki for a while. It&#39;s just your basic event loop.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 15 Oct 2018 23:57:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Guys, thanks for all the answers, but i&#39;m beginning to get worried about it.. I have removed all the miscellaneous code and I&#39;m going to put here what i&#39;m compiling, it is only three classes, maybe this way it will be easier to find my problem, if there is one:</p><p>it&#39;s really strange, it only prints a red ball moving from one side to another, but it still give some &#39;jumps&#39; at every two seconds approximately</p><p>edit: if you guys want, you can run this program only with this code below, i don&#39;t discard the possibility of the problem be my installation, and not in my code, who knows..</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">//----------the main class----------</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="p">#include "GameManager.h"</span>
<span class="number">   4</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">   5</span><span class="k2">{</span>
<span class="number">   6</span>    GameManager US<span class="k2">;</span>
<span class="number">   7</span>    <span class="k1">return</span> <span class="n">0</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="c">//----------GameManager header----------</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="p">#ifndef GAMEMANAGER_H</span>
<span class="number">  13</span><span class="p">#define GAMEMANAGER_H</span>
<span class="number">  14</span><span class="p">#include "GamePlay.h"</span>
<span class="number">  15</span>
<span class="number">  16</span><span class="k1">class</span> GameManager
<span class="number">  17</span><span class="k2">{</span>
<span class="number">  18</span>    public:
<span class="number">  19</span>        GameManager<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>        <span class="k1">void</span> manage<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>
<span class="number">  22</span>    private:
<span class="number">  23</span>        GamePlay gamePlay<span class="k2">;</span>
<span class="number">  24</span>
<span class="number">  25</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a><span class="k2">;</span>
<span class="number">  26</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> eventQueue<span class="k2">;</span>
<span class="number">  27</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">  28</span>
<span class="number">  29</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span><span class="p">#endif // GAMEMANAGER_H</span>
<span class="number">  32</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="c">//----------GameManager source----------</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="p">#include "GameManager.h"</span>
<span class="number">  37</span>
<span class="number">  38</span>
<span class="number">  39</span>GameManager::GameManager<span class="k2">(</span><span class="k2">)</span>
<span class="number">  40</span><span class="k2">{</span>
<span class="number">  41</span>
<span class="number">  42</span>    draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  43</span>    finish <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  44</span>    <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  45</span>    eventQueue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  46</span>    timer <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</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">  49</span>        finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  50</span>
<span class="number">  51</span>    <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <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><span class="n">1200</span>,<span class="n">800</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>
<span class="number">  53</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <span class="k3">|</span><span class="k3">|</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">  54</span>        finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</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">  57</span>
<span class="number">  58</span>    eventQueue <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">  59</span>
<span class="number">  60</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>eventQueue, <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">  61</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>eventQueue, <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><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</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">  64</span>
<span class="number">  65</span>    manage<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>
<span class="number">  68</span>
<span class="number">  69</span>
<span class="number">  70</span><span class="k1">void</span> GameManager::manage<span class="k2">(</span><span class="k2">)</span>
<span class="number">  71</span><span class="k2">{</span>
<span class="number">  72</span>    <span class="k1">bool</span> draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  73</span>    <span class="k1">bool</span> finish <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>finish<span class="k2">)</span>
<span class="number">  76</span>    <span class="k2">{</span>
<span class="number">  77</span>        <span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number">  78</span>        <span class="k2">{</span>
<span class="number">  79</span>            gamePlay.drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>            draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  81</span>        <span class="k2">}</span>
<span class="number">  82</span>        <span class="k1">do</span>
<span class="number">  83</span>        <span class="k2">{</span>
<span class="number">  84</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">  85</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>eventQueue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</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">  87</span>            <span class="k2">{</span>
<span class="number">  88</span>                gamePlay.update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>                draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  90</span>            <span class="k2">}</span>
<span class="number">  91</span>
<span class="number">  92</span>            <span class="c">// i have also tried to put the gamePlay.updat() here</span>
<span class="number">  93</span>        <span class="k2">}</span>
<span class="number">  94</span>        <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eventQueue<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>    <span class="k2">}</span>
<span class="number">  96</span><span class="k2">}</span>
<span class="number">  97</span>
<span class="number">  98</span>
<span class="number">  99</span>
<span class="number"> 100</span><span class="c">//----------GamePlay header----------</span>
<span class="number"> 101</span>
<span class="number"> 102</span><span class="p">#ifndef GAMEPLAY_H</span>
<span class="number"> 103</span><span class="p">#define GAMEPLAY_H</span>
<span class="number"> 104</span>
<span class="number"> 105</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number"> 106</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number"> 107</span><span class="k1">class</span> GamePlay
<span class="number"> 108</span><span class="k2">{</span>
<span class="number"> 109</span>    public:
<span class="number"> 110</span>        GamePlay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>        <span class="k1">void</span> update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>        <span class="k1">void</span> drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>
<span class="number"> 114</span>    private:
<span class="number"> 115</span>        <span class="k1">int</span> posX<span class="k2">;</span>
<span class="number"> 116</span>        <span class="k1">int</span> posY<span class="k2">;</span>
<span class="number"> 117</span>        <span class="k1">bool</span> test<span class="k2">;</span>
<span class="number"> 118</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 119</span>
<span class="number"> 120</span><span class="p">#endif // GAMEPLAY_H</span>
<span class="number"> 121</span>
<span class="number"> 122</span>
<span class="number"> 123</span><span class="c">//----------GamePlay source----------</span>
<span class="number"> 124</span>
<span class="number"> 125</span><span class="p">#include "GamePlay.h"</span>
<span class="number"> 126</span>
<span class="number"> 127</span>GamePlay::GamePlay<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 128</span><span class="k2">{</span>
<span class="number"> 129</span>    posX <span class="k3">=</span> <span class="n">500</span><span class="k2">;</span>
<span class="number"> 130</span>    posY <span class="k3">=</span> <span class="n">500</span><span class="k2">;</span>
<span class="number"> 131</span>    test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 132</span><span class="k2">}</span>
<span class="number"> 133</span><span class="k1">void</span> GamePlay::update<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 134</span><span class="k2">{</span>
<span class="number"> 135</span>    <span class="k1">if</span><span class="k2">(</span>posX <span class="k3">&gt;</span> <span class="n">1000</span><span class="k2">)</span>
<span class="number"> 136</span>        test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 137</span>    <span class="k1">if</span> <span class="k2">(</span>posX <span class="k3">&lt;</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 138</span>        test <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 139</span>    <span class="k1">if</span><span class="k2">(</span>test<span class="k2">)</span>
<span class="number"> 140</span>        posX<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 141</span>    <span class="k1">else</span>
<span class="number"> 142</span>        posX-<span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 143</span><span class="k2">}</span>
<span class="number"> 144</span><span class="k1">void</span> GamePlay::drawGame<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 145</span><span class="k2">{</span>
<span class="number"> 146</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>posX,posY,<span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</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"> 148</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"> 149</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Tue, 16 Oct 2018 06:11:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you&#39;re going to provide code, provide something that compiles please.</p><p>Here&#39;s your code fixed up and compiling :
</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">//----------the main class----------</span>
<span class="number">   2</span>
<span class="number">   3</span>
<span class="number">   4</span><span class="c">//----------GamePlay header----------</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="p">#ifndef GAMEPLAY_H</span>
<span class="number">   7</span><span class="p">#define GAMEPLAY_H</span>
<span class="number">   8</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  11</span><span class="k1">class</span> GamePlay
<span class="number">  12</span><span class="k2">{</span>
<span class="number">  13</span>    public:
<span class="number">  14</span>        GamePlay<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>        <span class="k1">void</span> update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>        <span class="k1">void</span> drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>    private:
<span class="number">  19</span>        <span class="k1">int</span> posX<span class="k2">;</span>
<span class="number">  20</span>        <span class="k1">int</span> posY<span class="k2">;</span>
<span class="number">  21</span>        <span class="k1">bool</span> test<span class="k2">;</span>
<span class="number">  22</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="p">#endif // GAMEPLAY_H</span>
<span class="number">  25</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="c">//#include "GameManager.h"</span>
<span class="number">  28</span>
<span class="number">  29</span><span class="c">//----------GameManager header----------</span>
<span class="number">  30</span>
<span class="number">  31</span><span class="p">#ifndef GAMEMANAGER_H</span>
<span class="number">  32</span><span class="p">#define GAMEMANAGER_H</span>
<span class="number">  33</span><span class="c">//#include "GamePlay.h"</span>
<span class="number">  34</span>
<span class="number">  35</span><span class="k1">class</span> GameManager
<span class="number">  36</span><span class="k2">{</span>
<span class="number">  37</span>    public:
<span class="number">  38</span>        GameManager<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>        <span class="k1">void</span> manage<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span>    private:
<span class="number">  42</span>        GamePlay gamePlay<span class="k2">;</span>
<span class="number">  43</span>
<span class="number">  44</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span> <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a><span class="k2">;</span>
<span class="number">  45</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a><span class="k3">*</span> eventQueue<span class="k2">;</span>
<span class="number">  46</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">  47</span>
<span class="number">  48</span>        <span class="k1">bool</span> draw<span class="k2">;</span>
<span class="number">  49</span>        <span class="k1">bool</span> finish<span class="k2">;</span>
<span class="number">  50</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  51</span>
<span class="number">  52</span><span class="p">#endif // GAMEMANAGER_H</span>
<span class="number">  53</span>
<span class="number">  54</span>
<span class="number">  55</span><span class="c">//----------GameManager source----------</span>
<span class="number">  56</span>
<span class="number">  57</span><span class="c">//#include "GameManager.h"</span>
<span class="number">  58</span>
<span class="number">  59</span>
<span class="number">  60</span>GameManager::GameManager<span class="k2">(</span><span class="k2">)</span>
<span class="number">  61</span><span class="k2">{</span>
<span class="number">  62</span>
<span class="number">  63</span>    draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  64</span>    finish <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  65</span>    <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  66</span>    eventQueue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  67</span>    timer <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  68</span>
<span class="number">  69</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">  70</span>        finish <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="k1">if</span> <span class="k2">(</span><span class="k3">!</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="k2">{</span>finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  73</span>        
<span class="number">  74</span>    <a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <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><span class="n">1200</span>,<span class="n">800</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>
<span class="number">  76</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a> <span class="k3">|</span><span class="k3">|</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">  77</span>        finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  78</span>
<span class="number">  79</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">  80</span>
<span class="number">  81</span>    eventQueue <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">  82</span>
<span class="number">  83</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>eventQueue, <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">  84</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>eventQueue, <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><a href="http://www.allegro.cc/manual/screen"><span class="a">screen</span></a><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</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>eventQueue, <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">  86</span>
<span class="number">  87</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">  88</span>
<span class="number">  89</span>    manage<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span><span class="k2">}</span>
<span class="number">  91</span>
<span class="number">  92</span>
<span class="number">  93</span>
<span class="number">  94</span><span class="k1">void</span> GameManager::manage<span class="k2">(</span><span class="k2">)</span>
<span class="number">  95</span><span class="k2">{</span>
<span class="number">  96</span>
<span class="number">  97</span>    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>finish<span class="k2">)</span>
<span class="number">  98</span>    <span class="k2">{</span>
<span class="number">  99</span>        <span class="k1">if</span> <span class="k2">(</span>draw<span class="k2">)</span>
<span class="number"> 100</span>        <span class="k2">{</span>
<span class="number"> 101</span>            gamePlay.drawGame<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>            draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 103</span>        <span class="k2">}</span>
<span class="number"> 104</span>        <span class="k1">do</span>
<span class="number"> 105</span>        <span class="k2">{</span>
<span class="number"> 106</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"> 107</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>eventQueue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</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"> 109</span>            <span class="k2">{</span>
<span class="number"> 110</span>                gamePlay.update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>                draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 112</span>            <span class="k2">}</span>
<span class="number"> 113</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_DISPLAY_CLOSE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 114</span>               finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 115</span>            <span class="k2">}</span>
<span class="number"> 116</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_KEY_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 117</span>               finish <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 118</span>            <span class="k2">}</span>
<span class="number"> 119</span>
<span class="number"> 120</span>            <span class="c">// i have also tried to put the gamePlay.updat() here</span>
<span class="number"> 121</span>        <span class="k2">}</span>
<span class="number"> 122</span>        <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>eventQueue<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>    <span class="k2">}</span>
<span class="number"> 124</span><span class="k2">}</span>
<span class="number"> 125</span>
<span class="number"> 126</span>
<span class="number"> 127</span><span class="c">//----------GamePlay source----------</span>
<span class="number"> 128</span>
<span class="number"> 129</span><span class="c">//#include "GamePlay.h"</span>
<span class="number"> 130</span>
<span class="number"> 131</span>GamePlay::GamePlay<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 132</span><span class="k2">{</span>
<span class="number"> 133</span>    posX <span class="k3">=</span> <span class="n">500</span><span class="k2">;</span>
<span class="number"> 134</span>    posY <span class="k3">=</span> <span class="n">500</span><span class="k2">;</span>
<span class="number"> 135</span>    test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 136</span><span class="k2">}</span>
<span class="number"> 137</span><span class="k1">void</span> GamePlay::update<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 138</span><span class="k2">{</span>
<span class="number"> 139</span>    <span class="k1">if</span><span class="k2">(</span>posX <span class="k3">&gt;</span> <span class="n">1000</span><span class="k2">)</span>
<span class="number"> 140</span>        test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 141</span>    <span class="k1">if</span> <span class="k2">(</span>posX <span class="k3">&lt;</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 142</span>        test <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 143</span>    <span class="k1">if</span><span class="k2">(</span>test<span class="k2">)</span>
<span class="number"> 144</span>        posX<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 145</span>    <span class="k1">else</span>
<span class="number"> 146</span>        posX-<span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 147</span><span class="k2">}</span>
<span class="number"> 148</span><span class="k1">void</span> GamePlay::drawGame<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 149</span><span class="k2">{</span>
<span class="number"> 150</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>posX,posY,<span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</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"> 152</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"> 153</span><span class="k2">}</span>
<span class="number"> 154</span>
<span class="number"> 155</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 156</span><span class="k2">{</span>
<span class="number"> 157</span>    GameManager US<span class="k2">;</span>
<span class="number"> 158</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 159</span><span class="k2">}</span>
</div></div><p>

The resulting exe works fine. The red ball goes back and forth smoothly. There was one glitch on the first run, where it skipped a little, but I assume that was a vsync timing issue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 16 Oct 2018 06:48:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m sorry Edgar, I have removed a lot of classes, I did not see the remaining variables.</p><p>So, I don&#39;t think that the problem is my computer, maybe I have messed up when installing codeblocks and allegro, but I&#39;m less worried now that it worked fine for you.</p><p>do you guys know a recognized tutorial for installation of allegro with any IDE? for windows or linux?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Tue, 16 Oct 2018 07:25:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I wouldn&#39;t consider it solved yet.</p><p>The code listed works fine when graphics takes less than 1.0/FPS, but when it takes longer than that, you will have frame skipping. The solution is to discard all timer events after the first in each iteration.</p><p>This will skip all extra timer events in case they pile up, and it will slow down gracefully.
</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">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  2</span>   <span class="k1">bool</span> quit <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">int</span> ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>      <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>         Draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>         redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  9</span>         ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k2">}</span>
<span class="number"> 11</span>      <span class="k1">do</span> <span class="k2">{</span>
<span class="number"> 12</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"> 13</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>q , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</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"> 15</span>            <span class="k3">+</span><span class="k3">+</span>ticks<span class="k2">;</span>
<span class="number"> 16</span>            <span class="k1">if</span> <span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>               Update<span class="k2">(</span>dt<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>            <span class="k2">}</span>
<span class="number"> 19</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 20</span>         <span class="k2">}</span>
<span class="number"> 21</span>         <span class="c">/// Handle events here</span>
<span class="number"> 22</span>      <span class="k2">}</span> <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_is_event_queue_empty"><span class="a">al_is_event_queue_empty</span></a><span class="k2">(</span>q<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>   <span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 16 Oct 2018 18:52:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, I&#39;ve tried to put this new variable to avoid updating twice before drawing, but my problem persists, unfortunnely..</p><p>I have also tried to leave only the al_flip_display() on my Draw function:</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">void</span> GamePlay::update<span class="k2">(</span><span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>    <span class="k1">if</span><span class="k2">(</span>posX <span class="k3">&gt;</span> <span class="n">1000</span><span class="k2">)</span>
<span class="number">  5</span>        test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  6</span>    <span class="k1">if</span> <span class="k2">(</span>posX <span class="k3">&lt;</span> <span class="n">50</span><span class="k2">)</span>
<span class="number">  7</span>        test <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">if</span><span class="k2">(</span>test<span class="k2">)</span>
<span class="number">  9</span>        posX<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k1">else</span>
<span class="number"> 11</span>        posX-<span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 12</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">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"> 14</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>posX,posY,<span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span><span class="k2">}</span>
<span class="number"> 16</span><span class="k1">void</span> GamePlay::drawGame<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 17</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>
<span class="number"> 20</span><span class="k2">}</span>
<span class="number"> 21</span>
<span class="number"> 22</span>
<span class="number"> 23</span><span class="c">//instead of </span>
<span class="number"> 24</span>
<span class="number"> 25</span>
<span class="number"> 26</span>
<span class="number"> 27</span><span class="k1">void</span> GamePlay::update<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 28</span><span class="k2">{</span>
<span class="number"> 29</span>    <span class="k1">if</span><span class="k2">(</span>posX <span class="k3">&gt;</span> <span class="n">1000</span><span class="k2">)</span>
<span class="number"> 30</span>        test <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 31</span>    <span class="k1">if</span> <span class="k2">(</span>posX <span class="k3">&lt;</span> <span class="n">50</span><span class="k2">)</span>
<span class="number"> 32</span>        test <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 33</span>    <span class="k1">if</span><span class="k2">(</span>test<span class="k2">)</span>
<span class="number"> 34</span>        posX<span class="k3">+</span><span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 35</span>    <span class="k1">else</span>
<span class="number"> 36</span>        posX-<span class="k3">=</span><span class="n">10</span><span class="k2">;</span>
<span class="number"> 37</span><span class="k2">}</span>
<span class="number"> 38</span><span class="k1">void</span> GamePlay::drawGame<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 39</span><span class="k2">{</span>
<span class="number"> 40</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>posX,posY,<span class="n">50</span>,<a href="http://www.allegro.cc/manual/al_map_rgba"><span class="a">al_map_rgba</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span>,<span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</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"> 42</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"> 43</span><span class="k2">}</span>
</div></div><p>


but it did not help. Damn, I was pretty sure that the ticks variable would solve the issue hahahaha</p><p>edit: I&#39;ve checked my screen refresh rate and it&#39;s on 60Hz
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Wed, 17 Oct 2018 05:25:25 +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/617583/1039610#target">moisesdias</a> said:</div><div class="quote"><p>
do you guys know a recognized tutorial for installation of allegro with any IDE? for windows or linux? 
</p></div></div><p>
MSVS is pretty easy. All you do is use Nugat to install Allegro. MinGW and CodeBlocks is not super hard either, but takes some work. Linux can be as easy as &#39;sudo apt-get install liballegro5-dev&#39; if you&#39;re on Ubuntu.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/617583/1039629#target">moisesdias</a> said:</div><div class="quote"><p>
 but it did not help. Damn, I was pretty sure that the ticks variable would solve the issue hahahaha</p><p>edit: I&#39;ve checked my screen refresh rate and it&#39;s on 60Hz 
</p></div></div><p>
It literally has to move 10 pixels at a time, there&#39;s something else going on.</p><p>Did you compile and run the code I gave back to you?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 17 Oct 2018 08:08:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Guys, I&#39;ve found the problem, it was not the code, but an old VGA monitor that I was using with my notebook, I don&#39;t know exactly why, but when I disconnect him the circle moves smoothly on the screen</p><p>Anyway, thanks Edgar and thanks for all who have replied!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (moisesdias)</author>
		<pubDate>Wed, 17 Oct 2018 14:49:28 +0000</pubDate>
	</item>
</rss>
