<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bitmap behind mappy map</title>
		<link>http://www.allegro.cc/forums/view/616658</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 01 Jan 2017 08:27:02 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hy everyone. When drawing my tile map I made in mappy and then drawing my player image on the screen also, I relized that the player image was behind the tile map. So in order to fix this problem is there a command in allegro 5 that I can use to fix this problem. The tutorial series in which I learned allegro from on fixbyproximity.com only showed the command to draw the map really.</p><p>source code just in case just keep in mind the project is def not finished </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">//This is the source code for my game in allegro 5, The game is called MENACER and It is a work in progress</span>
<span class="number">   2</span><span class="c">//I want this game to look decent and be fun to play, so it will probably take a while for me to get it finished</span>
<span class="number">   3</span><span class="c">//don't use this source code without my permission, Thanks.</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;     //including our allegro headers here</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;allegro5/allegro_acodec.h&gt;</span>
<span class="number">  11</span><span class="p">#include &lt;allegro5/allegro_audio.h&gt;</span>
<span class="number">  12</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  13</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  14</span><span class="p">#include &lt;math.h&gt;</span>
<span class="number">  15</span><span class="p">#include "mappy_A5.h"</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="k1">const</span> <span class="k1">int</span> WIDTH <span class="k3">=</span> <span class="n">800</span><span class="k2">;</span>          <span class="c">//Defining my width of the game window and height</span>
<span class="number">  18</span><span class="k1">const</span> <span class="k1">int</span> HEIGHT <span class="k3">=</span> <span class="n">600</span><span class="k2">;</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="k1">bool</span> keys<span class="k2">[</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span>, <span class="k1">false</span><span class="k2">}</span><span class="k2">;</span>     <span class="c">//declare the controls we are using for my game</span>
<span class="number">  21</span><span class="k1">enum</span> KEYS<span class="k2">{</span>UP, DOWN, LEFT, RIGHT, SPACE, C, F, ESCAPE<span class="k2">}</span><span class="k2">;</span>
<span class="number">  22</span>
<span class="number">  23</span><span class="k1">enum</span> STATE<span class="k2">{</span><a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a>, PLAY, GAMEOVER, QUIT<span class="k2">}</span><span class="k2">;</span>     <span class="c">//game state declaration</span>
<span class="number">  24</span>
<span class="number">  25</span><span class="k1">void</span> ChangeState<span class="k2">(</span><span class="k1">int</span> <span class="k3">&amp;</span>state, <span class="k1">int</span> newState<span class="k2">)</span><span class="k2">;</span> <span class="c">//change state void declaration</span>
<span class="number">  26</span>
<span class="number">  27</span><span class="c">//THE MAIN PROGRAM IS HERE!</span>
<span class="number">  28</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">{</span>
<span class="number">  29</span>
<span class="number">  30</span><span class="c">//Game variables!</span>
<span class="number">  31</span><span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">bool</span> render <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  33</span>
<span class="number">  34</span><span class="k1">float</span> gameTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  35</span><span class="k1">int</span> frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">int</span> gameFPS <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  37</span>
<span class="number">  38</span><span class="k1">int</span> state <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  39</span>
<span class="number">  40</span><span class="k1">int</span> xOff <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  41</span><span class="k1">int</span> yOff <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span><span class="c">//ALLEGRO VARIABLES!</span>
<span class="number">  44</span><a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  45</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event_queue <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  46</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>timer<span class="k2">;</span>
<span class="number">  47</span><a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font10<span class="k2">;</span>
<span class="number">  48</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>MenuImage <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  49</span><a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>MenacerTank <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  50</span><a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>MenuTheme <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  51</span><a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>LV1music <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  52</span><a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE_INSTANCE"><span class="a">ALLEGRO_SAMPLE_INSTANCE</span></a> <span class="k3">*</span>instance1 <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  53</span><a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE_INSTANCE"><span class="a">ALLEGRO_SAMPLE_INSTANCE</span></a> <span class="k3">*</span>instance2 <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  54</span>
<span class="number">  55</span><span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  56</span><span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  57</span>
<span class="number">  58</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>WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>     <span class="c">//initiate the display</span>
<span class="number">  59</span>
<span class="number">  60</span>
<span class="number">  61</span><span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  62</span><span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  63</span>
<span class="number">  64</span><span class="c">//ADDON INSTALL</span>
<span class="number">  65</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  66</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</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">  68</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">  69</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</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="number">  71</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="number">  72</span>
<span class="number">  73</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">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>
<span class="number">  75</span><span class="k1">if</span> <span class="k2">(</span>MapLoad<span class="k2">(</span><span class="s">"level 1.FMP"</span>,<span class="n">1</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  76</span><span class="k1">return</span> <span class="k3">-</span><span class="n">5</span><span class="k2">;</span>
<span class="number">  77</span>
<span class="number">  78</span><span class="c">//loading game assets</span>
<span class="number">  79</span>font10 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"atari.ttf"</span>, <span class="n">24</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>MenuImage <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"menu art.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>MenacerTank <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">"tank.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>MenuTheme <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a><span class="k2">(</span><span class="s">"Robotech - Rick Hunter's Theme.ogg"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>LV1music <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a><span class="k2">(</span><span class="s">"raiden 1.ogg"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>
<span class="number">  85</span>instance1 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sample_instance"><span class="a">al_create_sample_instance</span></a><span class="k2">(</span>MenuTheme<span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>instance2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_sample_instance"><span class="a">al_create_sample_instance</span></a><span class="k2">(</span>LV1music<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_attach_sample_instance_to_mixer"><span class="a">al_attach_sample_instance_to_mixer</span></a><span class="k2">(</span>instance1, <a href="http://www.allegro.cc/manual/al_get_default_mixer"><span class="a">al_get_default_mixer</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.allegro.cc/manual/al_attach_sample_instance_to_mixer"><span class="a">al_attach_sample_instance_to_mixer</span></a><span class="k2">(</span>instance2, <a href="http://www.allegro.cc/manual/al_get_default_mixer"><span class="a">al_get_default_mixer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  90</span>
<span class="number">  91</span>ChangeState<span class="k2">(</span>state, <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span><span class="k2">;</span> <span class="c">//THE FIRST STATE MY GAME WILL GO TO IS THE MENU STATE</span>
<span class="number">  92</span>
<span class="number">  93</span>
<span class="number">  94</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">  95</span>timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>
<span class="number">  97</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">  98</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">  99</span>
<span class="number"> 100</span>
<span class="number"> 101</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"> 102</span>gameTime <span class="k3">=</span> al_current_time<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span><span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span><span class="k2">{</span>
<span class="number"> 104</span>
<span class="number"> 105</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"> 106</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"> 107</span>
<span class="number"> 108</span>    <span class="c">//INPUT FOR MY GAME IS HERE</span>
<span class="number"> 109</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="number"> 110</span><span class="k2">{</span>
<span class="number"> 111</span>    <span class="k1">switch</span> <span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 112</span>    <span class="k2">{</span>
<span class="number"> 113</span>  <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 114</span>        keys<span class="k2">[</span>ESCAPE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 115</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 116</span>        <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 117</span>        keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 119</span>    <span class="k1">case</span> ALLEGRO_KEY_C:
<span class="number"> 120</span>        keys<span class="k2">[</span>C<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 121</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 122</span>    <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 123</span>        keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</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="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 126</span>        keys<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"> 127</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 128</span>    <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 129</span>        keys<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"> 130</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 131</span>    <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 132</span>        keys<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"> 133</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 134</span>    <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 135</span>        keys<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"> 136</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 137</span>    <span class="k2">}</span>
<span class="number"> 138</span>
<span class="number"> 139</span>
<span class="number"> 140</span><span class="k2">}</span>
<span class="number"> 141</span>
<span class="number"> 142</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="number"> 143</span><span class="k2">{</span>
<span class="number"> 144</span>    <span class="k1">switch</span><span class="k2">(</span>ev.keyboard.keycode<span class="k2">)</span>
<span class="number"> 145</span>    <span class="k2">{</span>
<span class="number"> 146</span>    <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 147</span>    keys<span class="k2">[</span>ESCAPE<span class="k2">]</span> <span class="k3">=</span>  <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 148</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 149</span>    <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 150</span>        keys<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 151</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 152</span>    <span class="k1">case</span> ALLEGRO_KEY_C:
<span class="number"> 153</span>        keys<span class="k2">[</span>C<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 154</span>    <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 155</span>    <span class="k1">case</span> ALLEGRO_KEY_F:
<span class="number"> 156</span>        keys<span class="k2">[</span>F<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 157</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 158</span>    <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 159</span>        keys<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"> 160</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 161</span>    <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 162</span>        keys<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"> 163</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 164</span>    <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 165</span>        keys<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"> 166</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 167</span>    <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 168</span>        keys<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"> 169</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 170</span>    <span class="k2">}</span>
<span class="number"> 171</span>
<span class="number"> 172</span>
<span class="number"> 173</span><span class="k2">}</span>
<span class="number"> 174</span>
<span class="number"> 175</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="number"> 176</span><span class="k2">{</span>
<span class="number"> 177</span>    render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 178</span>    <span class="c">//UPDATE FPS</span>
<span class="number"> 179</span>    frames<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 180</span>    <span class="k1">if</span><span class="k2">(</span>al_current_time<span class="k2">(</span><span class="k2">)</span> <span class="k3">-</span> gameTime <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 181</span>    <span class="k2">{</span>
<span class="number"> 182</span>        gameTime <span class="k3">=</span> al_current_time<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 183</span>        gameFPS <span class="k3">=</span> frames<span class="k2">;</span>
<span class="number"> 184</span>        frames <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 185</span>    <span class="k2">}</span>
<span class="number"> 186</span>
<span class="number"> 187</span><span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>                                   <span class="c">//Game State Controls</span>
<span class="number"> 188</span><span class="k2">{</span>
<span class="number"> 189</span>    <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 190</span>    ChangeState<span class="k2">(</span>state, PLAY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 191</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>ESCAPE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 192</span>        ChangeState<span class="k2">(</span>state, QUIT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 193</span><span class="k2">}</span>
<span class="number"> 194</span>
<span class="number"> 195</span>
<span class="number"> 196</span>
<span class="number"> 197</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAY<span class="k2">)</span>
<span class="number"> 198</span><span class="k2">{</span>
<span class="number"> 199</span><span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>ESCAPE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 200</span>        ChangeState<span class="k2">(</span>state, GAMEOVER<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 201</span><span class="k2">}</span>
<span class="number"> 202</span>
<span class="number"> 203</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 204</span><span class="k2">{</span>
<span class="number"> 205</span>    <span class="k1">if</span><span class="k2">(</span>keys<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 206</span>        ChangeState<span class="k2">(</span>state, <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 207</span><span class="k2">}</span>
<span class="number"> 208</span>
<span class="number"> 209</span>xOff <span class="k3">+</span><span class="k3">=</span> keys<span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">*</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 210</span>xOff <span class="k3">-</span><span class="k3">=</span> keys<span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">*</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 211</span>yOff <span class="k3">+</span><span class="k3">=</span> keys<span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">*</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 212</span>yOff <span class="k3">-</span><span class="k3">=</span> keys<span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">*</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 213</span>
<span class="number"> 214</span><span class="k1">if</span><span class="k2">(</span>xOff <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 215</span>xOff <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 216</span><span class="k1">if</span><span class="k2">(</span>yOff <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 217</span>    yOff <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 218</span><span class="k1">if</span><span class="k2">(</span>xOff <span class="k3">&gt;</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth <span class="k3">-</span> WIDTH<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 219</span>    xOff <span class="k3">=</span> mapwidth <span class="k3">*</span> mapblockwidth <span class="k3">-</span> WIDTH<span class="k2">;</span>
<span class="number"> 220</span><span class="k1">if</span><span class="k2">(</span>yOff <span class="k3">&gt;</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight <span class="k3">-</span> HEIGHT<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 221</span>    yOff <span class="k3">=</span> mapheight <span class="k3">*</span> mapblockheight <span class="k3">-</span> HEIGHT<span class="k2">;</span>
<span class="number"> 222</span><span class="k2">}</span>
<span class="number"> 223</span>
<span class="number"> 224</span>
<span class="number"> 225</span><span class="c">//Here we render everything</span>
<span class="number"> 226</span>
<span class="number"> 227</span><span class="k1">if</span><span class="k2">(</span>render <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="number"> 228</span><span class="k2">{</span>
<span class="number"> 229</span>
<span class="number"> 230</span>render <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 231</span>
<span class="number"> 232</span><span class="c">//BEGIN!</span>
<span class="number"> 233</span>
<span class="number"> 234</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 235</span><span class="k2">{</span>
<span class="number"> 236</span><a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>MenuImage, <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"> 237</span><a href="http://www.allegro.cc/manual/al_set_sample_instance_playmode"><span class="a">al_set_sample_instance_playmode</span></a><span class="k2">(</span>instance1, ALLEGRO_PLAYMODE_LOOP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 238</span><a href="http://www.allegro.cc/manual/al_play_sample_instance"><span class="a">al_play_sample_instance</span></a><span class="k2">(</span>instance1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 239</span><span class="k2">}</span>
<span class="number"> 240</span>
<span class="number"> 241</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAY<span class="k2">)</span>
<span class="number"> 242</span><span class="k2">{</span>
<span class="number"> 243</span>
<span class="number"> 244</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>MenacerTank,<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"> 245</span>    <a href="http://www.allegro.cc/manual/al_stop_sample_instance"><span class="a">al_stop_sample_instance</span></a><span class="k2">(</span>instance1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 246</span>    MapDrawBG<span class="k2">(</span>xOff,yOff,<span class="n">0</span>,<span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 247</span>
<span class="number"> 248</span>
<span class="number"> 249</span><span class="k2">}</span>
<span class="number"> 250</span>
<span class="number"> 251</span>
<span class="number"> 252</span>
<span class="number"> 253</span>
<span class="number"> 254</span>
<span class="number"> 255</span>
<span class="number"> 256</span>
<span class="number"> 257</span>
<span class="number"> 258</span><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> QUIT<span class="k2">)</span>
<span class="number"> 259</span><span class="k2">{</span>
<span class="number"> 260</span>    done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 261</span><span class="k2">}</span>
<span class="number"> 262</span>
<span class="number"> 263</span>
<span class="number"> 264</span>
<span class="number"> 265</span>
<span class="number"> 266</span>
<span class="number"> 267</span>
<span class="number"> 268</span>
<span class="number"> 269</span>
<span class="number"> 270</span>
<span class="number"> 271</span>
<span class="number"> 272</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"> 273</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"> 274</span><span class="k2">}</span>
<span class="number"> 275</span>
<span class="number"> 276</span>
<span class="number"> 277</span>
<span class="number"> 278</span>
<span class="number"> 279</span>
<span class="number"> 280</span>
<span class="number"> 281</span>
<span class="number"> 282</span>
<span class="number"> 283</span>
<span class="number"> 284</span><span class="k2">}</span>
<span class="number"> 285</span>
<span class="number"> 286</span><span class="c">//DESTROY PROJECT OBJECTS</span>
<span class="number"> 287</span>
<span class="number"> 288</span><a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</span>font10<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 289</span><a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>MenuImage<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 290</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"> 291</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"> 292</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"> 293</span><a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>MenuTheme<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 294</span><a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>LV1music<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 295</span><a href="http://www.allegro.cc/manual/al_destroy_sample_instance"><span class="a">al_destroy_sample_instance</span></a><span class="k2">(</span>instance1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 296</span><a href="http://www.allegro.cc/manual/al_destroy_sample_instance"><span class="a">al_destroy_sample_instance</span></a><span class="k2">(</span>instance2<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 297</span>
<span class="number"> 298</span>MapFreeMem<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 299</span>
<span class="number"> 300</span><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 301</span><span class="k2">}</span>
<span class="number"> 302</span>
<span class="number"> 303</span><span class="k1">void</span> ChangeState<span class="k2">(</span><span class="k1">int</span> <span class="k3">&amp;</span>state, <span class="k1">int</span> newState<span class="k2">)</span>
<span class="number"> 304</span><span class="k2">{</span>
<span class="number"> 305</span>
<span class="number"> 306</span>    <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 307</span>    <span class="k2">{</span>
<span class="number"> 308</span>        std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Leaving the MENU state \n"</span><span class="k2">;</span>
<span class="number"> 309</span>    <span class="k2">}</span>
<span class="number"> 310</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAY<span class="k2">)</span>
<span class="number"> 311</span><span class="k2">{</span>
<span class="number"> 312</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span><span class="s">"Leaving the PLAY state \n"</span><span class="k2">;</span>
<span class="number"> 313</span><span class="k2">}</span>
<span class="number"> 314</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 315</span><span class="k2">{</span>
<span class="number"> 316</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Leaving the GAMEOVER state \n"</span><span class="k2">;</span>
<span class="number"> 317</span><span class="k2">}</span>
<span class="number"> 318</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> QUIT<span class="k2">)</span>
<span class="number"> 319</span><span class="k2">{</span>
<span class="number"> 320</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Leaving the QUIT state \n"</span><span class="k2">;</span>
<span class="number"> 321</span><span class="k2">}</span>
<span class="number"> 322</span>
<span class="number"> 323</span>state <span class="k3">=</span> newState<span class="k2">;</span>
<span class="number"> 324</span>
<span class="number"> 325</span>
<span class="number"> 326</span>    <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/MENU"><span class="a">MENU</span></a><span class="k2">)</span>
<span class="number"> 327</span>    <span class="k2">{</span>
<span class="number"> 328</span>        std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Entering the MENU state \n"</span><span class="k2">;</span>
<span class="number"> 329</span>    <span class="k2">}</span>
<span class="number"> 330</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAY<span class="k2">)</span>
<span class="number"> 331</span><span class="k2">{</span>
<span class="number"> 332</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span><span class="s">"Entering the PLAY state \n"</span><span class="k2">;</span>
<span class="number"> 333</span><span class="k2">}</span>
<span class="number"> 334</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> GAMEOVER<span class="k2">)</span>
<span class="number"> 335</span><span class="k2">{</span>
<span class="number"> 336</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Entering the GAMEOVER state \n"</span><span class="k2">;</span>
<span class="number"> 337</span><span class="k2">}</span>
<span class="number"> 338</span><span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> QUIT<span class="k2">)</span>
<span class="number"> 339</span><span class="k2">{</span>
<span class="number"> 340</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Entering the QUIT state \n"</span><span class="k2">;</span>
<span class="number"> 341</span><span class="k2">}</span>
<span class="number"> 342</span>
<span class="number"> 343</span>
<span class="number"> 344</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (PCwizard200)</author>
		<pubDate>Sun, 01 Jan 2017 03:36:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Call the function to draw the map before drawing anything else, <i>then</i> draw the player.</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAY<span class="k2">)</span>
<span class="k2">{</span>

    MapDrawBG<span class="k2">(</span>xOff,yOff,<span class="n">0</span>,<span class="n">0</span>, WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span> <span class="c">// Draw map first.</span>
    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>MenacerTank,<span class="n">200</span>,<span class="n">100</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/al_stop_sample_instance"><span class="a">al_stop_sample_instance</span></a><span class="k2">(</span>instance1<span class="k2">)</span><span class="k2">;</span>


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

Every time you draw something, it goes above whatever was previously drawn. So think of it as going from the background to the foreground. If you were to draw bitmaps A, B, and then C, you would have A in the very back, followed by B, and then C in the very front.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Eric Johnson)</author>
		<pubDate>Sun, 01 Jan 2017 04:43:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://">person</a> said:</div><div class="quote"><p>

Eric Johnson:</p><p>Call the function to draw the map before drawing anything else, then draw the player.</p><p>else if(state == PLAY)<br />{</p><p>    MapDrawBG(xOff,yOff,0,0, WIDTH, HEIGHT); // Draw map first.<br />    al_draw_bitmap(MenacerTank,200,100,0);<br />    al_stop_sample_instance(instance1);</p><p>}</p><p>Every time you draw something, it goes above whatever was previously drawn. So think of it as going from the background to the foreground. If you were to draw bitmaps A, B, and then C, you would have A in the very back, followed by B, and then C in the very front. 
</p></div></div><p>

Thanks Eric Johnson I honestly did not know that you have to put images in a certain order according to how you want it to look. Ya learn something every day!;D
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (PCwizard200)</author>
		<pubDate>Sun, 01 Jan 2017 07:13:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re welcome. I&#39;m glad I could help. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Eric Johnson)</author>
		<pubDate>Sun, 01 Jan 2017 08:27:02 +0000</pubDate>
	</item>
</rss>
