<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>This f***ing enemy won&#39;t move!</title>
		<link>http://www.allegro.cc/forums/view/612105</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 25 Feb 2013 01:02:28 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve been at this for quite some time now, and I still can&#39;t get it to work. My problem is that I created a second enemy and I wanted him moving on another platform. So for the sake of typing less code, I modified <span class="source-code">initEnemy<span class="k2">(</span><span class="k2">)</span>, updateEnemy<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></span> so I only need to type it out once. And not do <span class="source-code">initEnemy2, initEnemy3</span> etc. When I finally went to putting the code in, the enemy wouldn&#39;t move. I tried tinkering around with it for a while with no results. So I resorted to doing <span class="source-code">initEnemy2, drawEnemy2</span> etc. I was thinking this should work 100% - it didn&#39;t. Went back to the original way, and I found out that changing <span class="source-code">enemy2</span> co-ordinates to the same as the <span class="source-code">enemy</span> IT WOULD MOVE! But when I put it back to the co-ordinates I want it to be, IT WOULDN&#39;T MOVE! And after that I had absolutely no idea what was going on. (I&#39;ve removed some code for file size error, and any irrelevant 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">//Prototpyes</span>
<span class="number">   2</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number">   3</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="k1">void</span> initEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">   6</span><span class="k1">void</span> drawEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">   7</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> posX, <span class="k1">int</span> posX2<span class="k2">)</span><span class="k2">;</span>
<span class="number">   8</span><span class="k1">bool</span> collideArrow<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, Arrow <span class="k3">&amp;</span>arrow, <span class="k1">bool</span> eLive, <span class="k1">bool</span> aLive<span class="k2">)</span><span class="k2">;</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="k1">void</span> initCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span><span class="k1">bool</span> coinCollide<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin,Player <span class="k3">&amp;</span>player ,<span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  13</span>
<span class="number">  14</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="k1">void</span> initKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span><span class="k1">void</span> drawKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="k1">bool</span> collision<span class="k2">(</span>Player <span class="k3">&amp;</span>player, <span class="k1">int</span> ex, <span class="k1">int</span> ey, <span class="k1">int</span> eWidth, <span class="k1">int</span> eHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span>
<span class="number">  24</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition,Player <span class="k3">&amp;</span>player, <span class="k1">float</span> width, <span class="k1">float</span> height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>
<span class="number">  26</span><span class="c">//Global Variables</span>
<span class="number">  27</span><span class="k1">enum</span> direction <span class="k2">{</span>LEFT, RIGHT<span class="k2">}</span><span class="k2">;</span>
<span class="number">  28</span><span class="k1">int</span> dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number">  29</span><span class="k1">const</span> <span class="k1">int</span> NUM_ENEMY <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">int</span> groundHeight <span class="k3">=</span> <span class="n">545</span><span class="k2">;</span>
<span class="number">  31</span><span class="k1">bool</span> fired <span class="k3">=</span> <span class="k1">false</span>, firedR <span class="k3">=</span> <span class="k1">false</span>, firedL <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">bool</span> coinLive <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  33</span><span class="k1">bool</span> left, right <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  34</span><span class="k1">const</span> <span class="k1">float</span> gravity <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  37</span><span class="k2">{</span>
<span class="number">  38</span>
<span class="number">  39</span>  Player player<span class="k2">;</span>
<span class="number">  40</span>  Enemy enemy<span class="k2">;</span>
<span class="number">  41</span>  Enemy enemy2<span class="k2">;</span>
<span class="number">  42</span>  Coin coin<span class="k2">;</span>
<span class="number">  43</span>  Coin coin2<span class="k2">;</span>
<span class="number">  44</span>  Arrow arrow<span class="k2">;</span>
<span class="number">  45</span>  Key <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">;</span>
<span class="number">  46</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, active <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  47</span>  <span class="k1">bool</span> jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  48</span>  <span class="k1">bool</span> gotKey <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  49</span>  <span class="k1">int</span> sourceX <span class="k3">=</span> <span class="n">32</span>, sourceY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  50</span>  <span class="k1">int</span> coinCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  51</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  52</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">15</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  53</span>  <span class="k1">float</span> jumpSpeed <span class="k3">=</span> <span class="n">15</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  54</span>  <span class="k1">float</span> velX <span class="k3">=</span> <span class="n">0</span>, velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  55</span>  
<span class="number">  56</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <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">  57</span>
<span class="number">  58</span>  initPlayer<span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>  initEnemy<span class="k2">(</span>enemy, <span class="n">86</span>, <span class="n">391</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  60</span>  initEnemy<span class="k2">(</span>enemy2, <span class="n">1162</span>, <span class="n">338</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  61</span>  initArrow<span class="k2">(</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number">  62</span>  initCoin<span class="k2">(</span>coin, <span class="n">550</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  initCoin<span class="k2">(</span>coin2, <span class="n">120</span>, <span class="n">395</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  64</span>  initKey<span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><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/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> keystate<span class="k2">;</span>
<span class="number">  67</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number">  68</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> identity<span class="k2">;</span>
<span class="number">  69</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>coinCollect <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">"Files/coin collect sound.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  70</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot <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">"Files/bow sound effect.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bgSong <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">"Files/Background song.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>keyCollection <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">"Files/key collection.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE_INSTANCE"><span class="a">ALLEGRO_SAMPLE_INSTANCE</span></a> <span class="k3">*</span>songInstance <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>bgSong<span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>enemyImg <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">"Files/enemy.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>background2 <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">"Files/Background.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</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">"Files/spritesheet(Bow &amp; left + right).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>arrow_r <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">"Files/Arrow(RIGHT).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>arrow_l <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">"Files/Arrow(LEFT).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>coinImg <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">"Files/coin2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>keyImg <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">"Files/key.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>ground <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">"Files/Ground.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>numArrow <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">"Files/JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>fps <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">"Files/JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>numCoin <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">"Files/JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_639.html" target="_blank">random</a> <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">"Files/JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>lives <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">"Files/JUNGBN__.TTF"</span>, <span class="n">23</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/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</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">  88</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frameTimer <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>frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  89</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> <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">  90</span>
<span class="number">  91</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">4</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Respresents how many audio clips I have in the game</span>
<span class="number">  92</span>
<span class="number">  93</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>songInstance, ALLEGRO_PLAYMODE_LOOP<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</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>songInstance, <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">  95</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"Australian Outback"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</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">  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_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>frameTimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</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"> 100</span>  
<span class="number"> 101</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>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>
<span class="number"> 103</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"> 104</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frameTimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 106</span>  <span class="k2">{</span>
<span class="number"> 107</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 108</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>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</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>keystate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>      
<span class="number"> 111</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>keystate, ALLEGRO_KEY_ESCAPE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 112</span>    <span class="k2">{</span>
<span class="number"> 113</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 114</span>    <span class="k2">}</span>
<span class="number"> 115</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 116</span>    <span class="k2">{</span>
<span class="number"> 117</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k2">}</span>
<span class="number"> 119</span>    
<span class="number"> 120</span>    
<span class="number"> 121</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 122</span>    <span class="k2">{</span>
<span class="number"> 123</span>      <span class="k1">if</span><span class="k2">(</span>event.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 124</span>      <span class="k2">{</span>
<span class="number"> 125</span>        active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 126</span>        updateArrow<span class="k2">(</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>        updateEnemy<span class="k2">(</span>enemy, <span class="n">238</span>, <span class="n">78</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>        updateEnemy<span class="k2">(</span>enemy2, <span class="n">1162</span>, <span class="n">1229</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>
<span class="number"> 130</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>keystate, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 131</span>        <span class="k2">{</span>
<span class="number"> 132</span>          velX <span class="k3">=</span> player.speed<span class="k2">;</span>
<span class="number"> 133</span>          dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 134</span>        
<span class="number"> 135</span>        <span class="k2">}</span>
<span class="number"> 136</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>keystate, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 137</span>        <span class="k2">{</span>
<span class="number"> 138</span>          velX <span class="k3">=</span> <span class="k3">-</span>player.speed<span class="k2">;</span>
<span class="number"> 139</span>          dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 140</span>        <span class="k2">}</span>
<span class="number"> 141</span>        <span class="k1">else</span> 
<span class="number"> 142</span>        <span class="k2">{</span>
<span class="number"> 143</span>          velX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 144</span>          active <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 145</span>        <span class="k2">}</span>
<span class="number"> 146</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>keystate, ALLEGRO_KEY_W<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump<span class="k2">)</span>
<span class="number"> 147</span>        <span class="k2">{</span>
<span class="number"> 148</span>          velY <span class="k3">=</span> <span class="k3">-</span>jumpSpeed<span class="k2">;</span>
<span class="number"> 149</span>          jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 150</span>        <span class="k2">}</span>
<span class="number"> 151</span>      <span class="k2">}</span>
<span class="number"> 152</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.timer.source <span class="k3">=</span> frameTimer<span class="k2">)</span>
<span class="number"> 153</span>      <span class="k2">{</span>
<span class="number"> 154</span>        <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 155</span>        <span class="k2">{</span>
<span class="number"> 156</span>          sourceX <span class="k3">+</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>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 157</span>        <span class="k2">}</span>
<span class="number"> 158</span>        <span class="k1">else</span> 
<span class="number"> 159</span>        <span class="k2">{</span>
<span class="number"> 160</span>          sourceX <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> 
<span class="number"> 161</span>        <span class="k2">}</span>
<span class="number"> 162</span>        <span class="k1">if</span><span class="k2">(</span>sourceX <span class="k3">&gt;</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>character<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 163</span>        <span class="k2">{</span>
<span class="number"> 164</span>          sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 165</span>        <span class="k2">}</span>
<span class="number"> 166</span>          sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 167</span>  
<span class="number"> 168</span>        
<span class="number"> 169</span>      <span class="k2">}</span>
<span class="number"> 170</span>      
<span class="number"> 171</span>        <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>jump<span class="k2">)</span>
<span class="number"> 172</span>          velY <span class="k3">+</span><span class="k3">=</span> gravity<span class="k2">;</span>
<span class="number"> 173</span>        <span class="k1">else</span>
<span class="number"> 174</span>          velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 175</span>          player.x <span class="k3">+</span><span class="k3">=</span> velX<span class="k2">;</span>
<span class="number"> 176</span>          player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 177</span>      
<span class="number"> 178</span>          jump <span class="k3">=</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span><span class="k3">=</span> groundHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 179</span>
<span class="number"> 180</span>          <span class="k1">if</span><span class="k2">(</span>jump<span class="k2">)</span>
<span class="number"> 181</span>          <span class="k2">{</span>
<span class="number"> 182</span>                player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 183</span>          <span class="k2">}</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 184</span>      
<span class="number"> 185</span>
<span class="number"> 186</span>      cameraUpdate<span class="k2">(</span>cameraPosition, player, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 188</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>
<span class="number"> 191</span>    <span class="k2">}</span>
<span class="number"> 192</span>    
<span class="number"> 193</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>keystate, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 194</span>    <span class="k2">{</span>
<span class="number"> 195</span>      fireArrow<span class="k2">(</span>arrow, player, bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>    <span class="k2">}</span>
<span class="number"> 197</span>    
<span class="number"> 198</span>    <span class="k1">if</span><span class="k2">(</span>coinCollide<span class="k2">(</span>coin, player, coin.x, coin.y, coin.width, coin.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 199</span>    <span class="k2">{</span>
<span class="number"> 200</span>      coin.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 201</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number"> 202</span>      coin.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 203</span>      coin.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 204</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 205</span>    <span class="k2">}</span>
<span class="number"> 206</span>    <span class="k1">if</span><span class="k2">(</span>coinCollide<span class="k2">(</span>coin2, player, coin2.x, coin2.y, coin2.width, coin2.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 207</span>    <span class="k2">{</span>
<span class="number"> 208</span>      coin.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 209</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number"> 210</span>      coin2.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 211</span>      coin2.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 212</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 213</span>    <span class="k2">}</span>
<span class="number"> 214</span>    <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, key.x, key.y, key.width, key.height, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Collide with key</span>
<span class="number"> 215</span>    <span class="k2">{</span>
<span class="number"> 216</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>keyCollection, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 217</span>      key.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 218</span>      key.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number"> 219</span>      key.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 220</span>    <span class="k2">}</span>
<span class="number"> 221</span>    <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy.x, enemy.y, enemy.width, enemy.height, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Player collision with enemy</span>
<span class="number"> 222</span>    <span class="k2">{</span>
<span class="number"> 223</span>      player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 224</span>      player.y <span class="k3">=</span> <span class="n">546</span><span class="k2">;</span>
<span class="number"> 225</span>      <span class="k3">-</span><span class="k3">-</span>player.lives<span class="k2">;</span>
<span class="number"> 226</span>      arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 227</span>      dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 228</span>    <span class="k2">}</span>
<span class="number"> 229</span>    
<span class="number"> 230</span>    <span class="k1">if</span><span class="k2">(</span>collideArrow<span class="k2">(</span>enemy, arrow, enemy.live, arrow.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 231</span>    <span class="k2">{</span>
<span class="number"> 232</span>      enemy.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 233</span>      enemy.x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 234</span>      enemy.y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 235</span>      arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 236</span>      gotKey <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 237</span>      <span class="k3">+</span><span class="k3">+</span>player.score<span class="k2">;</span>
<span class="number"> 238</span>    <span class="k2">}</span> 
<span class="number"> 239</span>
<span class="number"> 240</span>  <span class="k1">if</span><span class="k2">(</span>draw <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"> 241</span>  <span class="k2">{</span>
<span class="number"> 242</span>    draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 243</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>background2, <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"> 244</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>character, sourceX, sourceY <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>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">32</span>, <span class="n">32</span>, player.x, player.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 245</span>    drawKey<span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, keyImg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 246</span>    drawArrow<span class="k2">(</span>arrow, arrow_r, arrow_l<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 247</span>    drawCoin<span class="k2">(</span>coin, coinImg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 248</span>    drawCoin<span class="k2">(</span>coin2, coinImg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 249</span>    drawEnemy<span class="k2">(</span>enemy, enemyImg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 250</span>    drawEnemy<span class="k2">(</span>enemy2, enemyImg<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 251</span>    <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>identity<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 252</span>    <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>identity<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 253</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>numArrow, <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">252</span>,<span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">10</span>, <span class="n">0</span>, <span class="s">"Arrows: %i"</span>, arrow.arrowCount<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 254</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>numCoin, <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">252</span>, <span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">50</span>, <span class="n">0</span>, <span class="s">"Coins: %i"</span>, coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 255</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>lives, <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">252</span>, <span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">110</span>, <span class="n">10</span>, <span class="n">0</span>, <span class="s">"Lives: %i"</span>, player.lives<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 256</span>    <span class="c">//al_draw_textf(fps, al_map_rgb(252, 209, 22), 110, 50, 0, "FPS: %i", FPS);</span>
<span class="number"> 257</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"> 258</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">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 259</span>
<span class="number"> 260</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="k2">}</span>
<span class="number"> 265</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span>
<span class="number"> 266</span><span class="k2">{</span>
<span class="number"> 267</span>  player.x <span class="k3">=</span> <span class="n">1162</span><span class="k2">;</span>
<span class="number"> 268</span>  player.y <span class="k3">=</span> <span class="n">545</span><span class="k2">;</span>
<span class="number"> 269</span>  player.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 270</span>  player.speed <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 271</span>  player.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 272</span>  dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 273</span><span class="k2">}</span>
<span class="number"> 274</span>
<span class="number"> 275</span><span class="k1">void</span> initEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span>
<span class="number"> 276</span><span class="k2">{</span>
<span class="number"> 277</span>  enemy.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 278</span>  enemy.speedR <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 279</span>  enemy.speedL <span class="k3">=</span> <span class="k3">-</span><span class="n">2</span><span class="k2">;</span>
<span class="number"> 280</span>  enemy.speed <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 281</span>  enemy.x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 282</span>  enemy.y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 283</span>  enemy.width <span class="k3">=</span> <span class="n">29</span><span class="k2">;</span>
<span class="number"> 284</span>  enemy.height <span class="k3">=</span> <span class="n">29</span><span class="k2">;</span>
<span class="number"> 285</span><span class="k2">}</span>
<span class="number"> 286</span><span class="k1">void</span> drawEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 287</span><span class="k2">{</span>
<span class="number"> 288</span>    <span class="k1">if</span><span class="k2">(</span>enemy.live<span class="k2">)</span>
<span class="number"> 289</span>    <span class="k2">{</span>
<span class="number"> 290</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, enemy.x, enemy.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 291</span>    <span class="k2">}</span>
<span class="number"> 292</span><span class="k2">}</span>
<span class="number"> 293</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> posX, <span class="k1">int</span> posX2<span class="k2">)</span>
<span class="number"> 294</span><span class="k2">{</span>
<span class="number"> 295</span>  <span class="k1">if</span><span class="k2">(</span>enemy.live<span class="k2">)</span>
<span class="number"> 296</span>  <span class="k2">{</span>
<span class="number"> 297</span>    enemy.x <span class="k3">+</span><span class="k3">=</span> enemy.speed<span class="k2">;</span>
<span class="number"> 298</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&gt;</span><span class="k3">=</span> posX<span class="k2">)</span>
<span class="number"> 299</span>      <span class="k2">{</span>
<span class="number"> 300</span>        enemy.x <span class="k3">=</span> posX<span class="k2">;</span>
<span class="number"> 301</span>        enemy.speed <span class="k3">=</span> enemy.speedL<span class="k2">;</span>
<span class="number"> 302</span>      <span class="k2">}</span>
<span class="number"> 303</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&lt;</span><span class="k3">=</span> posX2<span class="k2">)</span>
<span class="number"> 304</span>      <span class="k2">{</span>
<span class="number"> 305</span>        enemy.x <span class="k3">=</span> posX2<span class="k2">;</span>
<span class="number"> 306</span>        enemy.speed <span class="k3">=</span> enemy.speedR<span class="k2">;</span>
<span class="number"> 307</span>      <span class="k2">}</span>
<span class="number"> 308</span>  <span class="k2">}</span>
<span class="number"> 309</span><span class="k2">}</span>
<span class="number"> 310</span>
<span class="number"> 311</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span>
<span class="number"> 312</span><span class="k2">{</span>
<span class="number"> 313</span>    arrow.speed <span class="k3">=</span> <span class="n">4</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 314</span>    arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 315</span>    arrow.arrowCount <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>  
<span class="number"> 316</span>    arrow.width <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 317</span>    arrow.height <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 318</span>    arrow.aVelX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> 
<span class="number"> 319</span>    arrow.aVelY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 320</span><span class="k2">}</span>
<span class="number"> 321</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image2<span class="k2">)</span>
<span class="number"> 322</span><span class="k2">{</span>
<span class="number"> 323</span>    <span class="k1">if</span><span class="k2">(</span>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> dir <span class="k3">=</span><span class="k3">=</span> RIGHT<span class="k2">)</span>
<span class="number"> 324</span>    <span class="k2">{</span>
<span class="number"> 325</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, arrow.x, arrow.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 326</span>    <span class="k2">}</span>
<span class="number"> 327</span>    <span class="k1">if</span><span class="k2">(</span>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> dir <span class="k3">=</span><span class="k3">=</span> LEFT<span class="k2">)</span>
<span class="number"> 328</span>    <span class="k2">{</span>
<span class="number"> 329</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, arrow.x, arrow.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 330</span>    <span class="k2">}</span>
<span class="number"> 331</span>    
<span class="number"> 332</span><span class="k2">}</span>
<span class="number"> 333</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span>
<span class="number"> 334</span><span class="k2">{</span>
<span class="number"> 335</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>arrow.live<span class="k2">)</span>
<span class="number"> 336</span>    <span class="k2">{</span>
<span class="number"> 337</span>      <span class="k3">-</span><span class="k3">-</span>arrow.arrowCount<span class="k2">;</span>
<span class="number"> 338</span>      arrow.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 339</span>      arrow.x <span class="k3">=</span> player.x <span class="k3">+</span> <span class="n">17</span><span class="k2">;</span>
<span class="number"> 340</span>      arrow.y <span class="k3">=</span> player.y <span class="k3">+</span> <span class="n">22</span><span class="k2">;</span>
<span class="number"> 341</span>      fired <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 342</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>bowShot, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 343</span>      
<span class="number"> 344</span>    <span class="k2">}</span>
<span class="number"> 345</span>  
<span class="number"> 346</span><span class="k2">}</span>
<span class="number"> 347</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span>
<span class="number"> 348</span><span class="k2">{</span>
<span class="number"> 349</span>    <span class="k1">if</span><span class="k2">(</span>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> fired<span class="k2">)</span>
<span class="number"> 350</span>    <span class="k2">{</span>
<span class="number"> 351</span>      <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> RIGHT<span class="k2">)</span>
<span class="number"> 352</span>      <span class="k2">{</span>
<span class="number"> 353</span>        arrow.x <span class="k3">+</span><span class="k3">=</span> arrow.speed<span class="k2">;</span>
<span class="number"> 354</span>      <span class="k2">}</span>
<span class="number"> 355</span>      <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> LEFT<span class="k2">)</span>
<span class="number"> 356</span>      <span class="k2">{</span>
<span class="number"> 357</span>        arrow.x <span class="k3">-</span><span class="k3">=</span> arrow.speed<span class="k2">;</span>
<span class="number"> 358</span>      <span class="k2">}</span>
<span class="number"> 359</span>        <span class="k1">if</span><span class="k2">(</span>arrow.x <span class="k3">&gt;</span><span class="k3">=</span>  <span class="n">2000</span> <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 360</span>        <span class="k2">{</span>
<span class="number"> 361</span>          arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 362</span>        <span class="k2">}</span>
<span class="number"> 363</span>        <span class="k1">if</span><span class="k2">(</span>arrow.x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">+</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 364</span>        <span class="k2">{</span>
<span class="number"> 365</span>          arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 366</span>        <span class="k2">}</span>
<span class="number"> 367</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>arrow.arrowCount <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 368</span>        <span class="k2">{</span>
<span class="number"> 369</span>          fired <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 370</span>        <span class="k2">}</span>
<span class="number"> 371</span>    
<span class="number"> 372</span>    <span class="k2">}</span>
<span class="number"> 373</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Sun, 24 Feb 2013 00:21:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I only read the first couple of lines, but since no-one else has answered can I suggest you Google &quot;class arrays&quot; or &quot;arrays&quot;. Basically you&#39;ll have an array of instances of your class, that you&#39;ll cycle through using a &#39;for&#39; loop or similar, so you don&#39;t have to write enemy_1, enemy_2, enemy_3 etc etc etc.</p><p>It&#39;ll look something like:</p><div class="source-code snippet"><div class="inner"><pre><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">=</span>TOTAL_ENEMIES<span class="k2">;</span>i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span><span class="k2">{</span>
  enemy<span class="k2">[</span>i<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>doSomething<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

and that will go through all your enemies! If you want more help just ask, the Allegroids are AWESOME when they get their teeth stuck in!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Sun, 24 Feb 2013 05:34:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Do you really need that many font declarations that point to the exact same font data? If you are going to use the same font why not just make one, load it, then use it across all the things that need that font rather than use memory to hold the same data.</p><p>As for movement, I agree with Dizzy on this one.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 24 Feb 2013 08:31:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Let&#39;s see what happens when you call <span class="source-code">updateEnemy<span class="k2">(</span>enemy2, <span class="n">1162</span>, <span class="n">1229</span><span class="k2">)</span></span>.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">//the first call to updateEnemy for enemy2 will go like this:</span>
<span class="number">  2</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> posX, <span class="k1">int</span> posX2<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>  <span class="k1">if</span><span class="k2">(</span>enemy.live<span class="k2">)</span> <span class="c">//enemy2.live is true, so enter block</span>
<span class="number">  5</span>  <span class="k2">{</span>
<span class="number">  6</span>    enemy.x <span class="k3">+</span><span class="k3">=</span> enemy.speed<span class="k2">;</span> <span class="c">//1162 + 2. enemy2.x is now 1164</span>
<span class="number">  7</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&gt;</span><span class="k3">=</span> posX<span class="k2">)</span> <span class="c">//1164 &gt;= posX, so enter block</span>
<span class="number">  8</span>      <span class="k2">{</span>
<span class="number">  9</span>        enemy.x <span class="k3">=</span> posX<span class="k2">;</span> <span class="c">//enemy.x is now 1162</span>
<span class="number"> 10</span>        enemy.speed <span class="k3">=</span> enemy.speedL<span class="k2">;</span> <span class="c">//enemy.speed is now -2</span>
<span class="number"> 11</span>      <span class="k2">}</span>
<span class="number"> 12</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&lt;</span><span class="k3">=</span> posX2<span class="k2">)</span> <span class="c">//1162 &lt;= posX2, so enter block</span>
<span class="number"> 13</span>      <span class="k2">{</span>
<span class="number"> 14</span>        enemy.x <span class="k3">=</span> posX2<span class="k2">;</span> <span class="c">//enemy.x is now 1229</span>
<span class="number"> 15</span>        enemy.speed <span class="k3">=</span> enemy.speedR<span class="k2">;</span> <span class="c">//enemy.speed is now 2</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="k2">}</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="c">//the second and all future calls to updateEnemy for enemy2 will go like this:</span>
<span class="number"> 21</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy <span class="k3">&amp;</span>enemy, <span class="k1">int</span> posX, <span class="k1">int</span> posX2<span class="k2">)</span>
<span class="number"> 22</span><span class="k2">{</span>
<span class="number"> 23</span>  <span class="k1">if</span><span class="k2">(</span>enemy.live<span class="k2">)</span> <span class="c">//enemy2.live is true, so enter block</span>
<span class="number"> 24</span>  <span class="k2">{</span>
<span class="number"> 25</span>    enemy.x <span class="k3">+</span><span class="k3">=</span> enemy.speed<span class="k2">;</span> <span class="c">//1229 - 2. enemy2.x is now 1227</span>
<span class="number"> 26</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&gt;</span><span class="k3">=</span> posX<span class="k2">)</span> <span class="c">//1227 &gt;= posX, so enter block</span>
<span class="number"> 27</span>      <span class="k2">{</span>
<span class="number"> 28</span>        enemy.x <span class="k3">=</span> posX<span class="k2">;</span> <span class="c">//enemy.x is now 1162</span>
<span class="number"> 29</span>        enemy.speed <span class="k3">=</span> enemy.speedL<span class="k2">;</span> <span class="c">//enemy.speed is now -2</span>
<span class="number"> 30</span>      <span class="k2">}</span>
<span class="number"> 31</span>      <span class="k1">if</span><span class="k2">(</span>enemy.x <span class="k3">&lt;</span><span class="k3">=</span> posX2<span class="k2">)</span> <span class="c">//1162 &lt;= posX2, so enter block</span>
<span class="number"> 32</span>      <span class="k2">{</span>
<span class="number"> 33</span>        enemy.x <span class="k3">=</span> posX2<span class="k2">;</span> <span class="c">//enemy.x is now 1229</span>
<span class="number"> 34</span>        enemy.speed <span class="k3">=</span> enemy.speedR<span class="k2">;</span> <span class="c">//enemy.speed is now 2</span>
<span class="number"> 35</span>      <span class="k2">}</span>
<span class="number"> 36</span>  <span class="k2">}</span>
<span class="number"> 37</span><span class="k2">}</span>
</div></div><p>

Long story short, your enemy will always be stuck at 1229 because of the input to the function.</p><p>How about giving the Enemy struct a <span class="source-code">minimum_x</span> and a <span class="source-code">maximum_x</span>? I think it would make your life easier.</p><p>You will definitely benefit from Dizzy&#39;s suggestion. Simplification like that will lead to a lot less code, which means a lot less confusion. If you keep your enemies (and other game objects, for that matter) in arrays, you can keep track of them and update them in one stroke. You can even do collision functions for all of them in one loop, instead of writing something like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy1<span class="k2">)</span><span class="k2">)</span>
<span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy2<span class="k2">)</span><span class="k2">)</span>
<span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy3<span class="k2">)</span><span class="k2">)</span>
<span class="c">//...</span>
<span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy498<span class="k2">)</span><span class="k2">)</span>
<span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy499<span class="k2">)</span><span class="k2">)</span>
<span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, enemy500<span class="k2">)</span><span class="k2">)</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Sun, 24 Feb 2013 10:15:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s what I did with class arrays. However, I couldn&#39;t get the first enemy to draw, so I instantiated and new enemy object <span class="source-code">Enemy enemy2<span class="k2">[</span>NUM_ENEMY<span class="k2">]</span><span class="k2">;</span></span>. But instantiating a new enemy kind of contradicts the idea of class arrays because I still need to do collision for each enemy. (It wouldn&#39;t let me post a reply for some reason, so I just had to edit this post)
</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>nclude <span class="k3">&lt;</span>allegro5<span class="k3">/</span>allegro.h&gt;
<span class="number">   2</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5/allegro_font.h&gt;</span>
<span class="number">   4</span><span class="p">#include &lt;allegro5/allegro_ttf.h&gt;</span>
<span class="number">   5</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">   6</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">   7</span><span class="p">#include &lt;allegro5/allegro_audio.h&gt;</span>
<span class="number">   8</span><span class="p">#include &lt;allegro5/allegro_acodec.h&gt;</span>
<span class="number">   9</span><span class="p">#include &lt;time.h&gt;</span>
<span class="number">  10</span><span class="p">#include &lt;cmath&gt;</span>
<span class="number">  11</span><span class="p">#include "objects.h"</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#define ScreenWidth 800</span>
<span class="number">  14</span><span class="p">#define ScreenHeight 600</span>
<span class="number">  15</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="c">//////////////////////////////////////</span>
<span class="number">  18</span><span class="c">//    SORT OUT ARROW PROBLEM      //</span>
<span class="number">  19</span><span class="c">//////////////////////////////////////</span>
<span class="number">  20</span>
<span class="number">  21</span>
<span class="number">  22</span><span class="c">//Prototpyes</span>
<span class="number">  23</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span>
<span class="number">  25</span>
<span class="number">  26</span><span class="k1">void</span> initEnemy<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> numEnemy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span><span class="k1">void</span> drawEnemy<span class="k2">(</span>Enemy enemy<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>image, <span class="k1">int</span> numEnemy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  28</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> posX, <span class="k1">int</span> posX2, <span class="k1">int</span> numEnemy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span><span class="k1">bool</span> collideArrow<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, Arrow <span class="k3">&amp;</span>arrow, <span class="k1">bool</span> eLive, <span class="k1">bool</span> aLive, <span class="k1">int</span> numEnemy<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span><span class="k1">void</span> initCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span><span class="k1">bool</span> coinCollide<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin,Player <span class="k3">&amp;</span>player ,<span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span>
<span class="number">  40</span><span class="k1">void</span> initKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  41</span><span class="k1">void</span> drawKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span><span class="k1">bool</span> collision<span class="k2">(</span>Player <span class="k3">&amp;</span>player, <span class="k1">int</span> ex, <span class="k1">int</span> ey, <span class="k1">int</span> eWidth, <span class="k1">int</span> eHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span>
<span class="number">  45</span><span class="k1">void</span> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition,Player <span class="k3">&amp;</span>player, <span class="k1">float</span> width, <span class="k1">float</span> height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span><span class="c">//Global Variables</span>
<span class="number">  48</span><span class="k1">enum</span> direction <span class="k2">{</span>LEFT, RIGHT<span class="k2">}</span><span class="k2">;</span>
<span class="number">  49</span><span class="k1">int</span> dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number">  50</span><span class="k1">const</span> <span class="k1">int</span> NUM_ENEMY <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  51</span><span class="k1">bool</span> fired <span class="k3">=</span> <span class="k1">false</span>, firedR <span class="k3">=</span> <span class="k1">false</span>, firedL <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  52</span><span class="k1">bool</span> coinLive <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  53</span><span class="k1">bool</span> left, right <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  54</span><span class="k1">const</span> <span class="k1">float</span> gravity <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  57</span><span class="k2">{</span>
<span class="number">  58</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span>display<span class="k2">;</span>
<span class="number">  59</span>
<span class="number">  60</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">  61</span>  <span class="k2">{</span>
<span class="number">  62</span>    <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="s">"Error"</span>, <span class="s">"Falied to initialize allegro"</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  64</span>  <span class="k2">}</span>
<span class="number">  65</span>  
<span class="number">  66</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>ScreenWidth, ScreenHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>display<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_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span><span class="n">0</span>, <span class="n">0</span>, <span class="s">"Error"</span>, <span class="s">"Falied to initialize the display"</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  71</span>    <span class="k1">return</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number">  72</span>  <span class="k2">}</span>
<span class="number">  73</span>
<span class="number">  74</span>  Player player<span class="k2">;</span>
<span class="number">  75</span>  Enemy enemy<span class="k2">[</span>NUM_ENEMY<span class="k2">]</span><span class="k2">;</span>
<span class="number">  76</span>  Enemy enemy2<span class="k2">[</span>NUM_ENEMY<span class="k2">]</span><span class="k2">;</span>
<span class="number">  77</span>  Coin coin<span class="k2">;</span>
<span class="number">  78</span>  Coin coin2<span class="k2">;</span>
<span class="number">  79</span>  Arrow arrow<span class="k2">;</span>
<span class="number">  80</span>  Key <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">;</span>
<span class="number">  81</span>  <span class="k1">int</span> groundHeight <span class="k3">=</span> <span class="n">535</span><span class="k2">;</span>
<span class="number">  82</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span>, active <span class="k3">=</span> <span class="k1">false</span>, draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  83</span>  <span class="k1">bool</span> jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  84</span>  <span class="k1">bool</span> gotKey <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  85</span>  <span class="k1">int</span> sourceX <span class="k3">=</span> <span class="n">32</span>, sourceY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  86</span>  <span class="k1">int</span> coinCount <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  87</span>  <span class="k1">const</span> <span class="k1">float</span> FPS <span class="k3">=</span> <span class="n">60</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  88</span>  <span class="k1">const</span> <span class="k1">float</span> frameFPS <span class="k3">=</span> <span class="n">15</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  89</span>  <span class="k1">float</span> jumpSpeed <span class="k3">=</span> <span class="n">15</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  90</span>  <span class="k1">float</span> velX <span class="k3">=</span> <span class="n">0</span>, velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  91</span>  
<span class="number">  92</span>  <span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span> <span class="k3">=</span> <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>
<span class="number">  94</span>  
<span class="number">  95</span>
<span class="number">  96</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">  97</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">  98</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">  99</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"> 100</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"> 101</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"> 102</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"> 103</span>
<span class="number"> 104</span>  initPlayer<span class="k2">(</span>player<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 105</span>  initEnemy<span class="k2">(</span>enemy, <span class="n">86</span>, <span class="n">391</span>, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>  initEnemy<span class="k2">(</span>enemy2, <span class="n">1167</span>, <span class="n">333</span>, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 107</span>  initArrow<span class="k2">(</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 108</span>  initCoin<span class="k2">(</span>coin, <span class="n">550</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>  initCoin<span class="k2">(</span>coin2, <span class="n">120</span>, <span class="n">398</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>  initKey<span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 111</span>
<span class="number"> 112</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_KEYBOARD_STATE"><span class="a">ALLEGRO_KEYBOARD_STATE</span></a> keystate<span class="k2">;</span>
<span class="number"> 113</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> camera<span class="k2">;</span>
<span class="number"> 114</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a> identity<span class="k2">;</span>
<span class="number"> 115</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>coinCollect <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">"Files/coin collect sound.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot <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">"Files/bow sound effect.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 117</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bgSong <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">"Files/Background song 2.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>keyCollection <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">"Files/key collection.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 119</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>crocSound <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">"Files/Crocodile sound effect.wav"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 120</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE_INSTANCE"><span class="a">ALLEGRO_SAMPLE_INSTANCE</span></a> <span class="k3">*</span>songInstance <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>bgSong<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>enemyImg <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">"Files/enemy.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 122</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>background2 <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">"Files/Background 2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</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">"Files/spritesheet(Bow &amp; left + right).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 124</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>arrow_r <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">"Files/Arrow(RIGHT).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>arrow_l <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">"Files/Arrow(LEFT).png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>coinImg <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">"Files/coin2.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>keyImg <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">"Files/key.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>ground <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">"Files/Ground.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 129</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</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_font"><span class="a">al_load_font</span></a><span class="k2">(</span><span class="s">"Files/JUNGBN__.TTF"</span>, <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</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"> 131</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span>frameTimer <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>frameFPS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</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> <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"> 133</span>
<span class="number"> 134</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">5</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Respresents how many audio clips I have in the game</span>
<span class="number"> 135</span>
<span class="number"> 136</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>songInstance, ALLEGRO_PLAYMODE_LOOP<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</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>songInstance, <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"> 138</span>  <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"Australian Outback"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</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"> 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_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"> 141</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>frameTimer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</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_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"> 143</span>  
<span class="number"> 144</span>  <span class="c">//al_play_sample_instance(songInstance);</span>
<span class="number"> 145</span>
<span class="number"> 146</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"> 147</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>frameTimer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 149</span>  <span class="k2">{</span>
<span class="number"> 150</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> event<span class="k2">;</span>
<span class="number"> 151</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>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 152</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>keystate<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 153</span>      
<span class="number"> 154</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>keystate, ALLEGRO_KEY_ESCAPE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 155</span>    <span class="k2">{</span>
<span class="number"> 156</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 157</span>    <span class="k2">}</span>
<span class="number"> 158</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 159</span>    <span class="k2">{</span>
<span class="number"> 160</span>      done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 161</span>    <span class="k2">}</span>
<span class="number"> 162</span>    
<span class="number"> 163</span>    
<span class="number"> 164</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 165</span>    <span class="k2">{</span>
<span class="number"> 166</span>      <span class="k1">if</span><span class="k2">(</span>event.timer.source <span class="k3">=</span><span class="k3">=</span> timer<span class="k2">)</span>
<span class="number"> 167</span>      <span class="k2">{</span>
<span class="number"> 168</span>        active <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 169</span>        updateArrow<span class="k2">(</span>arrow<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>        updateEnemy<span class="k2">(</span>enemy, <span class="n">238</span>, <span class="n">78</span>, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 171</span>        updateEnemy<span class="k2">(</span>enemy2, <span class="n">1236</span>, <span class="n">1167</span>, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 172</span>
<span class="number"> 173</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>keystate, ALLEGRO_KEY_D<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 174</span>        <span class="k2">{</span>
<span class="number"> 175</span>          velX <span class="k3">=</span> player.speed<span class="k2">;</span>
<span class="number"> 176</span>          dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 177</span>        
<span class="number"> 178</span>        <span class="k2">}</span>
<span class="number"> 179</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>keystate, ALLEGRO_KEY_A<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 180</span>        <span class="k2">{</span>
<span class="number"> 181</span>          velX <span class="k3">=</span> <span class="k3">-</span>player.speed<span class="k2">;</span>
<span class="number"> 182</span>          dir <span class="k3">=</span> LEFT<span class="k2">;</span>
<span class="number"> 183</span>        <span class="k2">}</span>
<span class="number"> 184</span>        <span class="k1">else</span> 
<span class="number"> 185</span>        <span class="k2">{</span>
<span class="number"> 186</span>          velX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 187</span>          active <span class="k3">=</span> <span class="k1">false</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><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>keystate, ALLEGRO_KEY_W<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump<span class="k2">)</span>
<span class="number"> 190</span>        <span class="k2">{</span>
<span class="number"> 191</span>          velY <span class="k3">=</span> <span class="k3">-</span>jumpSpeed<span class="k2">;</span>
<span class="number"> 192</span>          jump <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 193</span>        <span class="k2">}</span>
<span class="number"> 194</span>      <span class="k2">}</span>
<span class="number"> 195</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>event.timer.source <span class="k3">=</span> frameTimer<span class="k2">)</span>
<span class="number"> 196</span>      <span class="k2">{</span>
<span class="number"> 197</span>        <span class="k1">if</span><span class="k2">(</span>active<span class="k2">)</span>
<span class="number"> 198</span>        <span class="k2">{</span>
<span class="number"> 199</span>          sourceX <span class="k3">+</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>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">3</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="number"> 202</span>        <span class="k2">{</span>
<span class="number"> 203</span>          sourceX <span class="k3">=</span> <span class="n">32</span><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>sourceX <span class="k3">&gt;</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>character<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 206</span>        <span class="k2">{</span>
<span class="number"> 207</span>          sourceX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 208</span>        <span class="k2">}</span>
<span class="number"> 209</span>          sourceY <span class="k3">=</span> dir<span class="k2">;</span>
<span class="number"> 210</span>  
<span class="number"> 211</span>        
<span class="number"> 212</span>      <span class="k2">}</span>
<span class="number"> 213</span>      
<span class="number"> 214</span>        <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>jump<span class="k2">)</span>
<span class="number"> 215</span>          velY <span class="k3">+</span><span class="k3">=</span> gravity<span class="k2">;</span>
<span class="number"> 216</span>        <span class="k1">else</span>
<span class="number"> 217</span>          velY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 218</span>          player.x <span class="k3">+</span><span class="k3">=</span> velX<span class="k2">;</span>
<span class="number"> 219</span>          player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 220</span>      
<span class="number"> 221</span>          jump <span class="k3">=</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span><span class="k3">=</span> groundHeight<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 222</span>
<span class="number"> 223</span>          <span class="k1">if</span><span class="k2">(</span>jump<span class="k2">)</span>
<span class="number"> 224</span>          <span class="k2">{</span>
<span class="number"> 225</span>                player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 226</span>          <span class="k2">}</span>  draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 227</span>      
<span class="number"> 228</span>
<span class="number"> 229</span>      cameraUpdate<span class="k2">(</span>cameraPosition, player, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 230</span>      <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 231</span>      <a href="http://www.allegro.cc/manual/al_translate_transform"><span class="a">al_translate_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>, <span class="k3">-</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 232</span>      <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>
<span class="number"> 234</span>    <span class="k2">}</span>
<span class="number"> 235</span>    
<span class="number"> 236</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>keystate, ALLEGRO_KEY_SPACE<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 237</span>    <span class="k2">{</span>
<span class="number"> 238</span>      fireArrow<span class="k2">(</span>arrow, player, bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 239</span>    <span class="k2">}</span>
<span class="number"> 240</span>    <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">371</span>, <span class="n">470</span>, <span class="n">325</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//First Platform (long)</span>
<span class="number"> 241</span>    <span class="k2">{</span>
<span class="number"> 242</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">470</span><span class="k2">)</span>
<span class="number"> 243</span>      <span class="k2">{</span>
<span class="number"> 244</span>        groundHeight <span class="k3">=</span> <span class="n">470</span><span class="k2">;</span>
<span class="number"> 245</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 246</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<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="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">70</span>, <span class="n">390</span>, <span class="n">200</span>, <span class="n">38</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Second Platform (short)</span>
<span class="number"> 250</span>    <span class="k2">{</span>
<span class="number"> 251</span>      groundHeight <span class="k3">=</span> <span class="n">390</span><span class="k2">;</span>
<span class="number"> 252</span>      player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 253</span>      player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 254</span>    <span class="k2">}</span>
<span class="number"> 255</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">79</span>, <span class="n">275</span>, <span class="n">200</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Third Platform (short)</span>
<span class="number"> 256</span>    <span class="k2">{</span>
<span class="number"> 257</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">275</span><span class="k2">)</span>
<span class="number"> 258</span>      <span class="k2">{</span>
<span class="number"> 259</span>        groundHeight <span class="k3">=</span> <span class="n">275</span><span class="k2">;</span>
<span class="number"> 260</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 261</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 262</span>      <span class="k2">}</span>
<span class="number"> 263</span>    <span class="k2">}</span>
<span class="number"> 264</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">313</span>, <span class="n">220</span>, <span class="n">250</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Fourth Platform (Medium)</span>
<span class="number"> 265</span>    <span class="k2">{</span>
<span class="number"> 266</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">220</span><span class="k2">)</span>
<span class="number"> 267</span>      <span class="k2">{</span>
<span class="number"> 268</span>        groundHeight <span class="k3">=</span> <span class="n">220</span><span class="k2">;</span>
<span class="number"> 269</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 270</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 271</span>      <span class="k2">}</span>
<span class="number"> 272</span>    <span class="k2">}</span>
<span class="number"> 273</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">655</span>, <span class="n">165</span>, <span class="n">36</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Fifth Platform (first tiny)</span>
<span class="number"> 274</span>    <span class="k2">{</span>
<span class="number"> 275</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">165</span><span class="k2">)</span>
<span class="number"> 276</span>      <span class="k2">{</span>
<span class="number"> 277</span>        groundHeight <span class="k3">=</span> <span class="n">165</span><span class="k2">;</span>
<span class="number"> 278</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 279</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>  
<span class="number"> 280</span>      <span class="k2">}</span>
<span class="number"> 281</span>    <span class="k2">}</span>
<span class="number"> 282</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">582</span>, <span class="n">70</span>, <span class="n">33</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Sixth Platform (second tiny)</span>
<span class="number"> 283</span>    <span class="k2">{</span>
<span class="number"> 284</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">70</span><span class="k2">)</span>
<span class="number"> 285</span>      <span class="k2">{</span>
<span class="number"> 286</span>        groundHeight <span class="k3">=</span> <span class="n">70</span><span class="k2">;</span>
<span class="number"> 287</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 288</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 289</span>      <span class="k2">}</span>
<span class="number"> 290</span>    <span class="k2">}</span>
<span class="number"> 291</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">763</span>, <span class="n">30</span>, <span class="n">36</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Seventh Platform (third tiny)</span>
<span class="number"> 292</span>    <span class="k2">{</span>
<span class="number"> 293</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">30</span><span class="k2">)</span>
<span class="number"> 294</span>      <span class="k2">{</span>
<span class="number"> 295</span>        groundHeight <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number"> 296</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 297</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 298</span>      <span class="k2">}</span>      
<span class="number"> 299</span>    <span class="k2">}</span>
<span class="number"> 300</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">926</span>, <span class="n">77</span>, <span class="n">200</span>, <span class="n">38</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Eighth Platform (short)</span>
<span class="number"> 301</span>    <span class="k2">{</span>
<span class="number"> 302</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">77</span><span class="k2">)</span>
<span class="number"> 303</span>      <span class="k2">{</span>
<span class="number"> 304</span>        groundHeight <span class="k3">=</span> <span class="n">77</span><span class="k2">;</span>
<span class="number"> 305</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 306</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 307</span>      <span class="k2">}</span>
<span class="number"> 308</span>    <span class="k2">}</span>
<span class="number"> 309</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">926</span>, <span class="n">150</span>, <span class="n">200</span>, <span class="n">38</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Ninth platform (short)</span>
<span class="number"> 310</span>    <span class="k2">{</span>
<span class="number"> 311</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">150</span><span class="k2">)</span>
<span class="number"> 312</span>      <span class="k2">{</span>
<span class="number"> 313</span>        groundHeight <span class="k3">=</span> <span class="n">150</span><span class="k2">;</span>
<span class="number"> 314</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 315</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 316</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>collision<span class="k2">(</span>player, <span class="n">1202</span>, <span class="n">120</span>, <span class="n">36</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Tenth platform (fourth tiny)</span>
<span class="number"> 319</span>    <span class="k2">{</span>
<span class="number"> 320</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">120</span><span class="k2">)</span>
<span class="number"> 321</span>      <span class="k2">{</span>
<span class="number"> 322</span>        groundHeight <span class="k3">=</span> <span class="n">120</span><span class="k2">;</span>
<span class="number"> 323</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 324</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 325</span>      <span class="k2">}</span>
<span class="number"> 326</span>    <span class="k2">}</span>
<span class="number"> 327</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">1162</span>, <span class="n">335</span>, <span class="n">118</span>, <span class="n">38</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//11th Platform (first short medium)</span>
<span class="number"> 328</span>    <span class="k2">{</span>
<span class="number"> 329</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">335</span><span class="k2">)</span>
<span class="number"> 330</span>      <span class="k2">{</span>
<span class="number"> 331</span>        groundHeight <span class="k3">=</span> <span class="n">335</span><span class="k2">;</span>
<span class="number"> 332</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 333</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 334</span>      <span class="k2">}</span>
<span class="number"> 335</span>    <span class="k2">}</span>
<span class="number"> 336</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">1045</span>, <span class="n">327</span>, <span class="n">36</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//12th Platform (fifth tiny)</span>
<span class="number"> 337</span>    <span class="k2">{</span>
<span class="number"> 338</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">327</span><span class="k2">)</span>
<span class="number"> 339</span>      <span class="k2">{</span>
<span class="number"> 340</span>        groundHeight <span class="k3">=</span> <span class="n">327</span><span class="k2">;</span>
<span class="number"> 341</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 342</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 343</span>      <span class="k2">}</span>
<span class="number"> 344</span>    <span class="k2">}</span>
<span class="number"> 345</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">916</span>, <span class="n">327</span>, <span class="n">36</span>, <span class="n">30</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//13th Platform (sixth tiny)</span>
<span class="number"> 346</span>    <span class="k2">{</span>
<span class="number"> 347</span>      <span class="k1">if</span><span class="k2">(</span>player.y <span class="k3">&gt;</span> <span class="n">327</span><span class="k2">)</span>
<span class="number"> 348</span>      <span class="k2">{</span>
<span class="number"> 349</span>        groundHeight <span class="k3">=</span> <span class="n">327</span><span class="k2">;</span>
<span class="number"> 350</span>        player.y <span class="k3">=</span> groundHeight<span class="k2">;</span>
<span class="number"> 351</span>        player.y <span class="k3">+</span><span class="k3">=</span> velY<span class="k2">;</span>
<span class="number"> 352</span>      <span class="k2">}</span>
<span class="number"> 353</span>    <span class="k2">}</span>
<span class="number"> 354</span>    <span class="k1">else</span>
<span class="number"> 355</span>    <span class="k2">{</span>
<span class="number"> 356</span>      groundHeight <span class="k3">=</span> <span class="n">535</span><span class="k2">;</span>
<span class="number"> 357</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">if</span><span class="k2">(</span>coinCollide<span class="k2">(</span>coin, player, coin.x, coin.y, coin.width, coin.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number">   2</span>    <span class="k2">{</span>
<span class="number">   3</span>      coin.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">   4</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number">   5</span>      coin.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">   6</span>      coin.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">   7</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <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_ONCE, <span class="n">0</span><span class="k2">)</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>coinCollide<span class="k2">(</span>coin2, player, coin2.x, coin2.y, coin2.width, coin2.height, <span class="n">32</span>, <span class="n">32</span>, coinLive, coinCount<span class="k2">)</span><span class="k2">)</span>
<span class="number">  10</span>    <span class="k2">{</span>
<span class="number">  11</span>      coin2.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  12</span>      <span class="k3">+</span><span class="k3">+</span>coinCount<span class="k2">;</span>
<span class="number">  13</span>      coin2.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">  14</span>      coin2.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">  15</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>coinCollect, <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_ONCE, <span class="n">0</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="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, key.x, key.y, key.width, key.height, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Collide with key</span>
<span class="number">  18</span>    <span class="k2">{</span>
<span class="number">  19</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>keyCollection, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  20</span>      key.x <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">  21</span>      key.y <span class="k3">=</span> <span class="k3">-</span><span class="n">500</span><span class="k2">;</span>
<span class="number">  22</span>      key.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  23</span>      gotKey <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  24</span>    <span class="k2">}</span>
<span class="number">  25</span>    <span class="c">/*if(collision(player, enemy.x, enemy.y, enemy.width, enemy.height, 32, 32))//Player collision with enemy</span>
<span class="number">  26</span><span class="c">    {</span>
<span class="number">  27</span><span class="c">      player.x = 10;</span>
<span class="number">  28</span><span class="c">      player.y = 546;</span>
<span class="number">  29</span><span class="c">      --player.lives;</span>
<span class="number">  30</span><span class="c">      arrow.live = false;</span>
<span class="number">  31</span><span class="c">      dir = RIGHT;</span>
<span class="number">  32</span><span class="c">    }</span>
<span class="number">  33</span><span class="c">    if(collision(player, enemy2.x, enemy2.y, enemy2.width, enemy2.width, 32, 32))//Player collision with enemy</span>
<span class="number">  34</span><span class="c">    {</span>
<span class="number">  35</span><span class="c">      player.x = 10;</span>
<span class="number">  36</span><span class="c">      player.y = 546;</span>
<span class="number">  37</span><span class="c">      --player.lives;</span>
<span class="number">  38</span><span class="c">      arrow.live = false;</span>
<span class="number">  39</span><span class="c">      dir = RIGHT;</span>
<span class="number">  40</span><span class="c">    }*/</span>
<span class="number">  41</span>    <span class="k1">if</span><span class="k2">(</span>collision<span class="k2">(</span>player, <span class="n">1220</span>, <span class="n">535</span>, <span class="n">90</span>, <span class="n">61</span>, <span class="n">32</span>, <span class="n">32</span><span class="k2">)</span><span class="k2">)</span><span class="c">//Crocodile collision</span>
<span class="number">  42</span>    <span class="k2">{</span>
<span class="number">  43</span>      player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  44</span>      player.y <span class="k3">=</span> <span class="n">535</span><span class="k2">;</span>
<span class="number">  45</span>      <span class="k3">-</span><span class="k3">-</span>player.lives<span class="k2">;</span>
<span class="number">  46</span>    <span class="k2">}</span>
<span class="number">  47</span>    <span class="k1">if</span><span class="k2">(</span>player.x <span class="k3">=</span><span class="k3">=</span> <span class="n">1090</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> player.y <span class="k3">=</span><span class="k3">=</span> <span class="n">535</span><span class="k2">)</span>
<span class="number">  48</span>    <span class="k2">{</span>
<span class="number">  49</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>crocSound, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  50</span>    <span class="k2">}</span>
<span class="number">  51</span>    <span class="c">/*if(collideArrow(enemy, arrow, enemy.live, arrow.live))//Arrow Collision with enemy</span>
<span class="number">  52</span><span class="c">    {</span>
<span class="number">  53</span><span class="c">      enemy.live = false;</span>
<span class="number">  54</span><span class="c">      enemy.x = 0;</span>
<span class="number">  55</span><span class="c">      enemy.y = 0;</span>
<span class="number">  56</span><span class="c">      arrow.live = false;</span>
<span class="number">  57</span><span class="c">      ++player.score;</span>
<span class="number">  58</span><span class="c">    }</span>
<span class="number">  59</span><span class="c">    if(collideArrow(enemy2, arrow, enemy2.live, arrow.live))//Arrow Collision with enemy</span>
<span class="number">  60</span><span class="c">    {</span>
<span class="number">  61</span><span class="c">      enemy2.live = false;</span>
<span class="number">  62</span><span class="c">      enemy2.x = 0;</span>
<span class="number">  63</span><span class="c">      enemy2.y = 0;</span>
<span class="number">  64</span><span class="c">      arrow.live = false;</span>
<span class="number">  65</span><span class="c">      ++player.score;</span>
<span class="number">  66</span><span class="c">    }*/</span>
<span class="number">  67</span>  
<span class="number">  68</span>  <span class="k1">if</span><span class="k2">(</span>draw <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">  69</span>  <span class="k2">{</span>
<span class="number">  70</span>    draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  71</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>background2, <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">  72</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>character, sourceX, sourceY <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>character<span class="k2">)</span> <span class="k3">/</span> <span class="n">2</span>, <span class="n">32</span>, <span class="n">32</span>, player.x, player.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>    drawKey<span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, keyImg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  74</span>    drawArrow<span class="k2">(</span>arrow, arrow_r, arrow_l<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>    drawCoin<span class="k2">(</span>coin, coinImg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>    drawCoin<span class="k2">(</span>coin2, coinImg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</span>    drawEnemy<span class="k2">(</span>enemy, enemyImg, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  78</span>    drawEnemy<span class="k2">(</span>enemy2, enemyImg, NUM_ENEMY<span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>    <a href="http://www.allegro.cc/manual/al_identity_transform"><span class="a">al_identity_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>identity<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>    <a href="http://www.allegro.cc/manual/al_use_transform"><span class="a">al_use_transform</span></a><span class="k2">(</span><span class="k3">&amp;</span>identity<span class="k2">)</span><span class="k2">;</span>
<span class="number">  81</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <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">252</span>,<span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">10</span>, <span class="n">0</span>, <span class="s">"Arrows: %i"</span>, arrow.arrowCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  82</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <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">252</span>, <span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">10</span>, <span class="n">50</span>, <span class="n">0</span>, <span class="s">"Coins: %i"</span>, coinCount<span class="k2">)</span><span class="k2">;</span>
<span class="number">  83</span>    <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/font"><span class="a">font</span></a>, <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">252</span>, <span class="n">209</span>, <span class="n">22</span><span class="k2">)</span>, <span class="n">110</span>, <span class="n">10</span>, <span class="n">0</span>, <span class="s">"Lives: %i"</span>, player.lives<span class="k2">)</span><span class="k2">;</span>
<span class="number">  84</span>    <span class="c">//al_draw_textf(fps, al_map_rgb(252, 209, 22), 110, 50, 0, "FPS: %i", FPS);</span>
<span class="number">  85</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">  86</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">255</span>, <span class="n">255</span>, <span class="n">255</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>
<span class="number">  88</span>  <span class="k2">}</span>
<span class="number">  89</span>  <span class="k2">}</span>
<span class="number">  90</span>
<span class="number">  91</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>character<span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>ground<span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>coinImg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>background2<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>arrow_l<span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>arrow_r<span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>keyImg<span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>coinCollect<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>bowShot<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>bgSong<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>  <a href="http://www.allegro.cc/manual/al_destroy_sample"><span class="a">al_destroy_sample</span></a><span class="k2">(</span>keyCollection<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</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>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>  <a href="http://www.allegro.cc/manual/al_destroy_font"><span class="a">al_destroy_font</span></a><span class="k2">(</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"> 104</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"> 105</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"> 106</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"> 107</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 108</span><span class="k2">}</span>
<span class="number"> 109</span><span class="k1">void</span> initPlayer<span class="k2">(</span>Player <span class="k3">&amp;</span>player<span class="k2">)</span>
<span class="number"> 110</span><span class="k2">{</span>
<span class="number"> 111</span>  player.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 112</span>  player.y <span class="k3">=</span> <span class="n">535</span><span class="k2">;</span>
<span class="number"> 113</span>  player.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 114</span>  player.speed <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 115</span>  player.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 116</span>  dir <span class="k3">=</span> RIGHT<span class="k2">;</span>
<span class="number"> 117</span><span class="k2">}</span>
<span class="number"> 118</span>
<span class="number"> 119</span><span class="k1">void</span> initEnemy<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> x, <span class="k1">int</span> y, <span class="k1">int</span> numEnemy<span class="k2">)</span>
<span class="number"> 120</span><span class="k2">{</span>
<span class="number"> 121</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> numEnemy<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 122</span>  <span class="k2">{</span>
<span class="number"> 123</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 124</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.speedR <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 125</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.speedL <span class="k3">=</span> <span class="k3">-</span><span class="n">2</span><span class="k2">;</span>
<span class="number"> 126</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 127</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 128</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 129</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.width <span class="k3">=</span> <span class="n">29</span><span class="k2">;</span>
<span class="number"> 130</span>    enemy<span class="k2">[</span>i<span class="k2">]</span>.height <span class="k3">=</span> <span class="n">29</span><span class="k2">;</span>
<span class="number"> 131</span>  <span class="k2">}</span>
<span class="number"> 132</span>
<span class="number"> 133</span><span class="k2">}</span>
<span class="number"> 134</span><span class="k1">void</span> drawEnemy<span class="k2">(</span>Enemy enemy<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>image, <span class="k1">int</span> numEnemy<span class="k2">)</span>
<span class="number"> 135</span><span class="k2">{</span>
<span class="number"> 136</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> numEnemy<span class="k2">;</span> i<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>enemy<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 139</span>    <span class="k2">{</span>
<span class="number"> 140</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, enemy<span class="k2">[</span>i<span class="k2">]</span>.x, enemy<span class="k2">[</span>i<span class="k2">]</span>.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 141</span>    <span class="k2">}</span>
<span class="number"> 142</span>  <span class="k2">}</span>
<span class="number"> 143</span>    
<span class="number"> 144</span><span class="k2">}</span>
<span class="number"> 145</span><span class="k1">void</span> updateEnemy<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> posX, <span class="k1">int</span> posX2, <span class="k1">int</span> numEnemy<span class="k2">)</span>
<span class="number"> 146</span><span class="k2">{</span>
<span class="number"> 147</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> numEnemy<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 148</span>  <span class="k2">{</span>
<span class="number"> 149</span>      <span class="k1">if</span><span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 150</span>      <span class="k2">{</span>
<span class="number"> 151</span>        enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 152</span>        <span class="k1">if</span><span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span><span class="k3">=</span> posX<span class="k2">)</span>
<span class="number"> 153</span>        <span class="k2">{</span>
<span class="number"> 154</span>          enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> posX<span class="k2">;</span>
<span class="number"> 155</span>          enemy<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.speedL<span class="k2">;</span>
<span class="number"> 156</span>        <span class="k2">}</span>
<span class="number"> 157</span>        <span class="k1">if</span><span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span><span class="k3">=</span> posX2<span class="k2">)</span>
<span class="number"> 158</span>        <span class="k2">{</span>
<span class="number"> 159</span>          enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> posX2<span class="k2">;</span>
<span class="number"> 160</span>          enemy<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.speedR<span class="k2">;</span>
<span class="number"> 161</span>        <span class="k2">}</span>
<span class="number"> 162</span>      <span class="k2">}</span>
<span class="number"> 163</span>  <span class="k2">}</span>
<span class="number"> 164</span>
<span class="number"> 165</span><span class="k2">}</span>    
<span class="number"> 166</span><span class="k1">bool</span> collideArrow<span class="k2">(</span>Enemy enemy<span class="k2">[</span><span class="k2">]</span>, Arrow <span class="k3">&amp;</span>arrow, <span class="k1">bool</span> eLive, <span class="k1">bool</span> aLive, <span class="k1">int</span> numEnemy<span class="k2">)</span>
<span class="number"> 167</span><span class="k2">{</span>
<span class="number"> 168</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> numEnemy<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 169</span>  <span class="k2">{</span>
<span class="number"> 170</span>    <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>arrow.x <span class="k3">&gt;</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.width<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>arrow.y <span class="k3">&gt;</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">+</span> enemy<span class="k2">[</span>i<span class="k2">]</span>.height<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 171</span>    <span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span> arrow.x <span class="k3">+</span> arrow.height<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">&gt;</span> arrow.y <span class="k3">+</span> arrow.height<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>enemy<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>arrow.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 172</span>  <span class="k2">{</span>
<span class="number"> 173</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 174</span>  <span class="k2">}</span>
<span class="number"> 175</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 176</span>  <span class="k2">}</span>
<span class="number"> 177</span>  
<span class="number"> 178</span><span class="k2">}</span>
<span class="number"> 179</span>
<span class="number"> 180</span><span class="k1">void</span> initCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <span class="k1">int</span> x, <span class="k1">int</span> y<span class="k2">)</span>
<span class="number"> 181</span><span class="k2">{</span>
<span class="number"> 182</span>  coin.width <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 183</span>  coin.height <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 184</span>  coin.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 185</span>  coin.x <span class="k3">=</span> x<span class="k2">;</span>
<span class="number"> 186</span>  coin.y <span class="k3">=</span> y<span class="k2">;</span>
<span class="number"> 187</span><span class="k2">}</span>
<span class="number"> 188</span><span class="k1">void</span> drawCoin<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 189</span><span class="k2">{</span>
<span class="number"> 190</span>  <span class="k1">float</span> scale <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 191</span>  <span class="k1">float</span> time_step <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 192</span>  <span class="k1">float</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 193</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a> <span class="k3">+</span><span class="k3">=</span> time_step<span class="k2">;</span>
<span class="number"> 194</span>  <span class="k1">float</span> offset_y <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_38.html" target="_blank">abs</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_728.html" target="_blank">sin</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">)</span><span class="k2">)</span> <span class="k3">*</span> scale<span class="k2">;</span>
<span class="number"> 195</span>  <span class="k1">if</span><span class="k2">(</span>coin.live<span class="k2">)</span>
<span class="number"> 196</span>  <span class="k2">{</span>
<span class="number"> 197</span>     <span class="k1">if</span><span class="k2">(</span>image <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span>
<span class="number"> 198</span>       <a href="http://www.allegro.cc/manual/al_draw_filled_circle"><span class="a">al_draw_filled_circle</span></a><span class="k2">(</span>coin.x <span class="k3">-</span> <span class="n">10</span>, coin.y <span class="k3">-</span> <span class="n">10</span>, <span class="n">20</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="number"> 199</span>     <span class="k1">else</span>
<span class="number"> 200</span>     <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, coin.x, coin.y <span class="k3">-</span> offset_y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>  
<span class="number"> 201</span>  <span class="k2">}</span>
<span class="number"> 202</span><span class="k2">}</span>
<span class="number"> 203</span><span class="k1">bool</span> coinCollide<span class="k2">(</span>Coin <span class="k3">&amp;</span>coin,Player <span class="k3">&amp;</span>player, <span class="k1">int</span> cX, <span class="k1">int</span> cY, <span class="k1">int</span> cWidth, <span class="k1">int</span> cHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight, <span class="k1">bool</span> live, <span class="k1">int</span> coinCount<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><span class="k2">(</span>player.x <span class="k3">&gt;</span> cX <span class="k3">+</span> cWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span> cY <span class="k3">+</span> cHeight<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 206</span>    <span class="k2">(</span>cX <span class="k3">&gt;</span> player.x <span class="k3">+</span> pWidth<span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>cY <span class="k3">&gt;</span> player.y <span class="k3">+</span> pHeight<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k2">(</span>coin.live<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 207</span>  <span class="k2">{</span>
<span class="number"> 208</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 209</span>  <span class="k2">}</span>
<span class="number"> 210</span>  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 211</span><span class="k2">}</span>
<span class="number"> 212</span>
<span class="number"> 213</span><span class="k1">void</span> initArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<span class="k2">)</span>
<span class="number"> 214</span><span class="k2">{</span>
<span class="number"> 215</span>    arrow.speed <span class="k3">=</span> <span class="n">4</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 216</span>    arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 217</span>    arrow.arrowCount <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>  
<span class="number"> 218</span>    arrow.width <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="number"> 219</span>    arrow.height <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 220</span>    arrow.aVelX <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> 
<span class="number"> 221</span>    arrow.aVelY <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 222</span><span class="k2">}</span>
<span class="number"> 223</span><span class="k1">void</span> drawArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image2<span class="k2">)</span>
<span class="number"> 224</span><span class="k2">{</span>
<span class="number"> 225</span>    <span class="k1">if</span><span class="k2">(</span>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> dir <span class="k3">=</span><span class="k3">=</span> RIGHT<span class="k2">)</span>
<span class="number"> 226</span>    <span class="k2">{</span>
<span class="number"> 227</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, arrow.x, arrow.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 228</span>    <span class="k2">}</span>
<span class="number"> 229</span>    <span class="k1">if</span><span class="k2">(</span>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> dir <span class="k3">=</span><span class="k3">=</span> LEFT<span class="k2">)</span>
<span class="number"> 230</span>    <span class="k2">{</span>
<span class="number"> 231</span>      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image2, arrow.x, arrow.y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 232</span>    <span class="k2">}</span>
<span class="number"> 233</span>    
<span class="number"> 234</span><span class="k2">}</span>
<span class="number"> 235</span><span class="k1">void</span> fireArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow, Player <span class="k3">&amp;</span>player, <a href="http://www.allegro.cc/manual/ALLEGRO_SAMPLE"><span class="a">ALLEGRO_SAMPLE</span></a> <span class="k3">*</span>bowShot<span class="k2">)</span>
<span class="number"> 236</span><span class="k2">{</span>
<span class="number"> 237</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>arrow.live<span class="k2">)</span>
<span class="number"> 238</span>    <span class="k2">{</span>
<span class="number"> 239</span>      <span class="k3">-</span><span class="k3">-</span>arrow.arrowCount<span class="k2">;</span>
<span class="number"> 240</span>      arrow.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 241</span>      arrow.x <span class="k3">=</span> player.x <span class="k3">+</span> <span class="n">17</span><span class="k2">;</span>
<span class="number"> 242</span>      arrow.y <span class="k3">=</span> player.y <span class="k3">+</span> <span class="n">22</span><span class="k2">;</span>
<span class="number"> 243</span>      fired <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 244</span>      <a href="http://www.allegro.cc/manual/al_play_sample"><span class="a">al_play_sample</span></a><span class="k2">(</span>bowShot, <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_ONCE, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 245</span>      
<span class="number"> 246</span>    <span class="k2">}</span>
<span class="number"> 247</span>  
<span class="number"> 248</span><span class="k2">}</span>
<span class="number"> 249</span><span class="k1">void</span> updateArrow<span class="k2">(</span>Arrow <span class="k3">&amp;</span>arrow<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>arrow.live <span class="k3">&amp;</span><span class="k3">&amp;</span> fired<span class="k2">)</span>
<span class="number"> 252</span>    <span class="k2">{</span>
<span class="number"> 253</span>      <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> RIGHT<span class="k2">)</span>
<span class="number"> 254</span>      <span class="k2">{</span>
<span class="number"> 255</span>        arrow.x <span class="k3">+</span><span class="k3">=</span> arrow.speed<span class="k2">;</span>
<span class="number"> 256</span>      <span class="k2">}</span>
<span class="number"> 257</span>      <span class="k1">if</span><span class="k2">(</span>dir <span class="k3">=</span><span class="k3">=</span> LEFT<span class="k2">)</span>
<span class="number"> 258</span>      <span class="k2">{</span>
<span class="number"> 259</span>        arrow.x <span class="k3">-</span><span class="k3">=</span> arrow.speed<span class="k2">;</span>
<span class="number"> 260</span>      <span class="k2">}</span>
<span class="number"> 261</span>        <span class="k1">if</span><span class="k2">(</span>arrow.x <span class="k3">&gt;</span><span class="k3">=</span>  <span class="n">2000</span> <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 262</span>        <span class="k2">{</span>
<span class="number"> 263</span>          arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 264</span>        <span class="k2">}</span>
<span class="number"> 265</span>        <span class="k1">if</span><span class="k2">(</span>arrow.x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span> <span class="k3">+</span> <span class="n">3</span><span class="k2">)</span>
<span class="number"> 266</span>        <span class="k2">{</span>
<span class="number"> 267</span>          arrow.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 268</span>        <span class="k2">}</span>
<span class="number"> 269</span>        <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>arrow.arrowCount <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 270</span>        <span class="k2">{</span>
<span class="number"> 271</span>          fired <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 272</span>        <span class="k2">}</span>
<span class="number"> 273</span>    
<span class="number"> 274</span>    <span class="k2">}</span>
<span class="number"> 275</span><span class="k2">}</span>
<span class="number"> 276</span>
<span class="number"> 277</span><span class="k1">void</span> initKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span>
<span class="number"> 278</span><span class="k2">{</span>
<span class="number"> 279</span>  key.x <span class="k3">=</span> <span class="n">979</span><span class="k2">;</span>
<span class="number"> 280</span>  key.y <span class="k3">=</span> <span class="n">151</span><span class="k2">;</span>
<span class="number"> 281</span>  key.width <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span>
<span class="number"> 282</span>  key.height <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span>
<span class="number"> 283</span>  key.live <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 284</span><span class="k2">}</span>
<span class="number"> 285</span><span class="k1">void</span> drawKey<span class="k2">(</span>Key <span class="k3">&amp;</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a>, <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">)</span>
<span class="number"> 286</span><span class="k2">{</span>
<span class="number"> 287</span>  <span class="k1">if</span><span class="k2">(</span>key.live<span class="k2">)</span>
<span class="number"> 288</span>  <span class="k2">{</span>
<span class="number"> 289</span>    <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>image, <span class="n">979</span>, <span class="n">151</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 290</span>  <span class="k2">}</span>
<span class="number"> 291</span><span class="k2">}</span>
<span class="number"> 292</span>
<span class="number"> 293</span><span class="k1">bool</span> collision<span class="k2">(</span>Player <span class="k3">&amp;</span>player, <span class="k1">int</span> ex, <span class="k1">int</span> ey, <span class="k1">int</span> eWidth, <span class="k1">int</span> eHeight, <span class="k1">int</span> pWidth, <span class="k1">int</span> pHeight<span class="k2">)</span>
<span class="number"> 294</span><span class="k2">{</span>
<span class="number"> 295</span>  <span class="k1">if</span><span class="k2">(</span><span class="k2">(</span>player.x <span class="k3">&gt;</span> ex <span class="k3">+</span> eWidth <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>player.y <span class="k3">&gt;</span> ey <span class="k3">+</span> eHeight <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span>
<span class="number"> 296</span>    <span class="k2">(</span>ex <span class="k3">&gt;</span> player.x <span class="k3">+</span> pWidth <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span> <span class="k3">|</span><span class="k3">|</span> <span class="k2">(</span>ey <span class="k3">&gt;</span> player.y <span class="k3">+</span> pHeight <span class="k3">-</span> <span class="n">10</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 297</span>  <span class="k2">{</span>
<span class="number"> 298</span>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 299</span>  <span class="k2">}</span>
<span class="number"> 300</span>  <span class="k1">return</span> <span class="k1">true</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> cameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, Player <span class="k3">&amp;</span>player, <span class="k1">float</span> width, <span class="k1">float</span> height<span class="k2">)</span>
<span class="number"> 304</span><span class="k2">{</span>
<span class="number"> 305</span>  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenWidth <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>player.x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 306</span>  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>ScreenHeight<span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>player.y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 307</span>
<span class="number"> 308</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 309</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 310</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 311</span>    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 312</span>  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="n">3000</span> <span class="k3">-</span> ScreenWidth<span class="k2">)</span>
<span class="number"> 313</span>    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">3000</span> <span class="k3">-</span> ScreenWidth<span class="k2">;</span>
<span class="number"> 314</span>
<span class="number"> 315</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Mon, 25 Feb 2013 00:33:04 +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/612105/977450#target">DJLad16</a> said:</div><div class="quote"><p>
Haha, switching the two numbers around in update enemy got it working. I&#39;ve been at that all day and all I needed to do was that... FML.
</p></div></div><p>
That&#39;s why you should always give your function parameters descriptive names, such as <span class="source-code">minimum_x</span> and <span class="source-code">maximum_x</span>! It will eliminate a lot of problems for you in the future if you remember to do this.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
And dizzy, I tried your suggestion with class arrays, but I couldn&#39;t get it to work.
</p></div></div><p>
Can you show us how you were doing it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Schyfis)</author>
		<pubDate>Mon, 25 Feb 2013 00:54:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I had it, but then undo&#39;d it back to the original. And I&#39;ve been programming and doing stuff for my game for quite some time now and I&#39;m tired, so I&#39;ll give you a post tomorrow if I have the time <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> Thanks for the helping me anyway <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DJLad16)</author>
		<pubDate>Mon, 25 Feb 2013 01:02:28 +0000</pubDate>
	</item>
</rss>
