<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>key[KEY_SPACE] backwards</title>
		<link>http://www.allegro.cc/forums/view/596582</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 04 Jun 2008 09:22:10 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Is there some sort of function that pushes eg. space instead of checking if it&#39;s pushed?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Tue, 03 Jun 2008 23:48:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What do you need an automatically pressed space-bar for?  I can&#39;t imagine why that&#39;d be necessary...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 00:00:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Not only space. I couldn&#39;t find a decent key binding program, so I decided to create one myself.</p><p>Example:</p><p>if(key[KEY_A])<br />{<br />    press space;<br />}
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 00:05:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I still...don&#39;t really understand why you don&#39;t just check for space-bar being pressed...  I assume after that you&#39;d have something checking to see if space-bar was &#39;pressed&#39;, to accomplish something?</p><p>As in:
</p><div class="source-code snippet"><div class="inner"><pre><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_A<span class="k2">]</span><span class="k2">)</span> space_pressed <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>

<span class="k1">if</span><span class="k2">(</span>space_pressed <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span> runMyFunction<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>


What&#39;s wrong with <tt>if(key[KEY_SPACE])</tt>?  Is there some reason you&#39;re checking for an artificial space-bar press, rather than just using a bool or something similar?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 00:17:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I never press space myself, but I want it to be pressed when I press A.</p><p>In your example, space is just a name, it has nothing to do with the spacebar.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 00:20:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>...why?  Is there some part of your code that demands that the space-bar be pressed?  If so, just change it to A.  Or you could have it check to see if A <i>or</i> space-bar were pressed.</p><p>[edit] Exactly. The keyboard is a human interface device.  If you want it to change without human input, you might as well just use a bool instead.</p><p>[edit2]Wait wait wait, are you going for a &#39;user defines their own buttons to press for certain things&#39; kinda thing?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 00:23:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just want to be able to bind the keys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 00:26:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright, yeah... That makes more sense.  What you really want to do is to have a variable for each thing you&#39;d like your buttons to do. (probably not the best way, I&#39;ve never tried this before...)</p><p>But...something like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> jump, run_left, run_right<span class="k2">;</span>

jump <span class="k3">=</span> KEY_SPACE<span class="k2">;</span>
run_left <span class="k3">=</span> KEY_A<span class="k2">;</span>
run_right <span class="k3">=</span> KEY_D<span class="k2">;</span>

<span class="c">//Later...</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>jump<span class="k2">]</span><span class="k2">)</span> doJump<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>run_left<span class="k2">]</span><span class="k2">)</span> doRunLeftStuff<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>run_right<span class="k2">]</span><span class="k2">)</span> doRunRightStuff<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Actually, now that I think about it, key[] might not like ints...</p><p>But you get the idea, anyways.</p><p>[edit] Just found <a href="http://www.allegro.cc/manual/api/keyboard-routines/simulate_keypress">this</a> in <a href="http://www.allegro.cc/manual/">TFM</a>, though, if that&#39;s what you really want to do.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 00:33:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Something like that I&#39;m looking for yes, but I don&#39;t seem to get it working:</p><p>if(key[KEY_A])<br />    simulate_keypress(KEY_SPACE);</p><p>if(key[KEY_SPACE])<br />    floodfill(buffer, 1, 1, makecol(128,128,128));</p><p>I want it to use the floodfill function when you press A.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 00:49:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Do you have a main loop, checking for input, blitting the buffer to the screen and all that fun stuff?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 00:51:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, and when I press space myself it works like it should.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 00:55:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, what Anomie is saying is that you should have it work like this:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> key_that_you_press_to_make_the_buffer_gray <span class="k3">=</span> KEY_A<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_that_you_press_to_make_the_buffer_gray<span class="k2">]</span><span class="k2">)</span>
    <a href="http://www.allegro.cc/manual/floodfill" target="_blank"><span class="a">floodfill</span></a><span class="k2">(</span>buffer, <span class="n">1</span>, <span class="n">1</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">128</span>,<span class="n">128</span>,<span class="n">128</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 (CGamesPlay)</author>
		<pubDate>Wed, 04 Jun 2008 01:00:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I dunno why it wouldn&#39;t work with key[]...but try using the <tt>if (readkey() == (KEY_SPACE);</tt> method from the example on that page.</p><p>[edit] And...yeah... That way is definitely much more useful if you ever plan to do anything more complicated than what you&#39;re doing now.  Up to you though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 01:01:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What does the &quot;int key_that_you_press_to_make_the_buffer_gray = KEY_A;&quot; do?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Aqua Regia)</author>
		<pubDate>Wed, 04 Jun 2008 01:05:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://www.cplusplus.com/doc/tutorial/">It does this.</a>  Very important.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Anomie)</author>
		<pubDate>Wed, 04 Jun 2008 01:08:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>somewhat important to explicitly note, simulate_keypress only places a new key in allegro&#39;s readkey buffer, and does nothing else.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Wed, 04 Jun 2008 01:12:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I dunno why it wouldn&#39;t work with key[]...but try using the if (readkey() == (KEY_SPACE); method from the example on that page.
</p></div></div><p>Important to note it that simulate_keypress only works on the readkey buffer as Thomas just said, and the snippet you just suggested is <i>not</i> what the page said to do and won&#39;t work. To learn how to use readkey, see its manual page.<br /><span class="source-code"><a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a></span></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
What does the &quot;int key_that_you_press_to_make_the_buffer_gray = KEY_A;&quot; do?
</p></div></div><p>It makes a variable. You can name it whatever you want, but it stores the name of the key that you want to read. When you go to check the key, instead of using a fixed name, you use the name that you stored in the variable.</p><p>But you are going to have to learn how to use variables to really understand what&#39;s going on.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Wed, 04 Jun 2008 01:23:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s a primitive mapping system I used in projects a while back.</p><p><b>allegro_input.h</b>
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">/**************************************************</span></td></tr><tr><td class="number">2</td><td><span class="c">*  FILE:  allegro_input.h                         *</span></td></tr><tr><td class="number">3</td><td><span class="c">*  AUTHOR:  Steven Silvey                         *</span></td></tr><tr><td class="number">4</td><td><span class="c">*  DATE:  5/07/2006                               *</span></td></tr><tr><td class="number">5</td><td><span class="c">*                                                 *</span></td></tr><tr><td class="number">6</td><td><span class="c">*  Configures a dynamic mapping of all input,     *</span></td></tr><tr><td class="number">7</td><td><span class="c">*  either keyboard or joystick, to main input.    *</span></td></tr><tr><td class="number">8</td><td><span class="c">**************************************************/</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="p">#ifndef _ALLEGRO_INPUT_H_</span></td></tr><tr><td class="number">11</td><td><span class="p">#define _ALLEGRO_INPUT_H_</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td><span class="p">#define MAX_MAPPING 50</span></td></tr><tr><td class="number">14</td><td><span class="k1">typedef</span> <span class="k1">class</span> INPUT input<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><span class="p">#include "game.h"</span></td></tr><tr><td class="number">17</td><td><span class="p">#include "allegro_keyboard.h"</span></td></tr><tr><td class="number">18</td><td><span class="p">#include "allegro_joystick.h"</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td><span class="c">/*  Quick key associations  */</span></td></tr><tr><td class="number">21</td><td><span class="p">#define ACCEPT 0</span></td></tr><tr><td class="number">22</td><td><span class="p">#define ACTION_1 1</span></td></tr><tr><td class="number">23</td><td><span class="p">#define ACTION_2 2</span></td></tr><tr><td class="number">24</td><td><span class="p">#define CANCEL 3</span></td></tr><tr><td class="number">25</td><td><span class="p">#define LEFT 4</span></td></tr><tr><td class="number">26</td><td><span class="p">#define RIGHT 5</span></td></tr><tr><td class="number">27</td><td><span class="p">#define UP 6</span></td></tr><tr><td class="number">28</td><td><span class="p">#define DOWN 7</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td><span class="k1">extern</span> <span class="k1">int</span> input_timer<span class="k2">;</span></td></tr><tr><td class="number">31</td><td>&#160;</td></tr><tr><td class="number">32</td><td><span class="k1">class</span> INPUT</td></tr><tr><td class="number">33</td><td><span class="k2">{</span></td></tr><tr><td class="number">34</td><td>public:</td></tr><tr><td class="number">35</td><td>  JOY <span class="k3">*</span>JOYSTICK<span class="k2">;</span></td></tr><tr><td class="number">36</td><td>  myKEY <span class="k3">*</span>KEYBOARD<span class="k2">;</span></td></tr><tr><td class="number">37</td><td>  INPUT<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>  ~INPUT<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>&#160;</td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td>  <span class="k1">void</span> map<span class="k2">(</span><span class="k1">int</span> iIndex, <span class="k1">int</span> iType, <span class="k1">int</span> iValue, <span class="k1">int</span> jType<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>  <span class="c">/*  Checks if the key or joystick mapped to iValue has been accepted.  */</span></td></tr><tr><td class="number">44</td><td>  <span class="k1">bool</span> MAP<span class="k2">(</span><span class="k1">int</span> iValue<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>&#160;</td></tr><tr><td class="number">46</td><td>  <span class="c">/*  Checks if the key or joystick mapped to iValue has been accepted with a </span></td></tr><tr><td class="number">47</td><td><span class="c">  cool down timer set to iTimer_Delay  */</span></td></tr><tr><td class="number">48</td><td>  <span class="k1">bool</span> MAP<span class="k2">(</span><span class="k1">int</span> iValue, <span class="k1">int</span> iTimer_Delay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>&#160;</td></tr><tr><td class="number">50</td><td>  <span class="c">/*  Checks if the key or joystick[mPID] mapped to iValue has been accepted with a </span></td></tr><tr><td class="number">51</td><td><span class="c">  cool down timer set to iTimer_Delay  */</span></td></tr><tr><td class="number">52</td><td>  <span class="k1">bool</span> MAP<span class="k2">(</span><span class="k1">int</span> mPID, <span class="k1">int</span> iValue, <span class="k1">int</span> iTimer_Delay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>&#160;</td></tr><tr><td class="number">55</td><td><span class="p">#endif /* End of _ALLEGRO_INPUT_H_*/</span></td></tr></tbody></table></div></div><p>

<b>allegro_input.cpp</b>
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="p">#include "allegro_input.h"</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">int</span> input_timer<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>INPUT::INPUT<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>  KEYBOARD <span class="k3">=</span> <span class="k1">new</span> myKEY<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  JOYSTICK <span class="k3">=</span> <span class="k1">new</span> JOY<span class="k2">;</span></td></tr><tr><td class="number">9</td><td><span class="k2">}</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td>INPUT::~INPUT<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">12</td><td><span class="k2">{</span></td></tr><tr><td class="number">13</td><td>  <span class="k1">delete</span> KEYBOARD<span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k1">delete</span> JOYSTICK<span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k2">}</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td><span class="k1">void</span> INPUT::map<span class="k2">(</span><span class="k1">int</span> iIndex, <span class="k1">int</span> iType, <span class="k1">int</span> iValue, <span class="k1">int</span> jType<span class="k2">)</span></td></tr><tr><td class="number">18</td><td><span class="k2">{</span></td></tr><tr><td class="number">19</td><td>  <span class="k1">if</span><span class="k2">(</span>iIndex <span class="k3">&lt;</span> <span class="n">0</span> <span class="k3">|</span><span class="k3">|</span> iIndex <span class="k3">&gt;</span><span class="k3">=</span> MAX_MAPPING<span class="k2">)</span> <span class="k1">return</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>  <span class="k1">if</span><span class="k2">(</span>iType <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">21</td><td>    KEYBOARD-&gt;map<span class="k2">(</span>iIndex, iValue<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">23</td><td>    JOYSTICK-&gt;map<span class="k2">(</span>iIndex, jType, iValue<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td><span class="k2">}</span></td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td><span class="k1">bool</span> INPUT::MAP<span class="k2">(</span><span class="k1">int</span> mPID, <span class="k1">int</span> iValue, <span class="k1">int</span> iTimer_Delay<span class="k2">)</span></td></tr><tr><td class="number">28</td><td><span class="k2">{</span></td></tr><tr><td class="number">29</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>KEYBOARD-&gt;MAP<span class="k2">(</span>iValue<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> JOYSTICK-&gt;MAP<span class="k2">(</span>mPID, iValue<span class="k2">)</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_38.html" target="_blank">abs</a><span class="k2">(</span>ticks <span class="k3">-</span> input_timer<span class="k2">)</span> <span class="k3">&gt;</span><span class="k3">=</span> iTimer_Delay<span class="k2">)</span></td></tr><tr><td class="number">30</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">31</td><td>    input_timer <span class="k3">=</span> ticks<span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">34</td><td>  <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td><span class="k1">bool</span> INPUT::MAP<span class="k2">(</span><span class="k1">int</span> iValue<span class="k2">)</span></td></tr><tr><td class="number">38</td><td><span class="k2">{</span></td></tr><tr><td class="number">39</td><td>  <span class="k1">return</span> MAP<span class="k2">(</span><span class="n">0</span>, iValue, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">40</td><td><span class="k2">}</span></td></tr><tr><td class="number">41</td><td>&#160;</td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td><span class="k1">bool</span> INPUT::MAP<span class="k2">(</span><span class="k1">int</span> iValue, <span class="k1">int</span> iTimer_Delay<span class="k2">)</span></td></tr><tr><td class="number">44</td><td><span class="k2">{</span></td></tr><tr><td class="number">45</td><td>  <span class="k1">return</span> MAP<span class="k2">(</span><span class="n">0</span>, iValue, iTimer_Delay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

And then, I&#39;d have a place where I&#39;d make the connections:</p><p><b>game.cpp</b>
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td>...</td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">// Map the keyboard and joystick</span></td></tr><tr><td class="number">5</td><td><span class="c">//gInput.map(CANCEL, 0, KEY_ESC, 0);</span></td></tr><tr><td class="number">6</td><td>gInput.map<span class="k2">(</span>LEFT, <span class="n">0</span>, KEY_LEFT, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>gInput.map<span class="k2">(</span>RIGHT, <span class="n">0</span>, KEY_RIGHT, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>gInput.map<span class="k2">(</span>DOWN, <span class="n">0</span>, KEY_DOWN, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>gInput.map<span class="k2">(</span>UP, <span class="n">0</span>, KEY_UP, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>gInput.map<span class="k2">(</span>ACCEPT, <span class="n">0</span>, KEY_SPACE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>gInput.map<span class="k2">(</span>ACTION_1, <span class="n">0</span>, KEY_LCONTROL, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td>...</td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>gInput.MAP<span class="k2">(</span>CANCEL,<span class="n">5</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>GAME.quit<span class="k2">)</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>...</td></tr></tbody></table></div></div><p>

I stopped using it because it needs some cleaning up, but the functionality of it seemed to work fine if I remember correctly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Wed, 04 Jun 2008 01:25:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Aqua Regia : It may not be clear so far, but all the KEY_ symbols correspond a number: KEY_A is 1, KEY_SPACE is 75. <br />You write <tt>if (key[KEY_SPACE])</tt> because it&#39;s more readable than <tt>if (key[75])</tt>, but the end result is the same.</p><p>Since these are simply numbers, you can store them in integer variables, as used in the above explanations.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Wed, 04 Jun 2008 03:57:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="n">1</span></span></p><p>This&#39;ll do exactly what you say you want, but probably not what you really want.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (amber)</author>
		<pubDate>Wed, 04 Jun 2008 04:33:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Also it will randomly not work but only sometimes. Doing that is just a bad idea, because Allegro automatically updates that variable from a different thread.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Wed, 04 Jun 2008 09:22:10 +0000</pubDate>
	</item>
</rss>
