<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>[a5] A doubt about move of image with keyboard</title>
		<link>http://www.allegro.cc/forums/view/607476</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 19 Jun 2011 00:22:39 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I can add the commands to move the image in my current &quot;main_loop ();&quot; or I&#39;ll have to modify it?</p><p>EDIT 1: In the Code::Blocks the indentation was perfect, here messed up a little and I do not know the reason :X</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">/* Test */</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="k1">void</span> draw_character<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/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>layer<span class="k2">;</span>
<span class="number">   6</span>    layer <span class="k3">=</span>  <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   7</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>layer, <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">255</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="k2">;</span>
<span class="number">   8</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>layer, <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="number">   9</span><span class="k2">}</span>
<span class="number">  10</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="k1">void</span> test<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span><span class="k1">void</span> graphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span><span class="k1">void</span> create_layers<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">void</span> map_draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="k1">static</span> <span class="k1">void</span> main_loop<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  18</span><span class="k2">{</span>
<span class="number">  19</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">  20</span>  <span class="k1">int</span> move <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  21</span>  <span class="k1">int</span> andando <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  22</span>  <span class="k1">int</span> prox, proy<span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  25</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  26</span>        <span class="c">/* Test */</span>
<span class="number">  27</span>            draw_character<span class="k2">(</span><span class="k2">)</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>    <span class="k2">}</span>
<span class="number">  30</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number">  32</span>    <span class="k2">{</span>
<span class="number">  33</span>      <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number">  34</span>          <span class="k1">return</span><span class="k2">;</span>
<span class="number">  35</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  36</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number">  37</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number">  38</span>                    <span class="c">/* Test */</span>
<span class="number">  39</span>              draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number">  41</span>          <span class="c">/* Test */</span>
<span class="number">  42</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number">  44</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number">  45</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  46</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number">  47</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number">  48</span>          <span class="c">/* Test */</span>
<span class="number">  49</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number">  51</span>          <span class="c">/* Test */</span>
<span class="number">  52</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number">  54</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number">  55</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  56</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number">  57</span>      <span class="c">/* Future Update of time */</span>
<span class="number">  58</span><span class="c">//          update();</span>
<span class="number">  59</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  60</span>    <span class="k2">}</span>
<span class="number">  61</span>  <span class="k2">}</span>
<span class="number">  62</span><span class="k2">}</span>
<span class="number">  63</span>
<span class="number">  64</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  65</span><span class="k2">{</span>
<span class="number">  66</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  67</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  69</span>    <span class="k2">}</span>
<span class="number">  70</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  71</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  73</span>    <span class="k2">}</span>
<span class="number">  74</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  77</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  79</span>    <span class="k2">}</span>
<span class="number">  80</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  81</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  83</span>    <span class="k2">}</span>
<span class="number">  84</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>
<span class="number">  85</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  87</span>    <span class="k2">}</span>
<span class="number">  88</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  89</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>  <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  91</span>    <span class="k2">}</span>
<span class="number">  92</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  93</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>  <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  95</span>    <span class="k2">}</span>
<span class="number">  96</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  97</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  99</span>    <span class="k2">}</span>
<span class="number"> 100</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 102</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 104</span>    <span class="k2">}</span>
<span class="number"> 105</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 107</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 109</span>    <span class="k2">}</span>
<span class="number"> 110</span>
<span class="number"> 111</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>
<span class="number"> 113</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 115</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 117</span>    <span class="k2">}</span>
<span class="number"> 118</span>    test<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>    graphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>    <span class="c">//create_layers();</span>
<span class="number"> 121</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>  
<span class="number"> 123</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>
<span class="number"> 125</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>
<span class="number"> 127</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>
<span class="number"> 129</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>
<span class="number"> 131</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>
<span class="number"> 133</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>
<span class="number"> 135</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"> 136</span>
<span class="number"> 137</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"> 138</span>
<span class="number"> 139</span>    main_loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>
<span class="number"> 141</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 142</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Mon, 30 May 2011 09:01:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1) Use integers local to main_loop and pass them to draw_character :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k1">int</span> x , <span class="k1">int</span> y<span class="k2">)</span> <span class="k2">{</span>
   <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k1">char</span> , x , y , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>

<span class="k1">void</span> main_loop<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
   <span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
   <span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
   <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
      <span class="c">/// blah</span>
      draw_character<span class="k2">(</span>cx,cy<span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

2) Use global integers
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>   <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span><span class="k1">char</span> , cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span><span class="k2">}</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">void</span> main_loop <span class="k2">{</span>
<span class="number">  9</span>   <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 10</span>      <span class="c">/// Blah</span>
<span class="number"> 11</span>      cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 12</span>      cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 13</span>      draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>   <span class="k2">}</span>
<span class="number"> 15</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 30 May 2011 12:37:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>In your code, in your function , draw_character(), you lod the bitmap every time.<br />This isn&#39;t wise and will populate your game with memory leaks.
</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">void</span> draw_character<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>layer<span class="k2">;</span>
<span class="number">  4</span>    layer <span class="k3">=</span>  <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>layer, <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">255</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="k2">;</span>
<span class="number">  6</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>layer, <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="number">  7</span><span class="k2">}</span>
<span class="number">  8</span><span class="c">//create a function that will loads yout sprites, and them draw them</span>
<span class="number">  9</span><span class="k1">void</span> load_character<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> character<span class="k2">)</span>
<span class="number"> 10</span><span class="k2">{</span>
<span class="number"> 11</span>    character <span class="k3">=</span>  <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k1">if</span><span class="k2">(</span>character <span class="k3">!</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 13</span>    <span class="k2">{</span>
<span class="number"> 14</span>        <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>character, <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">255</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="k2">;</span>
<span class="number"> 15</span>    <span class="k2">}</span>
<span class="number"> 16</span>    <span class="k1">else</span>
<span class="number"> 17</span>    <span class="k2">{</span>
<span class="number"> 18</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"error loading the char\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>    <span class="k2">}</span>
<span class="number"> 20</span><span class="k2">}</span>
<span class="number"> 21</span><span class="k1">void</span> draw_character<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> character<span class="k2">)</span>
<span class="number"> 22</span><span class="k2">{</span>
<span class="number"> 23</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>character, <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="number"> 24</span><span class="k2">}</span>
<span class="number"> 25</span><span class="k1">void</span> destroy_char<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> character<span class="k2">)</span>
<span class="number"> 26</span><span class="k2">{</span>
<span class="number"> 27</span> <span class="c">//destroy it</span>
<span class="number"> 28</span><span class="k2">}</span>
</div></div><p>
Its just some tips, of couse you would llike to load all characters sprites in the load function, and destroy all in the destroy function. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aniquilator)</author>
		<pubDate>Mon, 30 May 2011 19:39:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>&quot;I&#39;m trying to figure out why it happens</p><p><a href="http://i52.tinypic.com/dcwm7o.jpg">http://i52.tinypic.com/dcwm7o.jpg</a>&quot;</p><p>EDIT 1: The first question I fix with &quot;al_clear_to_color....&quot; Thanks!</p><p>If I want to put three sprites to change as the character moves, I can create a simple animation of the three images and put to animate if the condition is = move? or has an easier way?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Tue, 31 May 2011 10:43:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>To animate, you will have to load all the char sprites, and you can put themm all in a vector, and access them by the index of the frame you want to show.<br />for example:
</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>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">  2</span>sprites.push_back<span class="k2">(</span>al_load_bitmap... <span class="k2">)</span><span class="k2">;</span>
<span class="number">  3</span>sprites.push_back<span class="k2">(</span>al_load_bitmap... <span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>sprites.push_back<span class="k2">(</span>al_load_bitmap... <span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  7</span><span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="k1">while</span><span class="k2">(</span><span class="n">1</span><span class="k2">)</span>
<span class="number"> 10</span><span class="k2">{</span>
<span class="number"> 11</span>    <span class="c">//logic</span>
<span class="number"> 12</span>    al_draw_ ... <span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span><span class="c">//the less is this value , the slower is the animation</span>
<span class="number"> 14</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
<span class="number"> 15</span>        frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 16</span><span class="k2">}</span>
</div></div><p>
Thats the basic i think. <br />PS: std::vector is a c++ class, and you have to include: #include&lt;vector&gt;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aniquilator)</author>
		<pubDate>Tue, 31 May 2011 11:23:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying this way:</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">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>    std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">  8</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, <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">255</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="k2">;</span>
<span class="number"> 14</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, cx, cy, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>    frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">5</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
<span class="number"> 17</span>    frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 18</span><span class="k2">}</span>
<span class="number"> 19</span>... frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
</div></div><p>

When I get back I&#39;ll see if I can fix it!</p><p>EDIT 1: I managed to animate, now I&#39;m trying to change of<br />picture the every move!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 01 Jun 2011 04:46:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have to erase what you&#39;ve drawn previously (by drawing the scene or just clearing to black for testing) then draw everything again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 01 Jun 2011 05:25:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p> </p><div class="source-code snippet"><div class="inner"><pre>  ...
  std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
  sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
  ...
</pre></div></div><p>

I was trying to use the code that load the images off the &quot;void&quot;  to separate the parts that loads the images for not have to load always, but after of the third move with the character...  my program give error when I do that!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 01 Jun 2011 09:23:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Do you have new code? I can&#39;t see how that&#39;s happening with your last paste.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 01 Jun 2011 09:29:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My code...
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">/* Test */</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   4</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   5</span>
<span class="number">   6</span>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">   7</span><span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">   8</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k2">)</span>
<span class="number">  11</span><span class="k2">{</span>
<span class="number">  12</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>    <span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, <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">255</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="k2">;</span>
<span class="number">  17</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, cx, cy, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>    frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  19</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
<span class="number">  20</span>    frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  21</span><span class="k2">}</span>
<span class="number">  22</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="k1">static</span> <span class="k1">void</span> main_loop<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  25</span><span class="k2">{</span>
<span class="number">  26</span>
<span class="number">  27</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  28</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  29</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  30</span>        <span class="c">/* Test */</span>
<span class="number">  31</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</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">  33</span>    <span class="k2">}</span>
<span class="number">  34</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number">  36</span>    <span class="k2">{</span>
<span class="number">  37</span>      <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number">  38</span>          <span class="k1">return</span><span class="k2">;</span>
<span class="number">  39</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  40</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number">  41</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  42</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  43</span>              cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  44</span>          <span class="k2">}</span>
<span class="number">  45</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  46</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  47</span>                        cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  48</span>                        frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  49</span>          <span class="k2">}</span>
<span class="number">  50</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number">  51</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number">  52</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  53</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number">  54</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number">  55</span>          <span class="c">/* Test, just to compile */</span>
<span class="number">  56</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number">  58</span>          <span class="c">/* Test, just to compile */</span>
<span class="number">  59</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number">  61</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number">  62</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  63</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number">  64</span>      <span class="c">/* Future Update */</span>
<span class="number">  65</span>          <span class="c">//update();</span>
<span class="number">  66</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number">  67</span>    <span class="k2">}</span>
<span class="number">  68</span>
<span class="number">  69</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">  70</span>  <span class="k2">}</span>
<span class="number">  71</span><span class="k2">}</span>
<span class="number">  72</span>
<span class="number">  73</span>
<span class="number">  74</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  75</span><span class="k2">{</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/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  77</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  79</span>    <span class="k2">}</span>
<span class="number">  80</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  81</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  83</span>    <span class="k2">}</span>
<span class="number">  84</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  87</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  89</span>    <span class="k2">}</span>
<span class="number">  90</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  91</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  93</span>    <span class="k2">}</span>
<span class="number">  94</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>
<span class="number">  95</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  97</span>    <span class="k2">}</span>
<span class="number">  98</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  99</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 101</span>  <span class="k2">}</span>
<span class="number"> 102</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 103</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 105</span>  <span class="k2">}</span>
<span class="number"> 106</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 107</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 109</span>  <span class="k2">}</span>
<span class="number"> 110</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 112</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 113</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 114</span>    <span class="k2">}</span>
<span class="number"> 115</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 117</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 119</span>    <span class="k2">}</span>
<span class="number"> 120</span>
<span class="number"> 121</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>
<span class="number"> 123</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 125</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 127</span>    <span class="k2">}</span>
<span class="number"> 128</span>    test<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>    graphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>    <span class="c">//load_character();</span>
<span class="number"> 131</span>    <span class="c">//create_layers();</span>
<span class="number"> 132</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>
<span class="number"> 134</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>
<span class="number"> 136</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>
<span class="number"> 138</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>
<span class="number"> 140</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>
<span class="number"> 142</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</span>
<span class="number"> 144</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"> 145</span>
<span class="number"> 146</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span>
<span class="number"> 148</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"> 149</span>
<span class="number"> 150</span>    main_loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</span>
<span class="number"> 152</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>
<span class="number"> 154</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 155</span><span class="k2">}</span>
</div></div><p>

and I tried to do:</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">static</span> <span class="k1">void</span> main_loop<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>
<span class="number">  5</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">  6</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>        <span class="c">/* Test */</span>
<span class="number"> 13</span>            <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, <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">255</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="k2">;</span>
<span class="number"> 14</span>            <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, cx, cy, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>            frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 16</span>            <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
<span class="number"> 17</span>            frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 18</span>            <span class="c">//draw_character();</span>
<span class="number"> 19</span>            <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k2">}</span>
</div></div><p>

*The indentation is correct?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 01 Jun 2011 09:41:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The first code you posted is not good code. You load three images every time you draw your character.</p><p>Only use al_convert_mask_to_alpha once for each sprite that needs it, not every time you draw it.</p><p>The indentation is still not totally right :
</p><div class="source-code snippet"><div class="inner"><pre>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Both lines should be at the same indentation level :
</p><div class="source-code snippet"><div class="inner"><pre>   <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
   sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</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 (Edgar Reynaldo)</author>
		<pubDate>Wed, 01 Jun 2011 10:20:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi... when I separate the images that I have to load of the my &quot;void draw_character...&quot; the  my program hangs in the third movement!</p><p><b>**The indentation is correct in my code: blocks, but when I post here some parts stay crooked and i dont know why.</b>**</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">/* Test */</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  4</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  5</span>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">  6</span><span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  9</span><span class="k2">{</span>
<span class="number"> 10</span>
<span class="number"> 11</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, cx, cy, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>
<span class="number"> 13</span><span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k1">void</span> update<span class="k2">(</span><span class="k1">void</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/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span>
<span class="number"> 19</span>    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, ALLEGRO_KEY_DOWN<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>        <span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>        frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 23</span>        <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
<span class="number"> 24</span>        frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 25</span>    <span class="k2">}</span>
<span class="number"> 26</span><span class="k2">}</span>
<span class="number"> 27</span>
<span class="number"> 28</span><span class="k1">static</span> <span class="k1">void</span> main_loop<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 29</span><span class="k2">{</span>
<span class="number"> 30</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"> 31</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 32</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 33</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>            <a href="http://www.allegro.cc/manual/al_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"> 35</span>    <span class="k2">}</span>
<span class="number"> 36</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number"> 38</span>    <span class="k2">{</span>
<span class="number"> 39</span>      <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 40</span>          <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 41</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 42</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 43</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 44</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 45</span>              cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 46</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 47</span>          <span class="k2">}</span>
<span class="number"> 48</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 49</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 50</span>                        cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 51</span>                        frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 52</span>                        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 53</span>          <span class="k2">}</span>
<span class="number"> 54</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 55</span>              cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 56</span>              cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 57</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 58</span>          <span class="k2">}</span>
<span class="number"> 59</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 60</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 61</span>              cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 62</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 63</span>          <span class="k2">}</span>
<span class="number"> 64</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 65</span>              <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 66</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 67</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 68</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number"> 69</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 70</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number"> 71</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 72</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 73</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 74</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 75</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 76</span>      <span class="c">/* Future Update */</span>
<span class="number"> 77</span>            update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 78</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 79</span>    <span class="k2">}</span>
<span class="number"> 80</span>
<span class="number"> 81</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"> 82</span>  <span class="k2">}</span>
<span class="number"> 83</span><span class="k2">}</span>
</div></div><p>


</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  6</span>    <span class="k2">}</span>
<span class="number">  7</span>    <span class="k1">if</span><span class="k2">(</span><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="k2">{</span>
<span class="number">  8</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k2">}</span>
<span class="number"> 11</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>         <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>         <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k2">}</span>
<span class="number"> 21</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>
<span class="number"> 22</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 26</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</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><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 30</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 32</span>    <span class="k2">}</span>
<span class="number"> 33</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 34</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 36</span>    <span class="k2">}</span>
<span class="number"> 37</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 39</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 41</span>    <span class="k2">}</span>
<span class="number"> 42</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 44</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 46</span>    <span class="k2">}</span>
<span class="number"> 47</span>
<span class="number"> 48</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 52</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 54</span>    <span class="k2">}</span>
<span class="number"> 55</span>    <span class="c">//test();</span>
<span class="number"> 56</span>    graphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 57</span>    <span class="c">/* Test with character frames */</span> 
<span class="number"> 58</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 59</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 61</span>
<span class="number"> 62</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>
<span class="number"> 64</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 65</span>
<span class="number"> 66</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 67</span>
<span class="number"> 68</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 69</span>
<span class="number"> 70</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 71</span>
<span class="number"> 72</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 73</span>
<span class="number"> 74</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"> 75</span>
<span class="number"> 76</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 77</span>
<span class="number"> 78</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"> 79</span>
<span class="number"> 80</span>    main_loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 81</span>
<span class="number"> 82</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 83</span>
<span class="number"> 84</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 85</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Thu, 02 Jun 2011 23:19:40 +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/607476/919694#target">Jefferson Almeida</a> said:</div><div class="quote"><p>
<b>*The indentation is correct in my code: blocks, but when I post here some parts stay crooked and i dont know why.</b>*
</p></div></div><p>
Are you mixing tabs with spaces? Use one or the other, but never both.</p><p>Você está misturando as guias com os espaços? Use um ou outro, mas nunca ambos.</p><div class="quote_container"><div class="title">Jefferson Almeida said:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> update<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="k2">{</span>
<div class="highlight">    <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span></div>
<div class="highlight">    <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span></div>
<div class="highlight">    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state, ALLEGRO_KEY_DOWN<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span></div>
        <span class="k1">int</span> lastFrame <span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<div class="highlight">        frame<span class="k3">+</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span></div>
        <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> lastFrame<span class="k2">)</span>
        frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

Don&#39;t mix ALLEGRO_EVENT_KEY_DOWN with ALLEGRO_KEYBOARD_STATE - use one or the other. In your case, I would just use the ALLEGRO_KEYBOARD_STATE, and check that during the timer event :</p><p>Não misture com ALLEGRO_EVENT_KEY_DOWN ALLEGRO_KEYBOARD_STATE - use um ou outro. No seu caso, gostaria apenas de usar o ALLEGRO_KEYBOARD_STATE, e verificar que, durante o evento timer :</p><div class="source-code snippet"><div class="inner"><pre>   <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>
      <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span>
      <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_DOWN<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
         <span class="k3">+</span><span class="k3">+</span>frame<span class="k2">;</span>
         <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">size_t</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
            frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
         <span class="k2">}</span>
      <span class="k2">}</span>
      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_UP<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
         <span class="c">///</span>
      <span class="k2">}</span>
      <span class="k1">else</span> <span class="k1">if</span> <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 reason your code is failing now is because you only correct an out of bounds &#39;frame&#39; variable when the timer ticks. You could have an ALLEGRO_EVENT_KEY_DOWN event just after a timer tick incrementing frames to 3.0 and then access (int)3.0 in your sprites array, which is out of bounds.</p><p>O motivo é o seu código não é agora, porque você só corrigir uma variável fora do &#39;frame&#39; limites quando o cronômetro carrapatos. Você poderia ter um evento ALLEGRO_EVENT_KEY_DOWN logo após um timer tick quadros incremento de 3,0 e, em seguida, (int) Access 3.0 em sua matriz sprites, que está fora dos limites.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 03 Jun 2011 08:58:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi... Firstly, thank you! I fix the &quot;update&quot; as you show me , I&#39;m thinking in a solution for animation now, when I&#39;m moving my character... still give error in the third movement, I&#39;m to look for what  you said about &quot;frame&quot;.</p><p>EDIT1: When this party is separated of the function that draw give the error, but a time loaded the images should be stored without the need to reload... I think!
</p><div class="source-code snippet"><div class="inner"><pre>...
    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
...
</pre></div></div><p>

EDIT 2: I think this is wrong, but it&#39;s the only way I could make it work.</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">void</span> load<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>    spritesr.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/61.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>    spritesr.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/62.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>    spritesr.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/63.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="k2">}</span>
<span class="number"> 11</span>
<span class="number"> 12</span><span class="k1">void</span> update<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number"> 13</span><span class="k2">{</span>
<span class="number"> 14</span>    load<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</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"> 16</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span>
<span class="number"> 17</span>        <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_DOWN<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 19</span>            <span class="k3">+</span><span class="k3">+</span>frame<span class="k2">;</span>
<span class="number"> 20</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">size_t</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</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="k2">}</span>
<span class="number"> 24</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_UP<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 25</span>            <span class="k3">+</span><span class="k3">+</span>frame<span class="k2">;</span>
<span class="number"> 26</span>            <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">size_t</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 27</span>                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>            <span class="k2">}</span>
<span class="number"> 29</span>        <span class="k2">}</span>
<span class="number"> 30</span>    <span class="k2">}</span>
<span class="number"> 31</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Tue, 07 Jun 2011 03:20:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t load during update. Only load your images once.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607476/919977#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre>            <span class="k3">+</span><span class="k3">+</span>frame<span class="k2">;</span>
            <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><span class="k1">size_t</span><span class="k2">)</span>frame <span class="k3">&gt;</span><span class="k3">=</span> sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span><span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
            <span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

Let me make a correction - I gave you the wrong code earlier - it should be :
</p><div class="source-code snippet"><div class="inner"><pre>   frame <span class="k3">+</span><span class="k3">=</span> inc<span class="k2">;</span><span class="c">// inc must be in the range [0.0 , sprites.size() )</span>
   <span class="k1">if</span> <span class="k2">(</span>frame <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
      frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>

The &#39;inc&#39; variable is a floating point increment to let you change the frame by less than one. Set it to whatever works for you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 07 Jun 2011 05:30:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I updated the code how you said, but still give the same error.</p><p><a href="http://i53.tinypic.com/2irkkrs.jpg">http://i53.tinypic.com/2irkkrs.jpg</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 00:04:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can&#39;t keep guessing what is wrong. Either post your latest full code, or learn how to use a debugger.</p><p>You&#39;re probably accessing an element outside the boundaries of the vector again. Check for that first.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 03:56:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>My last code:</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/* Test */</span>

<span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="k1">int</span> inc <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
</pre></div></div><p>

Draw Character:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> draw_character<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, <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">255</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="k2">;</span>
    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span>, cx, cy, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>

<span class="k2">}</span>
</pre></div></div><p>

Update:</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">void</span> update<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</span>        <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> state<span class="k2">;</span>
<span class="number">  5</span>        <a href="http://www.allegro.cc/manual/al_get_keyboard_state"><span class="a">al_get_keyboard_state</span></a><span class="k2">(</span><span class="k3">&amp;</span>state<span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_DOWN<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>            frame <span class="k3">+</span><span class="k3">=</span> inc, sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>            <span class="k1">if</span> <span class="k2">(</span>frame <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>            <span class="k2">}</span>
<span class="number"> 11</span>        <span class="k2">}</span>
<span class="number"> 12</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_RIGHT<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>            frame <span class="k3">+</span><span class="k3">=</span> inc<span class="k2">;</span>
<span class="number"> 14</span>            <span class="k1">if</span> <span class="k2">(</span>frame <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 15</span>                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>            <span class="k2">}</span>
<span class="number"> 17</span>        <span class="k2">}</span>
<span class="number"> 18</span>        <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/al_key_down"><span class="a">al_key_down</span></a><span class="k2">(</span><span class="k3">&amp;</span>state , ALLEGRO_KEY_UP<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 19</span>            frame <span class="k3">+</span><span class="k3">=</span> inc<span class="k2">;</span>
<span class="number"> 20</span>            <span class="k1">if</span> <span class="k2">(</span>frame <span class="k3">&gt;</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</span>                frame <span class="k3">-</span><span class="k3">=</span> <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>sprites.size<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="k2">}</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span><span class="k2">}</span>
</div></div><p>

Main loop:</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">static</span> <span class="k1">void</span> main_loop<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  5</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</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">  8</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">  9</span>            <span class="c">//map_draw();</span>
<span class="number"> 10</span>    <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>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number"> 13</span>    <span class="k2">{</span>
<span class="number"> 14</span>      <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 15</span>          <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 16</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 17</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 18</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 19</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 20</span>              cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 21</span>              frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 22</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 23</span>          <span class="k2">}</span>
<span class="number"> 24</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 25</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 26</span>                        cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 27</span>                        frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 28</span>                        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 29</span>          <span class="k2">}</span>
<span class="number"> 30</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 31</span>              cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 32</span>              cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 33</span>              frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 34</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 35</span>          <span class="k2">}</span>
<span class="number"> 36</span>                    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 38</span>              cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 39</span>              frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 40</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 41</span>          <span class="k2">}</span>
<span class="number"> 42</span>                    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 43</span>              <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">200</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 44</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"> 45</span>          <span class="k2">}</span>
<span class="number"> 46</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 47</span>              <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 48</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 49</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 50</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number"> 51</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number"> 53</span>            draw_character<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 55</span>            <span class="k1">return</span><span class="k2">;</span>
<span class="number"> 56</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 57</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 58</span>      <span class="c">/* Future Update */</span>
<span class="number"> 59</span>            update<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 61</span>    <span class="k2">}</span>
<span class="number"> 62</span>    <span class="k2">}</span>
<span class="number"> 63</span><span class="k2">}</span>
</div></div><p>

Main:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  6</span>    <span class="k2">}</span>
<span class="number">  7</span>    <span class="k1">if</span><span class="k2">(</span><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="k2">{</span>
<span class="number">  8</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k2">}</span>
<span class="number"> 11</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 14</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k2">}</span>
<span class="number"> 17</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k2">}</span>
<span class="number"> 21</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>
<span class="number"> 22</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 24</span>    <span class="k2">}</span>
<span class="number"> 25</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 26</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</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><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 30</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 32</span>  <span class="k2">}</span>
<span class="number"> 33</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 34</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 36</span>  <span class="k2">}</span>
<span class="number"> 37</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 39</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 41</span>    <span class="k2">}</span>
<span class="number"> 42</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 44</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 46</span>    <span class="k2">}</span>
<span class="number"> 47</span>
<span class="number"> 48</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>
<span class="number"> 50</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 52</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 53</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 54</span>    <span class="k2">}</span>
<span class="number"> 55</span>    <span class="c">//test();</span>
<span class="number"> 56</span>    <span class="c">//create_layers();</span>
<span class="number"> 57</span>    graphics<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 58</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 59</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>    sprites.push_back<span class="k2">(</span><a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 61</span>
<span class="number"> 62</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>
<span class="number"> 64</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 65</span>
<span class="number"> 66</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 67</span>
<span class="number"> 68</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 69</span>
<span class="number"> 70</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 71</span>
<span class="number"> 72</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 73</span>
<span class="number"> 74</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"> 75</span>
<span class="number"> 76</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 77</span>
<span class="number"> 78</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"> 79</span>
<span class="number"> 80</span>    main_loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 81</span>
<span class="number"> 82</span>    <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>sprites<span class="k2">[</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>frame<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 83</span>
<span class="number"> 84</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 85</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 04:23:49 +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/607476/920486#target">Jefferson Almeida</a> said:</div><div class="quote"><p>
Main loop :
</p><div class="source-code snippet"><div class="inner"><pre>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
              cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<div class="highlight">              frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></div>
              <span class="k1">break</span><span class="k2">;</span>
          <span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>
You&#39;re still mixing ALLEGRO_EVENT_KEY_DOWN with al_key_down, and you&#39;re not checking the bounds of your sprites vector when you modify &#39;frame&#39;.</p><p>Also, you&#39;re still converting your bitmap every time you draw it - only convert it once when you load it.</p><p>Você ainda está com a mistura ALLEGRO_EVENT_KEY_DOWN al_key_down, e você não está verificando os limites do seu vetor sprites quando você modifica &#39;frame&#39;.</p><p>Além disso, você ainda converter o bitmap de cada vez que desenhá-la - só convertê-lo uma vez quando você carregá-lo.</p><p>It might help simplify things if you tried out my basic animation class :<br /><a href="http://www.allegro.cc/forums/thread/607529/920236#target">animation class</a></p><p>Then your setup code would look like this :
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>   <span class="k1">const</span> <span class="k1">int</span> NUM_SPRITES <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  2</span>   <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> sprite_files<span class="k2">[</span>NUM_SPRITES<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  3</span>      <span class="s">"Sprites/FFT1/21.bmp"</span>,
<span class="number">  4</span>      <span class="s">"Sprites/FFT1/22.bmp"</span>,
<span class="number">  5</span>      <span class="s">"Sprites/FFT1/23.bmp"</span>
<span class="number">  6</span>   <span class="k2">}</span><span class="k2">;</span>
<span class="number">  7</span>
<span class="number">  8</span>   <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>      <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>         <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading %s\n"</span> , sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>         <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 13</span>      <span class="k2">}</span>
<span class="number"> 14</span>      <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp, <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">255</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="k2">;</span>
<span class="number"> 15</span>      sprites.push_back<span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>   <span class="k2">}</span>
<span class="number"> 17</span>
<span class="number"> 18</span>   Animation anime<span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>   <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 20</span>      anime.SetBitmap<span class="k2">(</span>i , sprites<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>   <span class="k2">}</span>
</div></div><p>

And you would use it like this :
</p><div class="source-code snippet"><div class="inner"><pre>   <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>
      anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
      redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
   <span class="k2">}</span>

<span class="c">//  ......</span>

   <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
      <a href="http://www.allegro.cc/manual/clear_to_color"><span class="a">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>
      anime.Draw<span class="k2">(</span>character_x , character_y<span class="k2">)</span><span class="k2">;</span>
      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
      redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
   <span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 07:52:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well... I&#39;m trying to use the animation class but I no have slightest idea where will every thing.<br />The setup code will inside of main?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 09:46:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, the setup code would go in main, after you initialize allegro and the image addon and create a display.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 10:08:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, again<br /><a href="http://www.allegro.cc/forums/thread/607529/920236#target">http://www.allegro.cc/forums/thread/607529/920236#target</a></p><div class="source-code snippet"><div class="inner"><pre>...
      <span class="k1">try</span> <span class="k2">{</span>
         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
      <span class="k2">}</span>
      <span class="k1">catch</span> <span class="k2">{</span>
         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
      <span class="k2">}</span>
      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
   <span class="k2">}</span>
...
</pre></div></div><p>
That would be &quot;catch(Animation) {...&quot; ?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 10:12:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, it should have been :
</p><div class="source-code snippet"><div class="inner"><pre>      <span class="k1">try</span> <span class="k2">{</span>
         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
      <span class="k2">}</span>
<div class="highlight">      <span class="k1">catch</span> <span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span></div>
         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
      <span class="k2">}</span>
      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 10:22:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Theoretically it would be something more or less so?</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">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   3</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   4</span>
<span class="number">   5</span>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">   6</span>
<span class="number">   7</span><span class="k1">class</span> Animation <span class="k2">{</span>
<span class="number">   8</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">   9</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">  10</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  11</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number">  12</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number">  13</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  14</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number">  15</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number">  16</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  17</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  18</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  19</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  20</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  21</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number">  22</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number">  23</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  24</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  25</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  26</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  27</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  28</span>   <span class="k2">{</span>
<span class="number">  29</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>   <span class="k2">}</span>
<span class="number">  31</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  32</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  33</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  34</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  35</span>   <span class="k2">}</span>
<span class="number">  36</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  37</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  38</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  39</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number">  41</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  43</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number">  44</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number">  45</span>      <span class="k2">}</span>
<span class="number">  46</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  47</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  48</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  49</span>      <span class="k2">}</span>
<span class="number">  50</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number">  51</span>   <span class="k2">}</span>
<span class="number">  52</span>
<span class="number">  53</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  54</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number">  56</span>   <span class="k2">}</span>
<span class="number">  57</span>
<span class="number">  58</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  59</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>   <span class="k2">}</span>
<span class="number">  61</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  62</span>      <span class="c">// simple forward repeating animation</span>
<span class="number">  63</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number">  64</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  65</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  66</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number">  68</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  69</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  70</span>   <span class="k2">}</span>
<span class="number">  71</span>
<span class="number">  72</span>   <span class="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> cx , <span class="k1">int</span> cy<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  73</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span> , cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>   <span class="k2">}</span>
<span class="number">  75</span>
<span class="number">  76</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  77</span>
<span class="number">  78</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  79</span><span class="k2">{</span>
<span class="number">  80</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  81</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  83</span>    <span class="k2">}</span>
<span class="number">  84</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  85</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  87</span>    <span class="k2">}</span>
<span class="number">  88</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  91</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  93</span>    <span class="k2">}</span>
<span class="number">  94</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  95</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  97</span>    <span class="k2">}</span>
<span class="number">  98</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>
<span class="number">  99</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 101</span>    <span class="k2">}</span>
<span class="number"> 102</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 103</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 104</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 105</span>  <span class="k2">}</span>
<span class="number"> 106</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 107</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 109</span>  <span class="k2">}</span>
<span class="number"> 110</span>   <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 111</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 113</span>  <span class="k2">}</span>
<span class="number"> 114</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 116</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k2">}</span>
<span class="number"> 119</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 121</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 123</span>    <span class="k2">}</span>
<span class="number"> 124</span>
<span class="number"> 125</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>
<span class="number"> 127</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 129</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 131</span>    <span class="k2">}</span>
<span class="number"> 132</span>
<span class="number"> 133</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>
<span class="number"> 135</span>    <span class="k1">const</span> <span class="k1">int</span> NUM_SPRITES <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 136</span>    <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> sprite_files<span class="k2">[</span>NUM_SPRITES<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number"> 137</span>      <span class="s">"Sprites/FFT1/21.bmp"</span>,
<span class="number"> 138</span>      <span class="s">"Sprites/FFT1/22.bmp"</span>,
<span class="number"> 139</span>      <span class="s">"Sprites/FFT1/23.bmp"</span>
<span class="number"> 140</span>    <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 141</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 142</span>       <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 143</span>       <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 144</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading %s\n"</span> , sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>           <span class="k1">return</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 146</span>       <span class="k2">}</span>
<span class="number"> 147</span>       <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp, <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">255</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="k2">;</span>
<span class="number"> 148</span>       sprites.push_back<span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 149</span>    <span class="k2">}</span>
<span class="number"> 150</span>    Animation anime<span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 151</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 152</span>        anime.SetBitmap<span class="k2">(</span>i , sprites<span class="k2">[</span>i<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>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 156</span>
<span class="number"> 157</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>
<span class="number"> 159</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 160</span>
<span class="number"> 161</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</span>
<span class="number"> 163</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 164</span>
<span class="number"> 165</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"> 166</span>
<span class="number"> 167</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 168</span>
<span class="number"> 169</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"> 170</span>
<span class="number"> 171</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"> 172</span>    <span class="k1">bool</span> redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 173</span>    <span class="k1">bool</span> doexit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 174</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k1">true</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 175</span>    <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 176</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 177</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"> 178</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"> 179</span>    <span class="k2">}</span>
<span class="number"> 180</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 181</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number"> 182</span>    <span class="k2">{</span>
<span class="number"> 183</span>      <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 184</span>        doexit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 185</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 186</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 187</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 188</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 189</span>              cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 190</span>              <span class="c">//frame++;</span>
<span class="number"> 191</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 192</span>          <span class="k2">}</span>
<span class="number"> 193</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 194</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 195</span>                        cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 196</span>                        <span class="c">//frame++;</span>
<span class="number"> 197</span>                        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 198</span>          <span class="k2">}</span>
<span class="number"> 199</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 200</span>              cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 201</span>              cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 202</span>              <span class="c">//frame++;</span>
<span class="number"> 203</span>              <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 204</span>          <span class="k2">}</span>
<span class="number"> 205</span>                    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 206</span>              cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 207</span>              cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 208</span>              <span class="c">//frame++;</span>
<span class="number"> 209</span>                        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 210</span>          <span class="k2">}</span>
<span class="number"> 211</span>                    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 212</span>              <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">200</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 213</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"> 214</span>          <span class="k2">}</span>
<span class="number"> 215</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 216</span>                        doexit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 217</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 218</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 219</span>          <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span>
<span class="number"> 220</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 221</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span>
<span class="number"> 222</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 223</span>          <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 224</span>            doexit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 225</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 226</span>      <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 227</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"> 228</span>                        anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 229</span>                        redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 230</span>                    <span class="k2">}</span>
<span class="number"> 231</span>                    <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 232</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"> 233</span>                        anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 234</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"> 235</span>                        redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 236</span>                    <span class="k2">}</span>
<span class="number"> 237</span>
<span class="number"> 238</span>    <span class="k2">}</span>
<span class="number"> 239</span>    <span class="k2">}</span>
<span class="number"> 240</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 10:45:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Not quite - redraw goes outside of the event loop, and you shouldn&#39;t draw during your logic (you do it in the ALLEGRO_EVENT_KEY_CHAR check). Always separate logic from drawing.</p><p>Não é bem assim - redesenhar vai para fora do ciclo de eventos, e você não deve chamar durante a sua lógica (que fazê-lo na seleção ALLEGRO_EVENT_KEY_CHAR). Sempre lógica separada do desenho.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 10:59:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now is almost 04:00 in Brazil and I&#39;m totally lost, sleep will not let me think straight, I go to bed and when I wake up I try to solve it, thanks a lot!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 08 Jun 2011 11:36:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Let me know how it goes.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 08 Jun 2011 11:50:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here, my last code:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   2</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">   3</span>
<span class="number">   4</span>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">   5</span>
<span class="number">   6</span><span class="k1">class</span> Animation <span class="k2">{</span>
<span class="number">   7</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">   8</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">   9</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  10</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number">  11</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number">  12</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  13</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number">  14</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number">  15</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  16</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  17</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  18</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  19</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  20</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number">  21</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number">  22</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  23</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  24</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  25</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  26</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  27</span>   <span class="k2">{</span>
<span class="number">  28</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>   <span class="k2">}</span>
<span class="number">  30</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  31</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  32</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  33</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  34</span>   <span class="k2">}</span>
<span class="number">  35</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  36</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  37</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  38</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number">  40</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number">  43</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number">  44</span>      <span class="k2">}</span>
<span class="number">  45</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  46</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  47</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  48</span>      <span class="k2">}</span>
<span class="number">  49</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number">  50</span>   <span class="k2">}</span>
<span class="number">  51</span>
<span class="number">  52</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  53</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number">  55</span>   <span class="k2">}</span>
<span class="number">  56</span>
<span class="number">  57</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  58</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>   <span class="k2">}</span>
<span class="number">  60</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  61</span>      <span class="c">// simple forward repeating animation</span>
<span class="number">  62</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number">  63</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  64</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  65</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number">  67</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  68</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  69</span>   <span class="k2">}</span>
<span class="number">  70</span>
<span class="number">  71</span>   <span class="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> cx , <span class="k1">int</span> cy<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  72</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span> , cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>   <span class="k2">}</span>
<span class="number">  74</span>
<span class="number">  75</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  76</span>
<span class="number">  77</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">  78</span><span class="k2">{</span>
<span class="number">  79</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  80</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  82</span>    <span class="k2">}</span>
<span class="number">  83</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  84</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  86</span>    <span class="k2">}</span>
<span class="number">  87</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  88</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  90</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  92</span>    <span class="k2">}</span>
<span class="number">  93</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  94</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  96</span>    <span class="k2">}</span>
<span class="number">  97</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>
<span class="number">  98</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 100</span>    <span class="k2">}</span>
<span class="number"> 101</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 102</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 104</span>    <span class="k2">}</span>
<span class="number"> 105</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 106</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 108</span>    <span class="k2">}</span>
<span class="number"> 109</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 110</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 112</span>    <span class="k2">}</span>
<span class="number"> 113</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 114</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 115</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 117</span>    <span class="k2">}</span>
<span class="number"> 118</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 120</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 122</span>    <span class="k2">}</span>
<span class="number"> 123</span>
<span class="number"> 124</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>
<span class="number"> 126</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 128</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 130</span>    <span class="k2">}</span>
<span class="number"> 131</span>
<span class="number"> 132</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>
<span class="number"> 134</span>    <span class="k1">const</span> <span class="k1">int</span> NUM_SPRITES <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 135</span>    <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> sprite_files<span class="k2">[</span>NUM_SPRITES<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number"> 136</span>      <span class="s">"Sprites/FFT1/21.bmp"</span>,
<span class="number"> 137</span>      <span class="s">"Sprites/FFT1/22.bmp"</span>,
<span class="number"> 138</span>      <span class="s">"Sprites/FFT1/23.bmp"</span>
<span class="number"> 139</span>    <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 140</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 141</span>       <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>       <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 143</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading %s\n"</span> , sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 144</span>           <span class="k1">return</span> <span class="k3">-</span><span class="n">1</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_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp, <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">255</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="k2">;</span>
<span class="number"> 147</span>       sprites.push_back<span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>    <span class="k2">}</span>
<span class="number"> 149</span>    Animation anime<span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 151</span>        anime.SetBitmap<span class="k2">(</span>i , sprites<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</span>    <span class="k2">}</span>
<span class="number"> 153</span>
<span class="number"> 154</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 155</span>
<span class="number"> 156</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 157</span>
<span class="number"> 158</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>
<span class="number"> 160</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 161</span>
<span class="number"> 162</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 163</span>
<span class="number"> 164</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"> 165</span>
<span class="number"> 166</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 167</span>
<span class="number"> 168</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"> 169</span>
<span class="number"> 170</span>    <span class="k1">bool</span> redraw<span class="k2">;</span>
<span class="number"> 171</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number"> 172</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"> 173</span>        <span class="k1">if</span><span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 174</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"> 175</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 176</span>            <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 177</span>        <span class="k2">}</span>
<span class="number"> 178</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"> 179</span>        redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 180</span>    <span class="k2">}</span>
<span class="number"> 181</span>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 182</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"> 183</span>        <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 184</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 185</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"> 186</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"> 187</span>    <span class="k2">}</span>
<span class="number"> 188</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number"> 190</span>    <span class="k2">{</span>
<span class="number"> 191</span>        <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 192</span>             quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 193</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 194</span>        <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 195</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 196</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 197</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 198</span>                    <span class="c">//frame++;</span>
<span class="number"> 199</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 200</span>                <span class="k2">}</span>
<span class="number"> 201</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 202</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 203</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 204</span>                    <span class="c">//frame++;</span>
<span class="number"> 205</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 206</span>                <span class="k2">}</span>
<span class="number"> 207</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 208</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 209</span>                    cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 210</span>                    <span class="c">//frame++;</span>
<span class="number"> 211</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 212</span>                <span class="k2">}</span>
<span class="number"> 213</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 214</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 215</span>                    cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 216</span>                    <span class="c">//frame++;</span>
<span class="number"> 217</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 218</span>                <span class="k2">}</span>
<span class="number"> 219</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 220</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">200</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 221</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"> 222</span>                <span class="k2">}</span>
<span class="number"> 223</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 224</span>                     quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 225</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 226</span>        <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 227</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 228</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 229</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 230</span>                    <span class="c">//frame++;</span>
<span class="number"> 231</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 232</span>                <span class="k2">}</span>
<span class="number"> 233</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 234</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 235</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 236</span>                    <span class="c">//frame++;</span>
<span class="number"> 237</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 238</span>                <span class="k2">}</span>
<span class="number"> 239</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</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"> 240</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 241</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 242</span>                <span class="k2">}</span>
<span class="number"> 243</span>        <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 244</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"> 245</span>                    anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 246</span>                    redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 247</span>                <span class="k2">}</span>
<span class="number"> 248</span>            <span class="k2">}</span>
<span class="number"> 249</span>        <span class="k2">}</span>
<span class="number"> 250</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 251</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Thu, 09 Jun 2011 00:36:31 +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/607476/920661#target">Jefferson Almeida</a> 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><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
        <span class="k1">if</span><span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<div class="highlight">            <span class="k1">break</span><span class="k2">;</span></div>
        <span class="k2">}</span>
        <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
        redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
    <span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

Without that break statement, you will be stuck in that loop forever, because quit is always false. With the break statement, you only clear the screen and draw the animation, but don&#39;t flip the display.</p><p>Your drawing code goes inside your game loop.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 09 Jun 2011 05:11:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>@@&quot;</p><p>edit1: So I do not need to do a &quot;if(redraw)..&quot; ?</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="k2">;</span>
<span class="number">  2</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number">  3</span>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</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">  5</span>        <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</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">  8</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">  9</span>    <span class="k2">}</span>
<span class="number"> 10</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.type<span class="k2">)</span>
<span class="number"> 12</span>    <span class="k2">{</span>
<span class="number"> 13</span>        <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 14</span>             quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 15</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 17</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 19</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 20</span>                    <span class="c">//frame++;</span>
<span class="number"> 21</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 22</span>                <span class="k2">}</span>
<span class="number"> 23</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 24</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 25</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 26</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 27</span>                <span class="k2">}</span>
<span class="number"> 28</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 29</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 30</span>                    cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 31</span>                    <span class="c">//frame++;</span>
<span class="number"> 32</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 33</span>                <span class="k2">}</span>
<span class="number"> 34</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 35</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 36</span>                    cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 37</span>                    <span class="c">//frame++;</span>
<span class="number"> 38</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 39</span>                <span class="k2">}</span>
<span class="number"> 40</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 41</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">200</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</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"> 43</span>                <span class="k2">}</span>
<span class="number"> 44</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 45</span>                     quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 46</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 47</span>        <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 48</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 49</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 50</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 51</span>                    <span class="c">//frame++;</span>
<span class="number"> 52</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 53</span>                <span class="k2">}</span>
<span class="number"> 54</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 55</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 56</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 57</span>                    frame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 58</span>                    <span class="c">//sprites;</span>
<span class="number"> 59</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 60</span>                <span class="k2">}</span>
<span class="number"> 61</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</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"> 62</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 63</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 64</span>                <span class="k2">}</span>
<span class="number"> 65</span>        <span class="k1">case</span> ALLEGRO_EVENT_TIMER:
<span class="number"> 66</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"> 67</span>                    anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 68</span>                    redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 69</span>                <span class="k2">}</span>
<span class="number"> 70</span>            <span class="k2">}</span>
<span class="number"> 71</span>        <span class="k2">}</span>
<span class="number"> 72</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 73</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Thu, 09 Jun 2011 08:13:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You don&#39;t have to use a redraw flag, but it makes it clearer. Also, it probably looks better if you only redraw when the timer goes off.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 09 Jun 2011 11:05:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The part of animation is correct?</p><p>Edit 1: I can to put the &quot;event timer&quot; and then redraw or is better I to put the timer in a &quot;case&quot; in the end?</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="k2">;</span>
<span class="number">  2</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number">  3</span>    <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  4</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">  5</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">  6</span>            anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>            redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  8</span>        <span class="k2">}</span>
<span class="number">  9</span>        <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 10</span>            <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">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"> 11</span>            anime.Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</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"> 13</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 14</span>        <span class="k2">}</span>
<span class="number"> 15</span>        <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue, <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>        <span class="k1">switch</span><span class="k2">(</span>ev.type<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>            <span class="k1">case</span> ALLEGRO_EVENT_DISPLAY_CLOSE:
<span class="number"> 18</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 19</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 20</span>            <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 21</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 22</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 23</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 24</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 25</span>                <span class="k2">}</span>
<span class="number"> 26</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 27</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 28</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 29</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 30</span>                <span class="k2">}</span>
<span class="number"> 31</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 32</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 33</span>                    cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 34</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 35</span>                <span class="k2">}</span>
<span class="number"> 36</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 38</span>                    cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 39</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 40</span>                <span class="k2">}</span>
<span class="number"> 41</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 42</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">200</span>, <span class="n">100</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</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"> 44</span>                <span class="k2">}</span>
<span class="number"> 45</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 46</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 47</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 48</span>            <span class="k1">case</span> ALLEGRO_EVENT_KEY_CHAR:
<span class="number"> 49</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 50</span>                    cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 51</span>                    cy <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 52</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 53</span>                <span class="k2">}</span>
<span class="number"> 54</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 55</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 56</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 57</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 58</span>                <span class="k2">}</span>
<span class="number"> 59</span>                <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_ESCAPE<span class="k2">)</span>
<span class="number"> 60</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 61</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 62</span>            <span class="c">//case ALLEGRO_EVENT_TIMER:</span>
<span class="number"> 63</span>              <span class="c">//if (ev.type == ALLEGRO_EVENT_TIMER) {</span>
<span class="number"> 64</span>                  <span class="c">//anime.AdvanceFrameTime(1.0/FPS);</span>
<span class="number"> 65</span>                  <span class="c">//redraw = true;</span>
<span class="number"> 66</span>                  <span class="c">//break;</span>
<span class="number"> 67</span>               <span class="c">//}</span>
<span class="number"> 68</span>            <span class="k2">}</span>
<span class="number"> 69</span>        <span class="k2">}</span>
<span class="number"> 70</span>        <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 71</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Fri, 10 Jun 2011 02:15:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Game loop :
</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>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>   <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">(</span>
<span class="number">  3</span>      <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  4</span>      <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>      <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> BLAH<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>
<span class="number">  7</span>      <span class="k2">}</span>
<span class="number">  8</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>         anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>         redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 11</span>      <span class="k2">}</span>
<span class="number"> 12</span>      <span class="k1">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>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>         <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 14</span>      <span class="k2">}</span>
<span class="number"> 15</span>   <span class="k2">}</span>
<span class="number"> 16</span>   <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">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"> 18</span>      anime.Draw<span class="k2">(</span>x,y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 19</span>      <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>      redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 21</span>   <span class="k2">}</span>
<span class="number"> 22</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 10 Jun 2011 06:15:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Look: 
</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>quit<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  2</span>        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  3</span>            <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
<span class="number">  4</span>            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>            <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  6</span>                <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  7</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  8</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  9</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 10</span>                <span class="k2">}</span>
<span class="number"> 11</span>            <span class="k2">}</span>
<span class="number"> 12</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 13</span>                anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 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="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>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 17</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 18</span>            <span class="k2">}</span>
<span class="number"> 19</span>        <span class="k2">}</span>
<span class="number"> 20</span>        <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</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"> 22</span>            anime.Draw<span class="k2">(</span>cx,cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</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"> 24</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 25</span>        <span class="k2">}</span>
<span class="number"> 26</span>    <span class="k2">}</span>
<span class="number"> 27</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Fri, 10 Jun 2011 08:53:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It looks fine to me.</p><p>So does it work or what?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 10 Jun 2011 09:18:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just to know if it was right =D<br />The animation I have to add anything ?</p><p>class of the another topic
</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">class</span> Animation <span class="k2">{</span>
<span class="number">  2</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">  3</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">  4</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number">  7</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  8</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number">  9</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 10</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 11</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 12</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 13</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 14</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 15</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 16</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 17</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 18</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 19</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 20</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 21</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 22</span>   <span class="k2">{</span>
<span class="number"> 23</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>   <span class="k2">}</span>
<span class="number"> 25</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 26</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 27</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 28</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 29</span>   <span class="k2">}</span>
<span class="number"> 30</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 31</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 32</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 33</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 34</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number"> 35</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 36</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 37</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number"> 38</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 39</span>      <span class="k2">}</span>
<span class="number"> 40</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 41</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 42</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 43</span>      <span class="k2">}</span>
<span class="number"> 44</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number"> 45</span>   <span class="k2">}</span>
<span class="number"> 46</span>
<span class="number"> 47</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 48</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number"> 50</span>   <span class="k2">}</span>
<span class="number"> 51</span>
<span class="number"> 52</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 53</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>   <span class="k2">}</span>
<span class="number"> 55</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 56</span>      <span class="c">// simple forward repeating animation</span>
<span class="number"> 57</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number"> 58</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 59</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 60</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 61</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number"> 62</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 63</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 64</span>   <span class="k2">}</span>
<span class="number"> 65</span>
<span class="number"> 66</span>   <span class="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> cx , <span class="k1">int</span> cy<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 67</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span> , cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 68</span>   <span class="k2">}</span>
<span class="number"> 69</span>
<span class="number"> 70</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

code that I put in the main!
</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">const</span> <span class="k1">int</span> NUM_SPRITES <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  3</span>    <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> sprite_files<span class="k2">[</span>NUM_SPRITES<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  4</span>      <span class="s">"Sprites/FFT1/21.bmp"</span>,
<span class="number">  5</span>      <span class="s">"Sprites/FFT1/22.bmp"</span>,
<span class="number">  6</span>      <span class="s">"Sprites/FFT1/23.bmp"</span>
<span class="number">  7</span>    <span class="k2">}</span><span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>       <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>       <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading %s\n"</span> , sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 12</span>           <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 13</span>       <span class="k2">}</span>
<span class="number"> 14</span>       <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp, <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">255</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="k2">;</span>
<span class="number"> 15</span>       sprites.push_back<span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>    <span class="k2">}</span>
<span class="number"> 17</span>    Animation anime<span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 19</span>        anime.SetBitmap<span class="k2">(</span>i , sprites<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 20</span>    <span class="k2">}</span>
<span class="number"> 21</span>...
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Fri, 10 Jun 2011 10:04:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It still looks fine - does it work or not?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 10 Jun 2011 10:17:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, sorry for delay... I was trying to discover before to ask help!<br />yeah, My animation no work!</p><p>Edit1: Oddly enough... rs... I think this time the indentation are totally right. o_O&quot;</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">int</span> cx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  3</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  4</span><span class="k1">float</span> frame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  5</span>std::vector<span class="k3">&lt;</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">&gt;</span> sprites<span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">class</span> Animation <span class="k2">{</span>
<span class="number">  8</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">  9</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number"> 10</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number"> 11</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number"> 12</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number"> 13</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number"> 14</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number"> 15</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 16</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 17</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 18</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 19</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 20</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 21</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 22</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 23</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 24</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 25</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 26</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 27</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 28</span>   <span class="k2">{</span>
<span class="number"> 29</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>   <span class="k2">}</span>
<span class="number"> 31</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 32</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 33</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 34</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 35</span>   <span class="k2">}</span>
<span class="number"> 36</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 37</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 38</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 39</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number"> 41</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 42</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 43</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number"> 44</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 45</span>      <span class="k2">}</span>
<span class="number"> 46</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 47</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 48</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 49</span>      <span class="k2">}</span>
<span class="number"> 50</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number"> 51</span>   <span class="k2">}</span>
<span class="number"> 52</span>
<span class="number"> 53</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 54</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number"> 56</span>   <span class="k2">}</span>
<span class="number"> 57</span>
<span class="number"> 58</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 59</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 60</span>   <span class="k2">}</span>
<span class="number"> 61</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 62</span>      <span class="c">// simple forward repeating animation</span>
<span class="number"> 63</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number"> 64</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 65</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 66</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 67</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number"> 68</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 69</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 70</span>   <span class="k2">}</span>
<span class="number"> 71</span>
<span class="number"> 72</span>   <span class="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> cx , <span class="k1">int</span> cy<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 73</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span> , cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 74</span>   <span class="k2">}</span>
<span class="number"> 75</span>
<span class="number"> 76</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

Main:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc , <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span>
<span class="number">   2</span><span class="k2">{</span>
<span class="number">   3</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">   4</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed al_init"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   5</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">   6</span>    <span class="k2">}</span>
<span class="number">   7</span>    <span class="k1">if</span><span class="k2">(</span><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="k2">{</span>
<span class="number">   8</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Addon primitives!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  10</span>    <span class="k2">}</span>
<span class="number">  11</span>    <a href="http://www.allegro.cc/manual/al_init_font_addon"><span class="a">al_init_font_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span>    <a href="http://www.allegro.cc/manual/al_init_ttf_addon"><span class="a">al_init_ttf_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  14</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Image addon!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  16</span>    <span class="k2">}</span>
<span class="number">  17</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  18</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Mouse!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  20</span>    <span class="k2">}</span>
<span class="number">  21</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>
<span class="number">  22</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to initialize Keyboard!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  24</span>    <span class="k2">}</span>
<span class="number">  25</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_audio"><span class="a">al_install_audio</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  26</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</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><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_acodec_addon"><span class="a">al_init_acodec_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  30</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to initialize audio codecs!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  32</span>    <span class="k2">}</span>
<span class="number">  33</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_reserve_samples"><span class="a">al_reserve_samples</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  34</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"failed to reserve samples!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  36</span>    <span class="k2">}</span>
<span class="number">  37</span>    timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  39</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to created timer!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  41</span>    <span class="k2">}</span>
<span class="number">  42</span>    <a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"DejaVuSans.ttf"</span>, <span class="n">15</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  44</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load font!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  46</span>    <span class="k2">}</span>
<span class="number">  47</span>
<span class="number">  48</span>    <a href="http://www.allegro.cc/manual/al_set_target_bitmap"><span class="a">al_set_target_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_get_backbuffer"><span class="a">al_get_backbuffer</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>
<span class="number">  50</span>    event_queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>event_queue<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  52</span>       <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to create event_queue!\n"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>       <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  54</span>    <span class="k2">}</span>
<span class="number">  55</span>
<span class="number">  56</span>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</span>    <span class="k1">const</span> <span class="k1">int</span> NUM_SPRITES <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number">  59</span>    <span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span> sprite_files<span class="k2">[</span>NUM_SPRITES<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span>
<span class="number">  60</span>      <span class="s">"Sprites/FFT1/21.bmp"</span>,
<span class="number">  61</span>      <span class="s">"Sprites/FFT1/22.bmp"</span>,
<span class="number">  62</span>      <span class="s">"Sprites/FFT1/23.bmp"</span>
<span class="number">  63</span>    <span class="k2">}</span><span class="k2">;</span>
<span class="number">  64</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  65</span>       <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>       <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  67</span>           <a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"Error loading %s\n"</span> , sprite_files<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>           <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  69</span>       <span class="k2">}</span>
<span class="number">  70</span>       <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp, <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">255</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="k2">;</span>
<span class="number">  71</span>       sprites.push_back<span class="k2">(</span>bmp<span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>    <span class="k2">}</span>
<span class="number">  73</span>    Animation anime<span class="k2">(</span>sprites.size<span class="k2">(</span><span class="k2">)</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUM_SPRITES <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  75</span>        anime.SetBitmap<span class="k2">(</span>i , sprites<span class="k2">[</span>i<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>    <span class="k2">}</span>
<span class="number">  77</span>
<span class="number">  78</span>    <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>sample, <span class="n">1</span>.<span class="n">0</span>, <span class="n">0</span>.<span class="n">0</span>,<span class="n">1</span>.<span class="n">0</span>,ALLEGRO_PLAYMODE_LOOP,NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>
<span class="number">  82</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</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>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>
<span class="number">  86</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</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">  89</span>
<span class="number">  90</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</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">  93</span>
<span class="number">  94</span>    <span class="k1">bool</span> redraw<span class="k2">;</span>
<span class="number">  95</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number">  96</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">  97</span>        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  98</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">  99</span>            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</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="k2">)</span> <span class="k2">{</span>
<span class="number"> 101</span>                <span class="k1">if</span><span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 102</span>                    cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 103</span>                    cy <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 104</span>                    <span class="c">//frame++;</span>
<span class="number"> 105</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 106</span>                <span class="k2">}</span>
<span class="number"> 107</span>            <span class="k2">}</span>
<span class="number"> 108</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 109</span>                anime.AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>                redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 111</span>            <span class="k2">}</span>
<span class="number"> 112</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>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 113</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 114</span>            <span class="k2">}</span>
<span class="number"> 115</span>        <span class="k2">}</span>
<span class="number"> 116</span>        <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 117</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"> 118</span>            anime.Draw<span class="k2">(</span>cx,cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</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"> 120</span>            redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 121</span>        <span class="k2">}</span>
<span class="number"> 122</span>    <span class="k2">}</span>
<span class="number"> 123</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Fri, 10 Jun 2011 11:26:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry, there was a bug in the frame setting code in SetFrameTime. This version should work properly. Just replace the old class with this one.</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">class</span> Animation <span class="k2">{</span>
<span class="number">  3</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">  4</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number">  7</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number">  8</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  9</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number"> 10</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 11</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 12</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 13</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 14</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 15</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 16</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 17</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number"> 18</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 19</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 20</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 21</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 22</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 23</span>   <span class="k2">{</span>
<span class="number"> 24</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>   <span class="k2">}</span>
<span class="number"> 26</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 27</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 28</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 29</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 30</span>   <span class="k2">}</span>
<span class="number"> 31</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 32</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 33</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 34</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 35</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number"> 36</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 37</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 38</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number"> 39</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 40</span>      <span class="k2">}</span>
<span class="number"> 41</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 42</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 43</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 44</span>      <span class="k2">}</span>
<span class="number"> 45</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number"> 46</span>      <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 47</span>   <span class="k2">}</span>
<span class="number"> 48</span>
<span class="number"> 49</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 50</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number"> 52</span>   <span class="k2">}</span>
<span class="number"> 53</span>
<span class="number"> 54</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 55</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>   <span class="k2">}</span>
<span class="number"> 57</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 58</span>      <span class="c">// simple forward repeating animation</span>
<span class="number"> 59</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number"> 60</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 61</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 62</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>num_frames<span class="k3">*</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 63</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number"> 64</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 65</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</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="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> x , <span class="k1">int</span> y<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 69</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span> , x , y , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 70</span>   <span class="k2">}</span>
<span class="number"> 71</span>
<span class="number"> 72</span>   <span class="k1">double</span> FrameTime<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> time_passed<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 73</span>   <span class="k1">int</span> FrameNum<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> frame_number<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 74</span>
<span class="number"> 75</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

The bug was in SetFrameTime here :
</p><div class="source-code snippet"><div class="inner"><pre>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
      <span class="c">// simple forward repeating animation</span>
      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<div class="highlight">      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>num_frames<span class="k3">*</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></div>
      <span class="c">// shouldn't be necessary, but just in case</span>
      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <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>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</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 (Edgar Reynaldo)</author>
		<pubDate>Fri, 10 Jun 2011 12:02:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All your code seems (e.g. the &#39;sprite&#39; vector, the load function, etc) to be set on having just one sprite. What about other sprites in the game or different animations for the same sprite (e.g. moving left, right, jumping, etc).</p><p>What you should do is as well as having an animation class, have an animation manager class to store all your animations (I used a config file that stored each animation in a stl map so you could retrieve by namem this also means you don&#39;t hard code bitmap names into the executable).</p><p>Regarding the Animation class, in my animation I added a set of actions (e.g. pause, manual increment, frame based increment), a sprite step mode (i.e. what happens when you move from one frame to the next and/or get to the start/end) for example FORWARDONLY (first to last then stay at last from), BACKWARDONLY, FLIPFLOP (repeat forwards, backwards), REPEATFORWARD (at end go back to start) and a basic event (i.e. function pointer) to trigger when animation ends (handy for setting an action, like a dying animation then informing the system that the death throws are finished).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Fri, 10 Jun 2011 15:39:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi... no problem Edgar... Thanks a lot!</p><p>Hi Neil, thanks for tips, maybe I use: <a href="http://oi54.tinypic.com/2qjvxig.jpg">http://oi54.tinypic.com/2qjvxig.jpg</a> and al_create_sub_bitmap</p><p>Edit 1: I saw in the another topic an cool example, I made ​​a small correction!</p><p>I realize that this makes the image to animate in all positions, if I want my image to animate for each moviment, RIGHT, LEFT, UP, DOWN I had to do something similar and split into frames?<br />It would be an animation for each move?</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">class</span> Animation <span class="k2">{</span>
<span class="number">  2</span><span class="k1">protected</span> <span class="k2">:</span>
<span class="number">  3</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">  4</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  5</span>   <span class="k1">double</span> frames_per_sec<span class="k2">;</span>
<span class="number">  6</span>   <span class="k1">double</span> frametime<span class="k2">;</span>
<span class="number">  7</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  8</span>   <span class="k1">int</span> frame_num<span class="k2">;</span>
<span class="number">  9</span>   
<span class="number"> 10</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number"> 11</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> 
<span class="number"> 12</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 13</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 14</span>      frames_per_sec<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 15</span>      frametime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number"> 16</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number"> 17</span>      frame_num<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number"> 18</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number"> 19</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 22</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 23</span>         <span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>
<span class="number"> 24</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 25</span>      <span class="k2">}</span>
<span class="number"> 26</span>   <span class="k2">}</span>
<span class="number"> 27</span>
<span class="number"> 28</span>   <span class="k1">void</span> Setup<span class="k2">(</span><span class="k1">double</span> play_duration , <span class="k1">int</span> number_of_frames<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 29</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>number_of_frames <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>play_duration <span class="k3">&gt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span>      duration <span class="k3">=</span> play_duration<span class="k2">;</span>
<span class="number"> 33</span>      num_frames <span class="k3">=</span> number_of_frames<span class="k2">;</span>
<span class="number"> 34</span>      frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>num_frames<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 35</span>      frames_per_sec <span class="k3">=</span> <span class="k2">(</span><span class="k1">double</span><span class="k2">)</span>num_frames <span class="k3">/</span> duration<span class="k2">;</span>
<span class="number"> 36</span>      SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 37</span>   <span class="k2">}</span>
<span class="number"> 38</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 39</span>      SetFrameTime<span class="k2">(</span>frametime <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>   <span class="k2">}</span>
<span class="number"> 41</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> new_frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 42</span>      <span class="k1">while</span><span class="k2">(</span>new_frame_time <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>new_frame_time <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 43</span>      <span class="k1">while</span><span class="k2">(</span>new_frame_time <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>new_frame_time <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number"> 44</span>      frametime <span class="k3">=</span> new_frame_time<span class="k2">;</span>
<span class="number"> 45</span>      frame_num <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span>frametime<span class="k3">*</span>frames_per_sec<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 46</span>   <span class="k2">}</span>
<span class="number"> 47</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp, <span class="k1">int</span> frame_number<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 48</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>frames<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 49</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 50</span>      frames<span class="k2">[</span>frame_number<span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number"> 51</span>   <span class="k2">}</span>
<span class="number"> 52</span>   <span class="k1">void</span> Display<span class="k2">(</span><span class="k1">int</span> x , <span class="k1">int</span> y<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 53</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>frames<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 54</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span>frames<span class="k2">[</span>frame_num<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_num<span class="k2">]</span> , <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>x , <span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>y , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 56</span>   <span class="k2">}</span>
<span class="number"> 57</span>
<span class="number"> 58</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

</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">double</span> duration <span class="k3">=</span> <span class="n">10</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">int</span> number_of_frames <span class="k3">=</span> <span class="n">40</span><span class="k2">;</span>
<span class="number">  3</span>Animation anime<span class="k2">;</span>
<span class="number">  4</span>anime.Setup<span class="k2">(</span>duration , number_of_frames<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"player.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span><span class="c">//converts the sprite sheet's magenta background to transparent pixels al_convert_mask_to_alpha(bmp, (al_map_rgb(255, 0, 255)));</span>
<span class="number">  8</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  9</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp_array<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 10</span><span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">8</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 11</span>   <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</span>     <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 13</span>     bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sub_bitmap"><span class="a">al_create_sub_bitmap</span></a><span class="k2">(</span>bmp, <span class="n">32</span><span class="k3">*</span>x, <span class="n">32</span><span class="k3">*</span>y, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>      anime.SetBitmap<span class="k2">(</span>bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> , i<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>      <span class="k3">+</span><span class="k3">+</span>i<span class="k2">;</span>
<span class="number"> 16</span>   <span class="k2">}</span>
<span class="number"> 17</span><span class="k2">}</span>
<span class="number"> 18</span>
<span class="number"> 19</span><span class="c">// Event loop</span>
<span class="number"> 20</span>   <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 21</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"> 22</span>      <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</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"> 24</span>         anime.AdvanceFrameTime<span class="k2">(</span>SECONDS_PER_TICK<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>         redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 26</span>      <span class="k2">}</span>
<span class="number"> 27</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>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">break</span><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>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 30</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"> 31</span>      anime.Draw<span class="k2">(</span><span class="n">400</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>bmp<span class="k2">)</span><span class="k3">/</span><span class="n">2</span> , <span class="n">300</span> <span class="k3">-</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>bmp<span class="k2">)</span><span class="k3">/</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</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"> 33</span>   <span class="k2">}</span>
<span class="number"> 34</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Sat, 11 Jun 2011 01:01:11 +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/607476/920896#target">Jefferson Almeida</a> said:</div><div class="quote"><p>
I realize that this makes the image to animate in all positions, if I want my image to animate for each moviment, RIGHT, LEFT, UP, DOWN I had to do something similar and split into frames?<br />It would be an animation for each move?
</p></div></div><p>
Yes, there would be a separate animation for each.</p><div class="quote_container"><div class="title">Jefferson Almeida said:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp_array<span class="k2">[</span><span class="n">40</span><span class="k2">]</span><span class="k2">;</span>
<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">8</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
   <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<div class="highlight">     <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">;</span></div>
     bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sub_bitmap"><span class="a">al_create_sub_bitmap</span></a><span class="k2">(</span>bmp, <span class="n">32</span><span class="k3">*</span>x, <span class="n">32</span><span class="k3">*</span>y, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span>
      anime.SetBitmap<span class="k2">(</span>bmp_array<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> , i<span class="k2">)</span><span class="k2">;</span>
      <span class="k3">+</span><span class="k3">+</span>i<span class="k2">;</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

That is not good coding. You&#39;ve declared a shadowed variable named bmp_array, and you are assigning the bitmaps to the local bmp_array, not the bmp_array you declared on the first line. That means every sub bitmap created there will be leaked, because the Animation class does not destroy the ALLEGRO_BITMAP*&#39;s that it holds. If you&#39;re using MinGW as your compiler, then you should add the compiler flag -Wshadow to your compilation command. It will tell you when you are shadowing (creating more than one variable with the same name) variables.</p><p>Isso não é bom de codificação. Você declarou uma variável chamada bmp_array sombra, e você atribuir o bitmaps para o bmp_array local, não a bmp_array você declarou na primeira linha. Isso significa que cada sub bitmap criado haverá vazamento, porque a classe Animação não é destruir o * ALLEGRO_BITMAP &#39;que detém. Se você estiver usando MinGW como seu compilador, então você deve adicionar o compilador bandeira Wshadow para o comando de compilação. Ele lhe dirá quando você está sombreamento (criando mais de uma variável com o mesmo nome) variáveis.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 11 Jun 2011 09:19:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I saw this code this topic: <a href="http://www.allegro.cc/forums/thread/607037/913972#target">http://www.allegro.cc/forums/thread/607037/913972#target</a></p><p>I stayed curious to see but do not compiled... so I put this way with the leaked just to see.</p><p>I&#39;m trying to do of way that I can to have the animations for all movements for when a key is pressed.<br />I do not know if is better to have all movements in just one image or have all images apart.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Sat, 11 Jun 2011 09:57:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you&#39;re going to use my Animation class, you need to have a separate Animation for each movement of the character - one for left, right, up, down. The Animation class is currently not copy-able, so you can&#39;t store it directly in a map, but you could use a map of pointers :
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;map&gt;</span>
<span class="number">  2</span><span class="k1">using</span> std::map<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  5</span><span class="k1">using</span> std::string<span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">enum</span> KEYS <span class="k2">{</span>
<span class="number">  8</span>   LEFT <span class="k3">=</span> <span class="n">0</span>,
<span class="number">  9</span>   RIGHT <span class="k3">=</span> <span class="n">1</span>,
<span class="number"> 10</span>   UP <span class="k3">=</span> <span class="n">2</span>,
<span class="number"> 11</span>   DOWN <span class="k3">=</span> <span class="n">3</span>,
<span class="number"> 12</span>   NUMKEYS <span class="k3">=</span> <span class="n">4</span>
<span class="number"> 13</span><span class="k2">}</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>NUMKEYS<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 16</span><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUMKEYS <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 17</span>
<span class="number"> 18</span><span class="c">// in main</span>
<span class="number"> 19</span>Animation anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 20</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span><span class="c">// load bitmaps and use SetBitmap</span>
<span class="number"> 22</span>
<span class="number"> 23</span>map<span class="k3">&lt;</span>string , Animation<span class="k3">*</span><span class="k3">&gt;</span> amap<span class="k2">;</span>
<span class="number"> 24</span>amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 28</span>
<span class="number"> 29</span>Animation<span class="k3">*</span> current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span><span class="c">// in logic</span>
<span class="number"> 32</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="k2">)</span> <span class="k2">{</span>
<span class="number"> 33</span>   <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 34</span>      current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 35</span>      current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>      <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 37</span>   <span class="k2">}</span>
<span class="number"> 38</span><span class="k2">}</span>
<span class="number"> 39</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_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 40</span>   <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 41</span>      <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 42</span>   <span class="k2">}</span>
<span class="number"> 43</span><span class="k2">}</span>
<span class="number"> 44</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 45</span>   <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 46</span>      current-&gt;AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 48</span>         cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 49</span>      <span class="k2">}</span>
<span class="number"> 50</span>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 51</span>         cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 52</span>      <span class="k2">}</span>
<span class="number"> 53</span>   <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 54</span>      current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 55</span>   <span class="k2">}</span>
<span class="number"> 56</span>   redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 57</span><span class="k2">}</span>
</div></div><p>

This is just an example, but it should show you how to switch between animations, and only update the animation when you are moving.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sat, 11 Jun 2011 10:52:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hello, to use &quot;SetBitmap&quot; he needs a member, which I use, already there is:<br />Anime animation [4];<br />Anime [0]. reallocate (3, 3.0);
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Sun, 12 Jun 2011 23:47:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>Animation anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"FFT_21.bmp"</span><span class="k2">)</span><span class="k2">;</span>
anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , bmp1<span class="k2">)</span><span class="k2">;</span>

<span class="c">// repeat for bitmaps 0-2</span>
<span class="c">// repeat for anime[0] thru anime[3]</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 12 Jun 2011 23:59:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This way?
</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>    Animation anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  3</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>    <span class="c">// load bitmaps and use SetBitmap</span>
<span class="number">  5</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/41.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  6</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/42.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/43.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bmp0 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmp1 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmp2<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  9</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load left images"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k2">}</span>
<span class="number"> 12</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp0, <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">255</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="k2">;</span>
<span class="number"> 13</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp1, <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">255</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="k2">;</span>
<span class="number"> 14</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmp2, <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">255</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="k2">;</span>
<span class="number"> 15</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , bmp0<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 16</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , bmp1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , bmp2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>   ...
</div></div><p>

Do I have to redraw?<br />Something like &quot;anime[0].Draw(cx, cy);&quot; ?<br />or the fact to be a &quot;current frame&quot; him redraw automatically!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Mon, 13 Jun 2011 06:53:56 +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>Animation<span class="k3">*</span> current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  2</span>
<span class="number">  3</span><span class="c">//...</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="c">// if moving left</span>
<span class="number">  6</span>current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span><span class="c">// if moving right</span>
<span class="number">  8</span>current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span><span class="c">// so on...</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 12</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"> 13</span>   current-&gt;Draw<span class="k2">(</span>cx , cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</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"> 15</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 13 Jun 2011 08:45:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi... I put this way and work! &quot;Since last post I just change &quot;anime.Draw(cx,cy)&quot; for &quot;current-&gt;Draw(cx, cy);&quot;</p><p>I just could not update the sprite at every turn, it updates after a long time the button pressed.</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>    display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">   3</span>
<span class="number">   4</span>    <span class="k1">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>NUMKEYS<span class="k2">]</span><span class="k2">;</span>
<span class="number">   5</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUMKEYS <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">   6</span>
<span class="number">   7</span>    Animation anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">   8</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">3</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  10</span>    <span class="c">// load bitmaps and use SetBitmap</span>
<span class="number">  11</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpl0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/41.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpl1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/42.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpl2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/43.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpr0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/21.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpr1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/22.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmpr2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/23.bmp"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bmpl0 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmpl1 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmpl2 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmpr0 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmpr1 <span class="k3">&amp;</span><span class="k3">&amp;</span> bmpr2<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  18</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load left and right images"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  20</span>    <span class="k2">}</span>
<span class="number">  21</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpl0, <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">255</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="k2">;</span>
<span class="number">  22</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpl1, <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">255</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="k2">;</span>
<span class="number">  23</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpl2, <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">255</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="k2">;</span>
<span class="number">  24</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpr0, <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">255</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="k2">;</span>
<span class="number">  25</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpr1, <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">255</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="k2">;</span>
<span class="number">  26</span>    <a href="http://www.allegro.cc/manual/al_convert_mask_to_alpha"><span class="a">al_convert_mask_to_alpha</span></a><span class="k2">(</span>bmpr2, <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">255</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="k2">;</span>
<span class="number">  27</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , bmpl0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , bmpl1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , bmpl2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , bmpr0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , bmpr1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , bmpr2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span>
<span class="number">  35</span>    map<span class="k3">&lt;</span>string , Animation<span class="k3">*</span><span class="k3">&gt;</span> amap<span class="k2">;</span>
<span class="number">  36</span>    amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>    amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>    amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>    amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span>    Animation<span class="k3">*</span> current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>
<span class="number">  49</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>
<span class="number">  51</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  52</span>
<span class="number">  53</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">  54</span>
<span class="number">  55</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number">  56</span>    <span class="k1">bool</span> redraw<span class="k2">;</span>
<span class="number">  57</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">  58</span>        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  59</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">  60</span>            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</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="k2">)</span> <span class="k2">{</span>
<span class="number">  62</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  63</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  64</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  65</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  66</span>                <span class="k2">}</span>
<span class="number">  67</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  68</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  69</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  71</span>                <span class="k2">}</span>
<span class="number">  72</span>            <span class="k2">}</span>
<span class="number">  73</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_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  74</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  75</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><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>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  78</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  79</span>                <span class="k2">}</span>
<span class="number">  80</span>            <span class="k2">}</span>
<span class="number">  81</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  82</span>                <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  83</span>                    current-&gt;AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  85</span>                        cx <span class="k3">-</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  86</span>                    <span class="k2">}</span>
<span class="number">  87</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  88</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  89</span>                    <span class="k2">}</span>
<span class="number">  90</span>                <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number">  91</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>                <span class="k2">}</span>
<span class="number">  93</span>                redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  94</span>            <span class="k2">}</span>
<span class="number">  95</span>            <span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  96</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">  97</span>                current-&gt;Draw<span class="k2">(</span>cx, cy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</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">  99</span>            <span class="k2">}</span>
<span class="number"> 100</span>        <span class="k2">}</span>
<span class="number"> 101</span>    <span class="k2">}</span>
<span class="number"> 102</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Mon, 13 Jun 2011 10:12:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your &#39;if (redraw)&#39; block should not be inside your &#39;while (1)&#39; loop.</p><p>You also need to break out of the &#39;while (1)&#39; loop when there are no more events, so you can redraw.</p><p><b>Edit</b><br />Actually, never mind what I just said. Your code looks like it should do what you want it to. It waits for an event, then processes it appropriately. One thing though - you never set redraw to false, so it redraws every time there is an event. Not really a problem though.</p><p>You can try shortening the duration of the animation :
</p><div class="source-code snippet"><div class="inner"><pre>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">3</span> , <span class="n">1</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 13 Jun 2011 11:05:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I changed for &quot;anime[0].Reallocate(4 , 0.1);&quot; and stayed a little better... Thanks a lot!</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">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>NUMKEYS<span class="k2">]</span><span class="k2">;</span>
<span class="number">   3</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUMKEYS <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">   4</span>
<span class="number">   5</span>    Animation anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">   6</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   7</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   8</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span>,  <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span>,  <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  10</span>    <span class="c">// load bitmaps and use SetBitmap</span>
<span class="number">  11</span>    <span class="c">/* Left Images */</span>
<span class="number">  12</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsol0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsol0.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsol1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsol1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  14</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsol2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsol2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsol3 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsol3.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span>    <span class="c">/* Right Images */</span>
<span class="number">  17</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsor0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsor0.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsor1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsor1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  19</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsor2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsor2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsor3 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsor3.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>    <span class="c">/* Up Images */</span>
<span class="number">  22</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsou0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsou0.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsou1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsou1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsou2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsou2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsou3 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsou3.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span>    <span class="c">/* Down Images */</span>
<span class="number">  27</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsod0 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsod0.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsod1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsod1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsod2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsod2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> aphonsod3 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"Sprites/FFT1/aphonsod3.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>aphonsol0 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsol1 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsol2 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsol3 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsor0 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsor1 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsor2 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsor3 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsou0 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsou1 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsou2 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsou3 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsod0 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsod1 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsod2 <span class="k3">&amp;</span><span class="k3">&amp;</span> aphonsod3<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  32</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>stderr, <span class="s">"Failed to load up, dowm, left and right images"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span>        <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  34</span>    <span class="k2">}</span>
<span class="number">  35</span>    <span class="c">//For clear the background images al_convert_mask_to_alpha(bmp, (al_map_rgb(255, 0, 255)));</span>
<span class="number">  36</span>    <span class="c">/* Left */</span>
<span class="number">  37</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsol0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsol1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsol2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsol3<span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span>    <span class="c">/* Right */</span>
<span class="number">  42</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsor0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsor1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsor2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsor3<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>    <span class="c">/* Up */</span>
<span class="number">  47</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsou0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  48</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsou1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  49</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsou2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsou3<span class="k2">)</span><span class="k2">;</span>
<span class="number">  51</span>    <span class="c">/* Down */</span>
<span class="number">  52</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsod0<span class="k2">)</span><span class="k2">;</span>
<span class="number">  53</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsod1<span class="k2">)</span><span class="k2">;</span>
<span class="number">  54</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsod2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsod3<span class="k2">)</span><span class="k2">;</span>
<span class="number">  56</span>
<span class="number">  57</span>    map<span class="k3">&lt;</span>string , Animation<span class="k3">*</span><span class="k3">&gt;</span> amap<span class="k2">;</span>
<span class="number">  58</span>    amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>    amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>    amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>    amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>
<span class="number">  63</span>    Animation<span class="k3">*</span> current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>
<span class="number">  65</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span>
<span class="number">  67</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>
<span class="number">  69</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>
<span class="number">  71</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>
<span class="number">  73</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</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">  76</span>
<span class="number">  77</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number">  78</span>    <span class="k1">bool</span> redraw<span class="k2">;</span>
<span class="number">  79</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">  80</span>        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  81</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">  82</span>            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</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="k2">)</span> <span class="k2">{</span>
<span class="number">  84</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  85</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  86</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  88</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  89</span>                <span class="k2">}</span>
<span class="number">  90</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  91</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  92</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  94</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number">  95</span>                <span class="k2">}</span>
<span class="number">  96</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  97</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  98</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 100</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 101</span>                <span class="k2">}</span>
<span class="number"> 102</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 103</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 104</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 106</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 107</span>                <span class="k2">}</span>
<span class="number"> 108</span>            <span class="k2">}</span>
<span class="number"> 109</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_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 110</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 111</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 112</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 113</span>                <span class="k2">}</span>
<span class="number"> 114</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 115</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 116</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 117</span>                <span class="k2">}</span>
<span class="number"> 118</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 119</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 120</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 121</span>                <span class="k2">}</span>
<span class="number"> 122</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 123</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 124</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 125</span>                <span class="k2">}</span>
<span class="number"> 126</span>            <span class="k2">}</span>
<span class="number"> 127</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 128</span>                <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 129</span>                    current-&gt;AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 131</span>                        cx <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 132</span>                        cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 133</span>                    <span class="k2">}</span>
<span class="number"> 134</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 135</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 136</span>                        cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 137</span>                    <span class="k2">}</span>
<span class="number"> 138</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 139</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 140</span>                        cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 141</span>                    <span class="k2">}</span>
<span class="number"> 142</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 143</span>                        cx <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 144</span>                        cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 145</span>                    <span class="k2">}</span>
<span class="number"> 146</span>                <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 147</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>                <span class="k2">}</span>
<span class="number"> 149</span>                redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 150</span>            <span class="k2">}</span>
<span class="number"> 151</span>            <span class="k1">if</span> <span class="k2">(</span>redraw<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>                current-&gt;Draw<span class="k2">(</span>cx, cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 154</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"> 155</span>                redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 156</span>            <span class="k2">}</span>
<span class="number"> 157</span>        <span class="k2">}</span>
<span class="number"> 158</span>    <span class="k2">}</span>
<span class="number"> 159</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>

Now I&#39;m beginning to do a isometric map with some tiles that I have!</p><p>Edit1: I can add my &quot;map_draw();&quot; in the &quot;if(redraw){&quot; or I have to create a class for him and to do it work with the &quot;current-&gt;&quot; ?</p><p>Edit2: Hi... I removed the &quot;if(redraw) {&quot; and add the &quot;if (al_event_queue_is_empty(event_queue)) {&quot; in your place for put the &quot;map_draw();&quot; , but I think this did not the right way!
</p><div class="source-code snippet"><div class="inner"><pre>    ...
    <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span> <span class="k2">{</span>
        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
            <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> ev<span class="k2">;</span>
            <span class="k1">if</span> <span class="k2">(</span>al_event_queue_is_empty<span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
                current-&gt;Draw<span class="k2">(</span>cx, cy<span class="k2">)</span><span class="k2">;</span>
                <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
                <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>
                map_draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
            <span class="k2">}</span>
            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
            <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
            ...
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 15 Jun 2011 02:39:15 +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/607476/921248#target">Jefferson Almeida</a> said:</div><div class="quote"><p>
Edit1: I can add my &quot;map_draw();&quot; in the &quot;if(redraw){&quot; or I have to create a class for him and to do it work with the &quot;current-&gt;&quot; ?
</p></div></div><p>
Yes, just add map_draw() to the &#39;if (redraw)&#39; block.</p><div class="quote_container"><div class="title">Jefferson Almeida said:</div><div class="quote"><p>
I removed the &quot;if(redraw) {&quot; and add the &quot;if (al_event_queue_is_empty(event_queue)) {&quot; in your place for put the &quot;map_draw();&quot; , but I think this did not the right way!
</p></div></div><p>
Think about it - do you want to redraw when the timer goes off, or do you want to redraw when the event queue has been fully processed?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 15 Jun 2011 05:26:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When I used the &quot;if(redraw) {&quot; and add &quot;map_draw();&quot; the movement of the character stayed with a imense lag.<br />map_draw(): <a href="http://oi51.tinypic.com/1zdywyo.jpg">http://oi51.tinypic.com/1zdywyo.jpg</a></p><p>I think with the time will to give bug!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Wed, 15 Jun 2011 08:30:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If the character movement is lagging behind, you are either not altering it&#39;s position often enough, or you are not redrawing enough.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/607476/921463#target">Jefferson Almeida</a> said:</div><div class="quote"><p>
I think with the time will to give bug!
</p></div></div><p>
What?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 15 Jun 2011 09:44:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi, I thought in to create an animation for the character when I press the key F1, but I remember  what has many positions: RIGHT, LEFT, UP...   has some event that check the last key press for I can to make the animation from him when not in motion.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;map&gt;</span>
<span class="number">   2</span><span class="k1">using</span> std::map<span class="k2">;</span>
<span class="number">   3</span>
<span class="number">   4</span><span class="p">#include &lt;string&gt;</span>
<span class="number">   5</span><span class="k1">using</span> std::string<span class="k2">;</span>
<span class="number">   6</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="c">/* Test */</span>
<span class="number">   9</span><span class="k1">int</span> cx <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  10</span><span class="k1">int</span> cy <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">class</span> Animation <span class="k2">{</span>
<span class="number">  15</span><span class="k1">private</span> <span class="k2">:</span>
<span class="number">  16</span>   <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k3">*</span> frames<span class="k2">;</span>
<span class="number">  17</span>   <span class="k1">double</span> duration<span class="k2">;</span>
<span class="number">  18</span>   <span class="k1">double</span> time_passed<span class="k2">;</span>
<span class="number">  19</span>   <span class="k1">int</span> frame_number<span class="k2">;</span>
<span class="number">  20</span>   <span class="k1">int</span> num_frames<span class="k2">;</span>
<span class="number">  21</span><span class="k1">public</span> <span class="k2">:</span>
<span class="number">  22</span>   Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span>
<span class="number">  23</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  24</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  25</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  26</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  27</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  28</span>   <span class="k2">{</span><span class="k2">}</span>
<span class="number">  29</span>   Animation<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">:</span>
<span class="number">  30</span>      frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  31</span>      duration<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  32</span>      time_passed<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>,
<span class="number">  33</span>      frame_number<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>,
<span class="number">  34</span>      num_frames<span class="k2">(</span><span class="n">0</span><span class="k2">)</span>
<span class="number">  35</span>   <span class="k2">{</span>
<span class="number">  36</span>      Reallocate<span class="k2">(</span>framecount , time_length<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span>   <span class="k2">}</span>
<span class="number">  38</span>   ~Animation<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  39</span>   <span class="k1">void</span> Free<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  40</span>      <span class="k1">if</span> <span class="k2">(</span>frames<span class="k2">)</span> <span class="k2">{</span><span class="k1">delete</span> <span class="k2">[</span><span class="k2">]</span> frames<span class="k2">;</span>frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  41</span>      num_frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span>   <span class="k2">}</span>
<span class="number">  43</span>   <span class="k1">bool</span> Reallocate<span class="k2">(</span><span class="k1">int</span> framecount , <span class="k1">double</span> time_length<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  44</span>      <span class="k1">if</span> <span class="k2">(</span>framecount <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  45</span>      <span class="k1">if</span> <span class="k2">(</span>time_length <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  46</span>      Free<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>      duration <span class="k3">=</span> time_length<span class="k2">;</span>
<span class="number">  48</span>      time_passed <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  49</span>      frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  50</span>      <span class="k1">try</span> <span class="k2">{</span>
<span class="number">  51</span>         frames <span class="k3">=</span> <span class="k1">new</span> <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span><span class="k2">[</span>framecount<span class="k2">]</span><span class="k2">;</span>
<span class="number">  52</span>      <span class="k2">}</span>
<span class="number">  53</span>      <span class="k1">catch</span><span class="k2">(</span>...<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  54</span>         frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  55</span>         <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  56</span>      <span class="k2">}</span>
<span class="number">  57</span>      num_frames <span class="k3">=</span> framecount<span class="k2">;</span>
<span class="number">  58</span>      <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  59</span>   <span class="k2">}</span>
<span class="number">  60</span>
<span class="number">  61</span>   <span class="k1">void</span> SetBitmap<span class="k2">(</span><span class="k1">int</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> , <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  62</span>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_48.html" target="_blank">assert</a><span class="k2">(</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a> <span class="k3">&lt;</span> num_frames<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>      frames<span class="k2">[</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_470.html" target="_blank">index</a><span class="k2">]</span> <span class="k3">=</span> bmp<span class="k2">;</span>
<span class="number">  64</span>   <span class="k2">}</span>
<span class="number">  65</span>
<span class="number">  66</span>   <span class="k1">void</span> AdvanceFrameTime<span class="k2">(</span><span class="k1">double</span> delta_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  67</span>      SetFrameTime<span class="k2">(</span>time_passed <span class="k3">+</span> delta_time<span class="k2">)</span><span class="k2">;</span>
<span class="number">  68</span>   <span class="k2">}</span>
<span class="number">  69</span>   <span class="k1">void</span> SetFrameTime<span class="k2">(</span><span class="k1">double</span> frame_time<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  70</span>      <span class="c">// simple forward repeating animation</span>
<span class="number">  71</span>      time_passed <span class="k3">=</span> frame_time<span class="k2">;</span>
<span class="number">  72</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&gt;</span><span class="k3">=</span> duration<span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">-</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  73</span>      <span class="k1">while</span> <span class="k2">(</span>time_passed <span class="k3">&lt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>time_passed <span class="k3">+</span><span class="k3">=</span> duration<span class="k2">;</span><span class="k2">}</span>
<span class="number">  74</span>      frame_number <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">(</span><span class="k2">(</span><span class="k1">float</span><span class="k2">)</span>num_frames<span class="k3">*</span><span class="k2">(</span>time_passed <span class="k3">/</span> duration<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>      <span class="c">// shouldn't be necessary, but just in case</span>
<span class="number">  76</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  77</span>      <span class="k1">if</span> <span class="k2">(</span>frame_number <span class="k3">&gt;</span><span class="k3">=</span> num_frames<span class="k2">)</span> <span class="k2">{</span>frame_number <span class="k3">=</span> num_frames <span class="k3">-</span> <span class="n">1</span><span class="k2">;</span><span class="k2">}</span>
<span class="number">  78</span>   <span class="k2">}</span>
<span class="number">  79</span>
<span class="number">  80</span>   <span class="k1">void</span> Draw<span class="k2">(</span><span class="k1">int</span> cx , <span class="k1">int</span> cy<span class="k2">)</span> <span class="k2">{</span>
<span class="number">  81</span>       <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>frames<span class="k2">[</span>frame_number<span class="k2">]</span>, cx , cy , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>   <span class="k2">}</span>
<span class="number">  83</span>
<span class="number">  84</span>   <span class="k1">double</span> FrameTime<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> time_passed<span class="k2">;</span><span class="k2">}</span>
<span class="number">  85</span>   <span class="k1">int</span> FrameNum<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span><span class="k1">return</span> frame_number<span class="k2">;</span><span class="k2">}</span>
<span class="number">  86</span>
<span class="number">  87</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  88</span>
<span class="number">  89</span><span class="k1">enum</span> KEYS <span class="k2">{</span>
<span class="number">  90</span>   LEFT <span class="k3">=</span> <span class="n">0</span>,
<span class="number">  91</span>   RIGHT <span class="k3">=</span> <span class="n">1</span>,
<span class="number">  92</span>   UP <span class="k3">=</span> <span class="n">2</span>,
<span class="number">  93</span>   DOWN <span class="k3">=</span> <span class="n">3</span>,
<span class="number">  94</span>   F1 <span class="k3">=</span> <span class="n">4</span>,
<span class="number">  95</span>   NUMKEYS <span class="k3">=</span> <span class="n">5</span>
<span class="number">  96</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  97</span>
<span class="number">  98</span>   <span class="c">// Here my main</span>
<span class="number">  99</span>      ...
<span class="number"> 100</span>
<span class="number"> 101</span>    <span class="k1">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>NUMKEYS<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 102</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span> <span class="k2">;</span> i <span class="k3">&lt;</span> NUMKEYS <span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span> <span class="k2">{</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span><span class="k2">}</span>
<span class="number"> 103</span>
<span class="number"> 104</span>    Animation anime<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 105</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>    anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span>.Reallocate<span class="k2">(</span><span class="n">4</span> , <span class="n">0</span>.<span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>    <span class="c">// Here Load images...  </span>
<span class="number"> 111</span>        ...
<span class="number"> 112</span>    <span class="c">// Here Setbitmap</span>
<span class="number"> 113</span>    <span class="c">/* Left */</span>
<span class="number"> 114</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsol0<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 115</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsol1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsol2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>    anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsol3<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="c">/* Right */</span>
<span class="number"> 119</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsor0<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsor1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsor2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>    anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsor3<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>    <span class="c">/* Up */</span>
<span class="number"> 124</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsou0<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsou1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsou2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>    anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsou3<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>    <span class="c">/* Down */</span>
<span class="number"> 129</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">0</span> , aphonsod0<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">1</span> , aphonsod1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 131</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">2</span> , aphonsod2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>    anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>.SetBitmap<span class="k2">(</span><span class="n">3</span> , aphonsod3<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>    <span class="c">/* F1 */</span>
<span class="number"> 134</span>    <span class="c">//anime[4].</span>
<span class="number"> 135</span>
<span class="number"> 136</span>    map<span class="k3">&lt;</span>string , Animation<span class="k3">*</span><span class="k3">&gt;</span> amap<span class="k2">;</span>
<span class="number"> 137</span>    amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">0</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>    amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>    amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>    amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>    amap<span class="k2">[</span><span class="s">"f1"</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 142</span>
<span class="number"> 143</span>    Animation<span class="k3">*</span> current <span class="k3">=</span> <span class="k3">&amp;</span><span class="k2">(</span>anime<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 144</span>
<span class="number"> 145</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 146</span>
<span class="number"> 147</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>
<span class="number"> 149</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 150</span>
<span class="number"> 151</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event_queue, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</span>
<span class="number"> 153</span>    <a href="http://www.allegro.cc/manual/al_get_timer_count"><span class="a">al_get_timer_count</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 154</span>
<span class="number"> 155</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"> 156</span>
<span class="number"> 157</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"> 158</span>
<span class="number"> 159</span>    <span class="k1">bool</span> quit<span class="k2">;</span>
<span class="number"> 160</span>    <span class="k1">bool</span> redraw<span class="k2">;</span>
<span class="number"> 161</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"> 162</span>        <span class="k1">while</span> <span class="k2">(</span><span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 163</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"> 164</span>            <span class="k1">if</span><span class="k2">(</span>redraw <span class="k3">&amp;</span><span class="k3">&amp;</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>event_queue<span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 165</span>                current-&gt;Draw<span class="k2">(</span>cx, cy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</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"> 167</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"> 168</span>                map_draw<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>                redraw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 170</span>            <span class="k2">}</span>
<span class="number"> 171</span>            <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>event_queue , <span class="k3">&amp;</span>ev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 172</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"> 173</span>                quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 174</span>                <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 175</span>            <span class="k2">}</span>
<span class="number"> 176</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="k2">)</span> <span class="k2">{</span>
<span class="number"> 177</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 178</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"left"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 179</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 180</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 181</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 182</span>                <span class="k2">}</span>
<span class="number"> 183</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 184</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"right"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 185</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 186</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 187</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 188</span>                <span class="k2">}</span>
<span class="number"> 189</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 190</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"up"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 191</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 193</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 194</span>                <span class="k2">}</span>
<span class="number"> 195</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 196</span>                    current <span class="k3">=</span> amap<span class="k2">[</span><span class="s">"down"</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 197</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 199</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 200</span>                <span class="k2">}</span>
<span class="number"> 201</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 202</span>                    <span class="c">//current = amap["f1"];</span>
<span class="number"> 203</span>                    <span class="c">//current-&gt;SetFrameTime(0.0);</span>
<span class="number"> 204</span>                    <span class="c">//key[F1] = true;</span>
<span class="number"> 205</span>                    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>menuedit, <span class="n">500</span>, <span class="n">80</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>   
<span class="number"> 206</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 207</span>                <span class="k2">}</span>
<span class="number"> 208</span>                <span class="k1">if</span> <span class="k2">(</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"> 209</span>                    quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 210</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 211</span>                <span class="k2">}</span>
<span class="number"> 212</span>            <span class="k2">}</span>
<span class="number"> 213</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_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 214</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_LEFT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 215</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 216</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 217</span>                <span class="k2">}</span>
<span class="number"> 218</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_RIGHT<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 219</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 220</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 221</span>
<span class="number"> 222</span>                <span class="k2">}</span>
<span class="number"> 223</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 224</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 225</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 226</span>                <span class="k2">}</span>
<span class="number"> 227</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 228</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 229</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 230</span>                <span class="k2">}</span>
<span class="number"> 231</span>                <span class="k1">if</span> <span class="k2">(</span>ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_F1<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 232</span>                    <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>F1<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 233</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 234</span>                <span class="k2">}</span>
<span class="number"> 235</span>                <span class="k1">if</span> <span class="k2">(</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"> 236</span>                    quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 237</span>                    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 238</span>                <span class="k2">}</span>
<span class="number"> 239</span>            <span class="k2">}</span>
<span class="number"> 240</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_TIMER<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 241</span>                <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">|</span><span class="k3">|</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>F1<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 242</span>                    current-&gt;AdvanceFrameTime<span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>FPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 243</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 244</span>                        cx <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 245</span>                        cy <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 246</span>                    <span class="k2">}</span>
<span class="number"> 247</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 248</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 249</span>                        cy <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 250</span>                    <span class="k2">}</span>
<span class="number"> 251</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 252</span>                        cx <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 253</span>                        <span class="c">//cy --;</span>
<span class="number"> 254</span>                    <span class="k2">}</span>
<span class="number"> 255</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 256</span>                        cx <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 257</span>                        <span class="c">//cy ++;</span>
<span class="number"> 258</span>                    <span class="k2">}</span>
<span class="number"> 259</span>                    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>F1<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 260</span>                       <span class="c">//</span>
<span class="number"> 261</span>                    <span class="k2">}</span>
<span class="number"> 262</span>                <span class="k2">}</span> <span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 263</span>                    current-&gt;SetFrameTime<span class="k2">(</span><span class="n">0</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 264</span>                <span class="k2">}</span>
<span class="number"> 265</span>                redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 266</span>
<span class="number"> 267</span>            <span class="k2">}</span>
<span class="number"> 268</span>        <span class="k2">}</span>
<span class="number"> 269</span>    <span class="k2">}</span>
<span class="number"> 270</span>
<span class="number"> 271</span>    <a href="http://www.allegro.cc/manual/al_destroy_timer"><span class="a">al_destroy_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 272</span>    <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 273</span>    <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event_queue<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 274</span>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 275</span><span class="k2">}</span><span class="k2">;</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jefferson Almeida)</author>
		<pubDate>Sun, 19 Jun 2011 00:22:39 +0000</pubDate>
	</item>
</rss>
