<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Keyboard</title>
		<link>http://www.allegro.cc/forums/view/585970</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 19 Jun 2006 12:30:58 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi,<br />I have a little problem with allegro with the keyboard.<br />I would like when I press a key on continue, that a circle move uniformly. For the moment my circle moves first one case, after it stops, and after it moves uniformly.</p><p>This is a short passage of how I manage the keyboard.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> touche<span class="k2">;</span>
<span class="k1">while</span> <span class="k2">(</span>valid<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
  <span class="k2">{</span>
    touche<span class="k3">=</span><a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k1">if</span><span class="k2">(</span>touche&gt;&gt;8 <span class="k3">=</span><span class="k3">=</span> KEY_UP<span class="k2">)</span>
    <span class="k2">{</span>....
                <span class="k2">}</span>
        <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vinze80)</author>
		<pubDate>Sun, 18 Jun 2006 01:28:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It has something to do with the repeat sensitivity of the keyboard. I forget how to change that, maybe you can look it up, but heres some code that might work better in the long run.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span> <span class="k2">(</span> valid <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span> <span class="k2">)</span><span class="k2">{</span>
   <span class="k1">if</span> <span class="k2">(</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span> KEY_UP <span class="k2">]</span> <span class="k2">)</span><span class="k2">{</span>
        ...
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
The key[] array is automatically updated by allegro via interrupts so you dont need any other special code to detect when the keyboard is pressed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Sun, 18 Jun 2006 03:32:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I try as you said me. but it is always the same. one foot, one stop and go on continue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vinze80)</author>
		<pubDate>Sun, 18 Jun 2006 14:46:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you paste the rest of the code that you use to move your circle?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Sun, 18 Jun 2006 19:37:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">int</span> valid<span class="k3">=</span><span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">3</td><td><span class="k1">int</span> touche<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>...</td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">while</span> <span class="k2">(</span>valid<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td><span class="k2">{</span></td></tr><tr><td class="number">9</td><td>  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>    touche<span class="k3">=</span><a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>    <span class="k1">if</span><span class="k2">(</span>touche&gt;&gt;8 <span class="k3">=</span><span class="k3">=</span> KEY_UP<span class="k2">)</span></td></tr><tr><td class="number">13</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>                    y--<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>                    <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">10</span><span class="k3">*</span>x, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, y<span class="k3">+</span><span class="n">2</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">50</span>, <span class="n">50</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>                    <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, y<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">200</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>                <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>    <span class="k1">if</span><span class="k2">(</span>touche&gt;&gt;8 <span class="k3">=</span><span class="k3">=</span> KEY_DOWN<span class="k2">)</span></td></tr><tr><td class="number">19</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>                    ...</td></tr><tr><td class="number">21</td><td>                <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
This is my code. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vinze80)</author>
		<pubDate>Sun, 18 Jun 2006 22:15:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Using readkey() and keypressed() will have that effect. You need to replace readkey() and keypressed() with key[].</p><p>[EDIT]<br />Like this:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span> <span class="k2">(</span>valid<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>
        <span class="k2">{</span>
              y--<span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">10</span><span class="k3">*</span>x, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, y<span class="k3">+</span><span class="n">2</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">50</span>, <span class="n">50</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, y<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">200</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span>
  <span class="k2">{</span>
              ...
        <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Michael Faerber)</author>
		<pubDate>Sun, 18 Jun 2006 22:23:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Vinze, can you paste your code using the key[] array so we can be sure you are using it correctly?</p><p>Michael, no offense but thats almost exactly what I wrote above anyway :p.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (kazzmir)</author>
		<pubDate>Sun, 18 Jun 2006 23:40:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tried with &quot;key[KEY_UP]&quot; exactly the same as Michael has written.<br />But with that, I lose completely the control of my keys.<br />If I press only one time KEY_UP, my circle reaches at the top of the screen. Same for the others keys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vinze80)</author>
		<pubDate>Mon, 19 Jun 2006 00:55:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Michael, no offense but thats almost exactly what I wrote above anyway :p.
</p></div></div><p>

Yes, but I thought he didn&#39;t get it, because he said that it was still the same behaviour.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
But with that, I lose completely the control of my keys.<br />If I press only one time KEY_UP, my circle reaches at the top of the screen. Same for the others keys.
</p></div></div><p>

You have to divide your program into logic and draw parts. See <a href="http://alleg.sourceforge.net/faq.html#How_can_I_make_my_game_run_at_the_same_speed_on_any_computer_">this</a> and search the forums.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Michael Faerber)</author>
		<pubDate>Mon, 19 Jun 2006 01:00:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Tanks for the link, I searched how can I use timer with allegro.<br />I have already read some things about timer on French web (because I am French), and I didn&#39;t understood very well the timers.<br />I hope with this link I will understand timers and I will succeed of my keyboard problem.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vinze80)</author>
		<pubDate>Mon, 19 Jun 2006 02:19:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>for Michael&#39;s code
</p><div class="quote_container"><div class="title">Michael Faerber said:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span> <span class="k2">(</span>valid<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>
        <span class="k2">{</span>
              y--<span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">10</span><span class="k3">*</span>x, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, y<span class="k3">+</span><span class="n">2</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">50</span>, <span class="n">50</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, y<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">200</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span>
  <span class="k2">{</span>
              ...
        <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

It probably should be
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">while</span> <span class="k2">(</span>valid<span class="k3">=</span><span class="k3">=</span><span class="n">0</span><span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_UP<span class="k2">]</span><span class="k2">)</span>
        <span class="k2">{</span>
              y--<span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">10</span><span class="k3">*</span>x, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>y<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, <span class="n">10</span><span class="k3">*</span><span class="k2">(</span>x<span class="k3">+</span><span class="n">1</span><span class="k2">)</span>, y<span class="k3">+</span><span class="n">2</span><span class="k2">)</span>,<a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">50</span>, <span class="n">50</span>, <span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
              <a href="http://www.allegro.cc/manual/circlefill" target="_blank"><span class="a">circlefill</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, x<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, y<span class="k3">*</span><span class="n">10</span><span class="k3">+</span><span class="n">5</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">200</span>,<span class="n">200</span>,<span class="n">50</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
        <span class="k2">}</span>
  <span class="k1">while</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_DOWN<span class="k2">]</span><span class="k2">)</span>
        <span class="k2">{</span>
              ...
        <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Mon, 19 Jun 2006 02:19:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>check this out... its from the allegro keyboard routines-  <a href="http://shamis.0nyx.com/download.html">http://shamis.0nyx.com/download.html</a>   or   <a href="http://shamis.0nyx.com/zips/kr.zip">http://shamis.0nyx.com/zips/kr.zip</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Lucid Nightmare)</author>
		<pubDate>Mon, 19 Jun 2006 12:30:58 +0000</pubDate>
	</item>
</rss>
