<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Game Boss-Like</title>
		<link>http://www.allegro.cc/forums/view/610962</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Mon, 03 Sep 2012 00:34:37 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As i went on with the last game i posted on here, i am having difficulty on adding a boss-like in the game. When the ship.score &gt;= 100 if want to &quot;welcome&quot; the boss in the game. I put this piece of code everywhere and it seems that nothing would solve the problem:
</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>ship.score <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 2</span>    <span class="k2">{</span>
<span class="number"> 3</span>    InitComet1<span class="k2">(</span>comets1, NUM_COMETS1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 4</span>    <span class="k2">}</span>
</div></div><p>

Bear in mind that the InitComet1 is another enemy in the game, normally the boss!<br />The thread with the game code is <a href="http://www.allegro.cc/forums/thread/610957">this one</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AleX-G Squadron)</author>
		<pubDate>Sun, 02 Sep 2012 22:00:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Seems like a good opportunity to learn to use the debugger in msvc.  Set a breakpoint on the InitComet1 line (F9 key), press F5 to start debugging.  When the score reaches 100, the breakpoint should get triggered.  If it doesn&#39;t, you need to figure out why.  Make sure that the score actually reaches 100, etc.  Does it work when you do it unconditionally?  That&#39;s one thing to try.</p><p>If you want use to tell you where the bug is, you have to post more code than that, by the way.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (torhu)</author>
		<pubDate>Sun, 02 Sep 2012 22:12:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I would put it were you handle your timer event.</p><p>Anyway, does the scoring system work? does the InitComet work?<br />Does InitComet actually add the enemy to the game?<br />There is nothing wrong with the code you posted so it must surely be something else.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Sun, 02 Sep 2012 22:12:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, i added a breakpoint  and it triggered.<br />Added it in the e.type == ALLEGRO_TIMER<br />The game starts anyway, but no boss appears!!! <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /><br />If i delete the if statement i added, the boss appears immediately!<br />The game works perfect, it is just that the boss wont appear when the event is triggered. <br />I will try different positions and than post here if it works.</p><p>I have other 2 demands about the game, so i dont create other threads.<br />1)How to add High Scores and they save even after you close the game.<br />2)How to make the enemies &quot;convert colors&quot; when they are hit.</p><p>source.cpp
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;allegro5\allegro.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;allegro5\allegro_primitives.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro5\allegro_image.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_font.h&gt;</span>
<span class="number">   6</span><span class="p">#include "objects.h"</span>
<span class="number">   7</span>
<span class="number">   8</span><span class="c">// Buttons</span>
<span class="number">   9</span><span class="k1">enum</span> BUTON<span class="k2">{</span>A,S,D,W,SPACE<span class="k2">}</span><span class="k2">;</span>
<span class="number">  10</span><span class="k1">bool</span> buton<span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span><span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span>,<span class="k1">false</span><span class="k2">}</span><span class="k2">;</span>
<span class="number">  11</span>
<span class="number">  12</span><span class="c">// Globals</span>
<span class="number">  13</span><span class="k1">const</span> <span class="k1">int</span> FPS <span class="k3">=</span> <span class="n">80</span>, width <span class="k3">=</span> <span class="n">1000</span>, height <span class="k3">=</span> <span class="n">500</span><span class="k2">;</span>
<span class="number">  14</span><span class="k1">const</span> <span class="k1">int</span> NUM_BULLETS <span class="k3">=</span> <span class="n">50</span><span class="k2">;</span>
<span class="number">  15</span><span class="k1">const</span> <span class="k1">int</span> NUM_COMETS <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  16</span><span class="k1">const</span> <span class="k1">int</span> NUM_COMETS1 <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  17</span><span class="k1">int</span> x <span class="k3">=</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  18</span><span class="k1">int</span> y <span class="k3">=</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  19</span>
<span class="number">  20</span><span class="c">// Protorypes</span>
<span class="number">  21</span><span class="k1">void</span> InitShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  22</span><span class="k1">void</span> DrawShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  23</span><span class="k1">void</span> MoveShipUp<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  24</span><span class="k1">void</span> MoveShipDown<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span><span class="k1">void</span> MoveShipLeft<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  26</span><span class="k1">void</span> MoveShipRight<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span><span class="k1">void</span> InitBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  29</span><span class="k1">void</span> DrawBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span><span class="k1">void</span> FireBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  31</span><span class="k1">void</span> UpdateBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span><span class="k1">void</span> CollideBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> bSize, Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  33</span><span class="k1">void</span> CollideBullet1<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> bSize, Comet1 comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  34</span>
<span class="number">  35</span><span class="k1">void</span> InitComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">void</span> DrawComet<span class="k2">(</span>Comet comet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span><span class="k1">void</span> StartComet<span class="k2">(</span>Comet comet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">void</span> UpdateComet<span class="k2">(</span>Comet comet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  39</span><span class="k1">void</span> CollideComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span><span class="k1">void</span> InitComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  42</span><span class="k1">void</span> DrawComet1<span class="k2">(</span>Comet1 comet1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  43</span><span class="k1">void</span> StartComet1<span class="k2">(</span>Comet1 comet1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  44</span><span class="k1">void</span> UpdateComet1<span class="k2">(</span>Comet1 comet1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span><span class="k2">;</span>
<span class="number">  45</span><span class="k1">void</span> CollideComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  46</span>
<span class="number">  47</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  48</span><span class="k2">{</span>
<span class="number">  49</span>  <span class="c">// Initialization</span>
<span class="number">  50</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">  51</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">  52</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">  53</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">  54</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">  55</span>
<span class="number">  56</span>  <span class="c">// Installations</span>
<span class="number">  57</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">  58</span>  <a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>
<span class="number">  60</span>  <span class="c">// Variables</span>
<span class="number">  61</span>  SpaceShip ship<span class="k2">;</span>
<span class="number">  62</span>  Bullet bullets<span class="k2">[</span>NUM_BULLETS<span class="k2">]</span><span class="k2">;</span>
<span class="number">  63</span>  Comet comets<span class="k2">[</span>NUM_COMETS<span class="k2">]</span><span class="k2">;</span>
<span class="number">  64</span>  Comet1 comets1<span class="k2">[</span>NUM_COMETS1<span class="k2">]</span><span class="k2">;</span>
<span class="number">  65</span>
<span class="number">  66</span>  <span class="c">// I don't think you are actually using this variable</span>
<span class="number">  67</span>  <span class="k1">int</span> fireCooldown <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  68</span>
<span class="number">  69</span>  <span class="k1">bool</span> quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  70</span>  <span class="k1">bool</span> draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number">  71</span>  <span class="k1">bool</span> GameOver <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  72</span>
<span class="number">  73</span>  <span class="c">// ALLEGRO variables</span>
<span class="number">  74</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a> <span class="k3">*</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>width, height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  75</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>icon <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">"image/1.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  76</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_FONT"><span class="a">ALLEGRO_FONT</span></a> <span class="k3">*</span>font16 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_ttf_font"><span class="a">al_load_ttf_font</span></a><span class="k2">(</span><span class="s">"fonts/1.ttf"</span>, <span class="n">80</span>, ALLEGRO_ALIGN_CENTRE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  77</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> NULL<span class="k2">;</span>
<span class="number">  78</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a> <span class="k3">*</span>event <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  79</span>
<span class="number">  80</span>  event <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">  81</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">  82</span>  
<span class="number">  83</span>  <span class="c">// Events</span>
<span class="number">  84</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event, <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>  <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, <a href="http://www.allegro.cc/manual/al_get_mouse_event_source"><span class="a">al_get_mouse_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>event, <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><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</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, <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">  88</span>
<span class="number">  89</span>  <span class="c">// Window title, icon and mouse hide</span>
<span class="number">  90</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><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a>, <span class="s">"Cigarette Life"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  91</span>  <a href="http://www.allegro.cc/manual/al_set_display_icon"><span class="a">al_set_display_icon</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a>, icon<span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  <a href="http://www.allegro.cc/manual/al_hide_mouse_cursor"><span class="a">al_hide_mouse_cursor</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a><span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>  
<span class="number">  94</span>  <span class="c">// Player initializations</span>
<span class="number">  95</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</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>NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  96</span>  InitShip<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number">  97</span>  InitBullet<span class="k2">(</span>bullets, NUM_BULLETS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  98</span>  InitComet<span class="k2">(</span>comets, NUM_COMETS<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>
<span class="number"> 100</span>  <span class="c">// Start timer</span>
<span class="number"> 101</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>
<span class="number"> 103</span>
<span class="number"> 104</span>  <span class="c">// The drawing</span>
<span class="number"> 105</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span>
<span class="number"> 106</span>  <span class="k2">{</span>
<span class="number"> 107</span>    <span class="c">// Call of the event</span>
<span class="number"> 108</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> e<span class="k2">;</span>
<span class="number"> 109</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, <span class="k3">&amp;</span>e<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 110</span>
<span class="number"> 111</span>    <span class="c">// Drawing</span>
<span class="number"> 112</span>    <span class="k1">if</span><span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 113</span>    <span class="k2">{</span>
<span class="number"> 114</span>      draw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 115</span>    <span class="k1">if</span><span class="k2">(</span>ship.score <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 116</span>    <span class="k2">{</span>
<span class="number"> 117</span>    InitComet1<span class="k2">(</span>comets1, NUM_COMETS1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>    <span class="k2">}</span>
<span class="number"> 119</span>    <span class="k1">if</span><span class="k2">(</span>buton<span class="k2">[</span>A<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 120</span>      MoveShipLeft<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>    <span class="k1">if</span><span class="k2">(</span>buton<span class="k2">[</span>D<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 122</span>      MoveShipRight<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>    <span class="k1">if</span><span class="k2">(</span>buton<span class="k2">[</span>S<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 124</span>      MoveShipDown<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 125</span>    <span class="k1">if</span><span class="k2">(</span>buton<span class="k2">[</span>W<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 126</span>      MoveShipUp<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 127</span>
<span class="number"> 128</span>    <span class="c">// Why didn't you apply the same logic to firing your bullets?</span>
<span class="number"> 129</span>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>GameOver<span class="k2">)</span>
<span class="number"> 130</span>  <span class="k2">{</span>
<span class="number"> 131</span>      UpdateBullet<span class="k2">(</span>bullets, NUM_BULLETS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>      StartComet<span class="k2">(</span>comets, NUM_COMETS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 133</span>      UpdateComet<span class="k2">(</span>comets, NUM_COMETS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 134</span>      StartComet1<span class="k2">(</span>comets1, NUM_COMETS1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 135</span>      UpdateComet1<span class="k2">(</span>comets1, NUM_COMETS1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 136</span>    CollideBullet<span class="k2">(</span>bullets, NUM_BULLETS, comets, NUM_COMETS, ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>    CollideComet<span class="k2">(</span>comets, NUM_COMETS, ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>    CollideBullet1<span class="k2">(</span>bullets, NUM_BULLETS, comets1, NUM_COMETS, ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 139</span>    CollideComet1<span class="k2">(</span>comets1, NUM_COMETS1, ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 140</span>    
<span class="number"> 141</span>    <span class="k1">if</span><span class="k2">(</span>ship.lives <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 142</span>    <span class="k2">{</span>
<span class="number"> 143</span>      GameOver <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 144</span>    <span class="k2">}</span>
<span class="number"> 145</span>  <span class="k2">}</span>
<span class="number"> 146</span>
<span class="number"> 147</span>    <span class="k1">if</span><span class="k2">(</span>buton<span class="k2">[</span>SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 148</span>    <span class="k2">{</span>
<span class="number"> 149</span>       <span class="c">// also it's button, you got it right in the comments though.</span>
<span class="number"> 150</span>       <span class="c">// Or is this a different language?</span>
<span class="number"> 151</span>       <span class="k1">if</span><span class="k2">(</span>fireCooldown <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 152</span>       <span class="k2">{</span>
<span class="number"> 153</span>          <span class="c">// We'll decrement this variable later</span>
<span class="number"> 154</span>          <span class="c">// This block will only get executed if fireCooldown equals 0</span>
<span class="number"> 155</span>          fireCooldown <span class="k3">=</span> <span class="n">25</span><span class="k2">;</span>
<span class="number"> 156</span>          <span class="c">// Now that we've assigned 10 to fireCooldown we can be sure the next bullet is not going to be fired for a couple of frames</span>
<span class="number"> 157</span>          FireBullet<span class="k2">(</span>bullets, NUM_BULLETS, ship<span class="k2">)</span><span class="k2">;</span>    
<span class="number"> 158</span>       <span class="k2">}</span>
<span class="number"> 159</span>    <span class="k2">}</span>
<span class="number"> 160</span>    
<span class="number"> 161</span>    <span class="c">// Let's get the ship ready for the next shot</span>
<span class="number"> 162</span>    <span class="k1">if</span><span class="k2">(</span>fireCooldown <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 163</span>       fireCooldown--<span class="k2">;</span>
<span class="number"> 164</span>    <span class="k2">}</span>
<span class="number"> 165</span>
<span class="number"> 166</span>    <span class="c">// Key down or up</span>
<span class="number"> 167</span>    <span class="k1">switch</span><span class="k2">(</span>e.type<span class="k2">)</span>
<span class="number"> 168</span>    <span class="k2">{</span>
<span class="number"> 169</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_DOWN:
<span class="number"> 170</span>        <span class="k1">switch</span><span class="k2">(</span>e.keyboard.keycode<span class="k2">)</span>
<span class="number"> 171</span>        <span class="k2">{</span>
<span class="number"> 172</span>        <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number"> 173</span>          buton<span class="k2">[</span>A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 174</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 175</span>
<span class="number"> 176</span>        <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 177</span>          buton<span class="k2">[</span>S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 178</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 179</span>
<span class="number"> 180</span>        <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 181</span>          buton<span class="k2">[</span>D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 182</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 183</span>
<span class="number"> 184</span>        <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number"> 185</span>          buton<span class="k2">[</span>W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 186</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 187</span>
<span class="number"> 188</span>    <span class="k1">case</span> ALLEGRO_KEY_P:
<span class="number"> 189</span>      GameOver <span class="k3">=</span> <span class="k3">!</span>GameOver<span class="k2">;</span>
<span class="number"> 190</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 191</span>
<span class="number"> 192</span>        <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 193</span>          buton<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 194</span>          <span class="c">// Now you are going to fire a bullet each time you press your spacebar, so let's move this out of here</span>
<span class="number"> 195</span>          <span class="c">// FireBullet(bullets, NUM_BULLETS, ship);</span>
<span class="number"> 196</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 197</span>
<span class="number"> 198</span>        <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 199</span>          quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 200</span>          <span class="k1">break</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="number"> 204</span>    <span class="k1">switch</span><span class="k2">(</span>e.type<span class="k2">)</span>
<span class="number"> 205</span>    <span class="k2">{</span>
<span class="number"> 206</span>      <span class="k1">case</span> ALLEGRO_EVENT_KEY_UP:
<span class="number"> 207</span>        <span class="k1">switch</span><span class="k2">(</span>e.keyboard.keycode<span class="k2">)</span>
<span class="number"> 208</span>        <span class="k2">{</span>
<span class="number"> 209</span>        <span class="k1">case</span> ALLEGRO_KEY_A:
<span class="number"> 210</span>          buton<span class="k2">[</span>A<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 211</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 212</span>
<span class="number"> 213</span>        <span class="k1">case</span> ALLEGRO_KEY_S:
<span class="number"> 214</span>          buton<span class="k2">[</span>S<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 215</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 216</span>
<span class="number"> 217</span>        <span class="k1">case</span> ALLEGRO_KEY_D:
<span class="number"> 218</span>          buton<span class="k2">[</span>D<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 219</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 220</span>
<span class="number"> 221</span>        <span class="k1">case</span> ALLEGRO_KEY_W:
<span class="number"> 222</span>          buton<span class="k2">[</span>W<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 223</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 224</span>
<span class="number"> 225</span>        <span class="k1">case</span> ALLEGRO_KEY_SPACE:
<span class="number"> 226</span>          buton<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 227</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 228</span>        <span class="k2">}</span>
<span class="number"> 229</span>    <span class="k2">}</span>
<span class="number"> 230</span>
<span class="number"> 231</span>
<span class="number"> 232</span>    <span class="c">// Close display when X is pressed</span>
<span class="number"> 233</span>    <span class="k1">if</span><span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 234</span>    <span class="k2">{</span>
<span class="number"> 235</span>      quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 236</span>    <span class="k2">}</span>
<span class="number"> 237</span>
<span class="number"> 238</span>    <span class="c">// Mouse movement</span>
<span class="number"> 239</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_AXES<span class="k2">)</span>
<span class="number"> 240</span>    <span class="k2">{</span>
<span class="number"> 241</span>      ship.y <span class="k3">=</span> e.mouse.y<span class="k2">;</span>
<span class="number"> 242</span>    <span class="k2">}</span>
<span class="number"> 243</span>    
<span class="number"> 244</span>    <span class="c">// Bad idea, an ALLEGRO_EVENT is an union</span>
<span class="number"> 245</span>    <span class="c">// Meaning that multiple different members can take the same place in memory</span>
<span class="number"> 246</span>    <span class="c">// Other events might 'overwrite' e.mouse.button, causing it to falsely evaluate to true and this is more likely than you might think as it caused the firing to seem irregular with this not being commented</span>
<span class="number"> 247</span>    <span class="c">/*else if(e.mouse.button &amp; 1)</span>
<span class="number"> 248</span><span class="c">    {</span>
<span class="number"> 249</span><span class="c">      FireBullet(bullets, NUM_BULLETS, ship);</span>
<span class="number"> 250</span><span class="c">    }*/</span>
<span class="number"> 251</span>    <span class="k1">if</span><span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_DOWN<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>e.mouse.button <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 254</span>       <span class="k2">{</span>
<span class="number"> 255</span>          buton<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="c">// Ugly hack but it works</span>
<span class="number"> 256</span>       <span class="k2">}</span>
<span class="number"> 257</span>    <span class="k2">}</span>
<span class="number"> 258</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>e.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_MOUSE_BUTTON_UP<span class="k2">)</span>
<span class="number"> 259</span>    <span class="k2">{</span>
<span class="number"> 260</span>       <span class="k1">if</span><span class="k2">(</span>e.mouse.button <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 261</span>       <span class="k2">{</span>
<span class="number"> 262</span>          buton<span class="k2">[</span>SPACE<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 263</span>       <span class="k2">}</span>
<span class="number"> 264</span>    <span class="k2">}</span>
<span class="number"> 265</span>
<span class="number"> 266</span>    <span class="k1">if</span><span class="k2">(</span>draw <span class="k3">&amp;</span><span class="k3">&amp;</span> al_event_queue_is_empty<span class="k2">(</span>event<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 267</span>    <span class="k2">{</span>
<span class="number"> 268</span>      draw <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 269</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>GameOver<span class="k2">)</span>
<span class="number"> 270</span>    <span class="k2">{</span>
<span class="number"> 271</span>    
<span class="number"> 272</span>      DrawShip<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 273</span>      DrawBullet<span class="k2">(</span>bullets, NUM_BULLETS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 274</span>      DrawComet<span class="k2">(</span>comets, NUM_COMETS<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 275</span>      DrawComet1<span class="k2">(</span>comets1, NUM_COMETS1<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 276</span>
<span class="number"> 277</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font16, <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">0</span><span class="k2">)</span>, x <span class="k3">+</span> <span class="n">300</span>, <span class="n">10</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"Lifes: %i Points %i"</span>, ship.lives, ship.score<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 278</span>    <span class="k2">}</span>
<span class="number"> 279</span>    <span class="k1">else</span>
<span class="number"> 280</span>    <span class="k2">{</span>
<span class="number"> 281</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font16, <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">0</span><span class="k2">)</span>, x, <span class="n">100</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"Game Over"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 282</span>      <a href="http://www.allegro.cc/manual/al_draw_textf"><span class="a">al_draw_textf</span></a><span class="k2">(</span>font16, <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">0</span><span class="k2">)</span>, x, <span class="n">200</span>, ALLEGRO_ALIGN_CENTRE, <span class="s">"Final Score: %i"</span>, ship.score<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 283</span>    <span class="k2">}</span>
<span class="number"> 284</span>
<span class="number"> 285</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"> 286</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 287</span>    <span class="k2">}</span>
<span class="number"> 288</span>
<span class="number"> 289</span>  <span class="k2">}</span>
<span class="number"> 290</span>
<span class="number"> 291</span>  <span class="c">// Destroy</span>
<span class="number"> 292</span>  <a href="http://www.allegro.cc/manual/al_destroy_event_queue"><span class="a">al_destroy_event_queue</span></a><span class="k2">(</span>event<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 293</span>  <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>icon<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 294</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"> 295</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_865.html" target="_blank">window</a><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 296</span><span class="k2">}</span>
<span class="number"> 297</span>
<span class="number"> 298</span><span class="k1">void</span> InitShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 299</span><span class="k2">{</span>
<span class="number"> 300</span>  ship.x <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 301</span>  ship.y <span class="k3">=</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 302</span>  ship.ID <span class="k3">=</span> PLAYER<span class="k2">;</span>
<span class="number"> 303</span>  ship.lives <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span>
<span class="number"> 304</span>  ship.speed <span class="k3">=</span> <span class="n">7</span><span class="k2">;</span>
<span class="number"> 305</span>  ship.boundx <span class="k3">=</span> <span class="n">126</span><span class="k2">;</span>
<span class="number"> 306</span>  ship.boundy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 307</span>  ship.score <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 308</span><span class="k2">}</span>
<span class="number"> 309</span>
<span class="number"> 310</span><span class="k1">void</span> DrawShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 311</span><span class="k2">{</span>
<span class="number"> 312</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>ship.x <span class="k3">-</span> <span class="n">10</span>, ship.y-15, ship.x <span class="k3">+</span> <span class="n">35</span>, ship.y, <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">128</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 313</span>  <a href="http://www.allegro.cc/manual/al_draw_filled_rectangle"><span class="a">al_draw_filled_rectangle</span></a><span class="k2">(</span>ship.x <span class="k3">+</span> <span class="n">35</span>, ship.y-15, ship.x <span class="k3">+</span> <span class="n">130</span>, ship.y, <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"> 314</span>  <a href="http://www.allegro.cc/manual/al_draw_line"><span class="a">al_draw_line</span></a><span class="k2">(</span>ship.x <span class="k3">+</span> <span class="n">30</span>, ship.y-15, ship.x <span class="k3">+</span> <span class="n">30</span>, ship.y, <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">50</span><span class="k2">)</span>, <span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 315</span><span class="k2">}</span>
<span class="number"> 316</span>
<span class="number"> 317</span><span class="k1">void</span> MoveShipUp<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 318</span><span class="k2">{</span>
<span class="number"> 319</span>  ship.y <span class="k3">-</span><span class="k3">=</span> ship.speed<span class="k2">;</span>
<span class="number"> 320</span>  <span class="k1">if</span><span class="k2">(</span>ship.y <span class="k3">&lt;</span> <span class="n">15</span><span class="k2">)</span>
<span class="number"> 321</span>    ship.y <span class="k3">=</span> <span class="n">15</span><span class="k2">;</span>
<span class="number"> 322</span><span class="k2">}</span>
<span class="number"> 323</span>
<span class="number"> 324</span><span class="k1">void</span> MoveShipDown<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 325</span><span class="k2">{</span>
<span class="number"> 326</span>  ship.y <span class="k3">+</span><span class="k3">=</span> ship.speed<span class="k2">;</span>
<span class="number"> 327</span>  <span class="k1">if</span><span class="k2">(</span>ship.y <span class="k3">&gt;</span> height<span class="k2">)</span>
<span class="number"> 328</span>    ship.y <span class="k3">=</span> height<span class="k2">;</span>
<span class="number"> 329</span><span class="k2">}</span>
<span class="number"> 330</span>
<span class="number"> 331</span><span class="k1">void</span> MoveShipLeft<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 332</span><span class="k2">{</span>
<span class="number"> 333</span>  ship.x <span class="k3">-</span><span class="k3">=</span> ship.speed<span class="k2">;</span>
<span class="number"> 334</span>  <span class="k1">if</span><span class="k2">(</span>ship.x <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 335</span>    ship.x <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 336</span><span class="k2">}</span>
<span class="number"> 337</span>
<span class="number"> 338</span><span class="k1">void</span> MoveShipRight<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 339</span><span class="k2">{</span>
<span class="number"> 340</span>  ship.x <span class="k3">+</span><span class="k3">=</span> ship.speed<span class="k2">;</span>
<span class="number"> 341</span>  <span class="k1">if</span><span class="k2">(</span>ship.x <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 342</span>    ship.x <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number"> 343</span><span class="k2">}</span>
<span class="number"> 344</span>
<span class="number"> 345</span><span class="k1">void</span> InitBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 346</span><span class="k2">{</span>
<span class="number"> 347</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 348</span>  <span class="k2">{</span>
<span class="number"> 349</span>    bullet<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> BULLET<span class="k2">;</span>
<span class="number"> 350</span>    bullet<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">10</span><span class="k2">;</span>
<span class="number"> 351</span>    bullet<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><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="number"> 355</span><span class="k1">void</span> DrawBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 356</span><span class="k2">{</span>
<span class="number"> 357</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><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>bullet<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 360</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>bullet<span class="k2">[</span>i<span class="k2">]</span>.x, bullet<span class="k2">[</span>i<span class="k2">]</span>.y, <span class="n">5</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">128</span>,<span class="n">128</span>,<span class="n">128</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 361</span>  <span class="k2">}</span>
<span class="number"> 362</span><span class="k2">}</span>
<span class="number"> 363</span>
<span class="number"> 364</span><span class="k1">void</span> FireBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 365</span><span class="k2">{</span>
<span class="number"> 366</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 367</span>  <span class="k2">{</span>
<span class="number"> 368</span>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 369</span>    <span class="k2">{</span>
<span class="number"> 370</span>      bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> ship.x <span class="k3">+</span> <span class="n">120</span><span class="k2">;</span>
<span class="number"> 371</span>      bullet<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> ship.y <span class="k3">-</span> <span class="n">7</span><span class="k2">;</span>
<span class="number"> 372</span>      bullet<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"> 373</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 374</span>    <span class="k2">}</span>
<span class="number"> 375</span>  <span class="k2">}</span>
<span class="number"> 376</span><span class="k2">}</span>
<span class="number"> 377</span>
<span class="number"> 378</span><span class="k1">void</span> UpdateBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 379</span><span class="k2">{</span>
<span class="number"> 380</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 381</span>  <span class="k2">{</span>
<span class="number"> 382</span>    <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 383</span>    <span class="k2">{</span>
<span class="number"> 384</span>      bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span><span class="k3">=</span> bullet<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 385</span>      <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span> width<span class="k2">)</span>
<span class="number"> 386</span>      <span class="k2">{</span>
<span class="number"> 387</span>        bullet<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 388</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 389</span>      <span class="k2">}</span>
<span class="number"> 390</span>    <span class="k2">}</span>
<span class="number"> 391</span>  <span class="k2">}</span>
<span class="number"> 392</span><span class="k2">}</span>
<span class="number"> 393</span>
<span class="number"> 394</span><span class="k1">void</span> CollideBullet<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> bSize, Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 395</span><span class="k2">{</span>
<span class="number"> 396</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> bSize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 397</span>  <span class="k2">{</span>
<span class="number"> 398</span>    <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 399</span>    <span class="k2">{</span>
<span class="number"> 400</span>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> cSize<span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 401</span>      <span class="k2">{</span>
<span class="number"> 402</span>        <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>j<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 403</span>        <span class="k2">{</span>
<span class="number"> 404</span>          <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span> <span class="k2">(</span>comets<span class="k2">[</span>j<span class="k2">]</span>.x <span class="k3">-</span> comets<span class="k2">[</span>j<span class="k2">]</span>.boundx<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 405</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="k2">(</span>comets<span class="k2">[</span>j<span class="k2">]</span>.x <span class="k3">+</span> comets<span class="k2">[</span>j<span class="k2">]</span>.boundx<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 406</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">&gt;</span> <span class="k2">(</span>comets<span class="k2">[</span>j<span class="k2">]</span>.y <span class="k3">-</span> comets<span class="k2">[</span>j<span class="k2">]</span>.boundy<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 407</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">&lt;</span> <span class="k2">(</span>comets<span class="k2">[</span>j<span class="k2">]</span>.y <span class="k3">+</span> comets<span class="k2">[</span>j<span class="k2">]</span>.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 408</span>          <span class="k2">{</span>
<span class="number"> 409</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 410</span>            comets<span class="k2">[</span>j<span class="k2">]</span>.live <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 411</span>            ship.score <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 412</span>          <span class="k2">}</span>
<span class="number"> 413</span>        <span class="k2">}</span>
<span class="number"> 414</span>      <span class="k2">}</span>
<span class="number"> 415</span>    <span class="k2">}</span>
<span class="number"> 416</span>  <span class="k2">}</span>
<span class="number"> 417</span><span class="k2">}</span>
<span class="number"> 418</span>
<span class="number"> 419</span><span class="k1">void</span> CollideBullet1<span class="k2">(</span>Bullet bullet<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> bSize, Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 420</span><span class="k2">{</span>
<span class="number"> 421</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> bSize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 422</span>  <span class="k2">{</span>
<span class="number"> 423</span>    <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.live<span class="k2">)</span>
<span class="number"> 424</span>    <span class="k2">{</span>
<span class="number"> 425</span>      <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> cSize<span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 426</span>      <span class="k2">{</span>
<span class="number"> 427</span>        <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 428</span>        <span class="k2">{</span>
<span class="number"> 429</span>          <span class="k1">if</span><span class="k2">(</span>bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&gt;</span> <span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.x <span class="k3">-</span> comets1<span class="k2">[</span>j<span class="k2">]</span>.boundx<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 430</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.x <span class="k3">+</span> comets1<span class="k2">[</span>j<span class="k2">]</span>.boundx<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 431</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">&gt;</span> <span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.y <span class="k3">-</span> comets1<span class="k2">[</span>j<span class="k2">]</span>.boundy<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 432</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">&lt;</span> <span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.y <span class="k3">+</span> comets1<span class="k2">[</span>j<span class="k2">]</span>.boundy<span class="k2">)</span><span class="k2">)</span>
<span class="number"> 433</span>          <span class="k2">{</span>
<span class="number"> 434</span>            bullet<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 435</span>            comets1<span class="k2">[</span>j<span class="k2">]</span>.live <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 436</span>            <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>j<span class="k2">]</span>.live <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 437</span>            <span class="k2">{</span>
<span class="number"> 438</span>              ship.score <span class="k3">+</span><span class="k3">=</span> <span class="n">25</span><span class="k2">;</span>
<span class="number"> 439</span>            <span class="k2">}</span>
<span class="number"> 440</span>          <span class="k2">}</span>
<span class="number"> 441</span>        <span class="k2">}</span>
<span class="number"> 442</span>      <span class="k2">}</span>
<span class="number"> 443</span>    <span class="k2">}</span>
<span class="number"> 444</span>  <span class="k2">}</span>
<span class="number"> 445</span><span class="k2">}</span>
<span class="number"> 446</span>
<span class="number"> 447</span><span class="k1">void</span> InitComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 448</span><span class="k2">{</span>
<span class="number"> 449</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 450</span>  <span class="k2">{</span>
<span class="number"> 451</span>    comets<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> ENEMY<span class="k2">;</span>
<span class="number"> 452</span>    comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 453</span>    comets<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"> 454</span>    comets<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 455</span>    comets<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number"> 456</span>  <span class="k2">}</span>
<span class="number"> 457</span><span class="k2">}</span>
<span class="number"> 458</span>
<span class="number"> 459</span><span class="k1">void</span> DrawComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 460</span><span class="k2">{</span>
<span class="number"> 461</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 462</span>  <span class="k2">{</span>
<span class="number"> 463</span>    <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 464</span>    <span class="k2">{</span>
<span class="number"> 465</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_ellipse"><span class="a">al_draw_filled_ellipse</span></a><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.x, comets<span class="k2">[</span>i<span class="k2">]</span>.y, <span class="n">20</span>, <span class="n">30</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">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 466</span>      <a href="http://www.allegro.cc/manual/al_draw_ellipse"><span class="a">al_draw_ellipse</span></a><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.x, comets<span class="k2">[</span>i<span class="k2">]</span>.y, <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">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">5</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 467</span>    <span class="k2">}</span>
<span class="number"> 468</span>  <span class="k2">}</span>
<span class="number"> 469</span><span class="k2">}</span>
<span class="number"> 470</span>
<span class="number"> 471</span><span class="k1">void</span> StartComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 472</span><span class="k2">{</span>
<span class="number"> 473</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 474</span>  <span class="k2">{</span>
<span class="number"> 475</span>    <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 476</span>    <span class="k2">{</span>
<span class="number"> 477</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">500</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 478</span>      <span class="k2">{</span>
<span class="number"> 479</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 480</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> width<span class="k2">;</span>
<span class="number"> 481</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">30</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="k2">(</span>height <span class="k3">-</span> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 482</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 483</span>      <span class="k2">}</span>
<span class="number"> 484</span>    <span class="k2">}</span>
<span class="number"> 485</span>  <span class="k2">}</span>
<span class="number"> 486</span><span class="k2">}</span>
<span class="number"> 487</span>
<span class="number"> 488</span><span class="k1">void</span> UpdateComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 489</span><span class="k2">{</span>
<span class="number"> 490</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 491</span>  <span class="k2">{</span>
<span class="number"> 492</span>    <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 493</span>    <span class="k2">{</span>
<span class="number"> 494</span>      comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> comets<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 495</span>
<span class="number"> 496</span>      <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 497</span>      <span class="k2">{</span>
<span class="number"> 498</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 499</span>      <span class="k2">}</span>
<span class="number"> 500</span>    <span class="k2">}</span>
<span class="number"> 501</span>  <span class="k2">}</span>
<span class="number"> 502</span><span class="k2">}</span>
<span class="number"> 503</span>
<span class="number"> 504</span><span class="k1">void</span> CollideComet<span class="k2">(</span>Comet comets<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 505</span><span class="k2">{</span>
<span class="number"> 506</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> cSize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 507</span>  <span class="k2">{</span>
<span class="number"> 508</span>    <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 509</span>    <span class="k2">{</span>
<span class="number"> 510</span>      <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">-</span> comets<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">&lt;</span> ship.x <span class="k3">+</span> ship.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 511</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span> comets<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">&gt;</span> ship.x <span class="k3">-</span> ship.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 512</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">-</span> comets<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">&lt;</span> ship.y <span class="k3">+</span> ship.boundy <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 513</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">+</span> comets<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">&gt;</span> ship.y <span class="k3">-</span> ship.boundy<span class="k2">)</span>
<span class="number"> 514</span>      <span class="k2">{</span>
<span class="number"> 515</span>        ship.lives--<span class="k2">;</span>
<span class="number"> 516</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 517</span>      <span class="k2">}</span>
<span class="number"> 518</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>comets<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 519</span>      <span class="k2">{</span>
<span class="number"> 520</span>        ship.lives--<span class="k2">;</span>
<span class="number"> 521</span>        comets<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 522</span>      <span class="k2">}</span>
<span class="number"> 523</span>    <span class="k2">}</span>
<span class="number"> 524</span>  <span class="k2">}</span>
<span class="number"> 525</span><span class="k2">}</span>
<span class="number"> 526</span>
<span class="number"> 527</span>
<span class="number"> 528</span><span class="k1">void</span> InitComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 529</span><span class="k2">{</span>
<span class="number"> 530</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 531</span>  <span class="k2">{</span>
<span class="number"> 532</span>    comets1<span class="k2">[</span>i<span class="k2">]</span>.ID <span class="k3">=</span> ENEMY<span class="k2">;</span>
<span class="number"> 533</span>    comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 534</span>    comets1<span class="k2">[</span>i<span class="k2">]</span>.speed <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 535</span>    comets1<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">=</span> <span class="n">20</span><span class="k2">;</span>
<span class="number"> 536</span>    comets1<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">=</span> <span class="n">30</span><span class="k2">;</span>
<span class="number"> 537</span>  <span class="k2">}</span>
<span class="number"> 538</span><span class="k2">}</span>
<span class="number"> 539</span>
<span class="number"> 540</span><span class="k1">void</span> DrawComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 541</span><span class="k2">{</span>
<span class="number"> 542</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 543</span>  <span class="k2">{</span>
<span class="number"> 544</span>    <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 545</span>    <span class="k2">{</span>
<span class="number"> 546</span>      <a href="http://www.allegro.cc/manual/al_draw_filled_ellipse"><span class="a">al_draw_filled_ellipse</span></a><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.x, comets1<span class="k2">[</span>i<span class="k2">]</span>.y, <span class="n">20</span>, <span class="n">30</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"> 547</span>      <a href="http://www.allegro.cc/manual/al_draw_ellipse"><span class="a">al_draw_ellipse</span></a><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.x, comets1<span class="k2">[</span>i<span class="k2">]</span>.y, <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">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span>, <span class="n">5</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 548</span>    <span class="k2">}</span>
<span class="number"> 549</span>  <span class="k2">}</span>
<span class="number"> 550</span><span class="k2">}</span>
<span class="number"> 551</span>
<span class="number"> 552</span><span class="k1">void</span> StartComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 553</span><span class="k2">{</span>
<span class="number"> 554</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 555</span>  <span class="k2">{</span>
<span class="number"> 556</span>    <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 557</span>    <span class="k2">{</span>
<span class="number"> 558</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">500</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 559</span>      <span class="k2">{</span>
<span class="number"> 560</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 561</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> width<span class="k2">;</span>
<span class="number"> 562</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">30</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="k2">(</span>height <span class="k3">-</span> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 563</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 564</span>      <span class="k2">}</span>
<span class="number"> 565</span>    <span class="k2">}</span>
<span class="number"> 566</span>  <span class="k2">}</span>
<span class="number"> 567</span><span class="k2">}</span>
<span class="number"> 568</span>
<span class="number"> 569</span><span class="k1">void</span> UpdateComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number"> 570</span><span class="k2">{</span>
<span class="number"> 571</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> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 572</span>  <span class="k2">{</span>
<span class="number"> 573</span>    <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 574</span>    <span class="k2">{</span>
<span class="number"> 575</span>      comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">-</span><span class="k3">=</span> comets1<span class="k2">[</span>i<span class="k2">]</span>.speed<span class="k2">;</span>
<span class="number"> 576</span>
<span class="number"> 577</span>      <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 578</span>      <span class="k2">{</span>
<span class="number"> 579</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 580</span>      <span class="k2">}</span>
<span class="number"> 581</span>    <span class="k2">}</span>
<span class="number"> 582</span>  <span class="k2">}</span>
<span class="number"> 583</span><span class="k2">}</span>
<span class="number"> 584</span>
<span class="number"> 585</span><span class="k1">void</span> CollideComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> cSize, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 586</span><span class="k2">{</span>
<span class="number"> 587</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> cSize<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 588</span>  <span class="k2">{</span>
<span class="number"> 589</span>    <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 590</span>    <span class="k2">{</span>
<span class="number"> 591</span>      <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">-</span> comets1<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">&lt;</span> ship.x <span class="k3">+</span> ship.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 592</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">+</span> comets1<span class="k2">[</span>i<span class="k2">]</span>.boundx <span class="k3">&gt;</span> ship.x <span class="k3">-</span> ship.boundx <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 593</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">-</span> comets1<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">&lt;</span> ship.y <span class="k3">+</span> ship.boundy <span class="k3">&amp;</span><span class="k3">&amp;</span>
<span class="number"> 594</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">+</span> comets1<span class="k2">[</span>i<span class="k2">]</span>.boundy <span class="k3">&gt;</span> ship.y <span class="k3">-</span> ship.boundy<span class="k2">)</span>
<span class="number"> 595</span>      <span class="k2">{</span>
<span class="number"> 596</span>        ship.lives <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 597</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 598</span>      <span class="k2">}</span>
<span class="number"> 599</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 600</span>      <span class="k2">{</span>
<span class="number"> 601</span>        ship.lives <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 602</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 603</span>      <span class="k2">}</span>
<span class="number"> 604</span>    <span class="k2">}</span>
<span class="number"> 605</span>  <span class="k2">}</span>
<span class="number"> 606</span><span class="k2">}</span>
</div></div><p>

The boss has equal things as the other enemy, just that some parameters change.<br />Life is 5 speed is 1 and you earn more.<br />I added a Pause button with P
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AleX-G Squadron)</author>
		<pubDate>Sun, 02 Sep 2012 22:24:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">void</span> StartComet1<span class="k2">(</span>Comet1 comets1<span class="k2">[</span><span class="k2">]</span>, <span class="k1">int</span> size<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> size<span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  4</span>  <span class="k2">{</span>
<span class="number">  5</span>    <span class="c">// I changed the == to != and now it works as expected</span>
<span class="number">  6</span>    <span class="k1">if</span><span class="k2">(</span>comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span>
<span class="number">  8</span>      <span class="k1">if</span><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="n">500</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  9</span>      <span class="k2">{</span>
<span class="number"> 10</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.live <span class="k3">+</span><span class="k3">=</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 11</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.x <span class="k3">=</span> width<span class="k2">;</span>
<span class="number"> 12</span>        comets1<span class="k2">[</span>i<span class="k2">]</span>.y <span class="k3">=</span> <span class="n">30</span> <span class="k3">+</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span> % <span class="k2">(</span>height <span class="k3">-</span> <span class="n">60</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 13</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 14</span>      <span class="k2">}</span>
<span class="number"> 15</span>    <span class="k2">}</span>
<span class="number"> 16</span>  <span class="k2">}</span>
<span class="number"> 17</span><span class="k2">}</span>
</div></div><p>

</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/610962/964808#target">AleX-G Squadron</a> said:</div><div class="quote"><p> I have other 2 demands about the game, so i dont create other threads.
</p></div></div><p>Demands sounds rather domineering in English. I would use an alternative like question if you don&#39;t want to sound bossy.</p><p>High scores will require 2 things.
</p><ol><li><p>File input/output</p></li><li><p>Sorting values</p></li></ol><p>

File input/output can be done using allegro, the standard C library or the standard C++ library.<br />Sorting can be done using the C++ standard template library or the standard C library.</p><p>Making enemies convert colors can be done by drawing them in different colors?<br />You&#39;ll need a counter for each comet/enemy or something to keep track of when they were last hit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Sun, 02 Sep 2012 23:33:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, sorry!<br />It worked, but there is a very irritating thing.<br />The boss like thing disappears in the middle of the road!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AleX-G Squadron)</author>
		<pubDate>Mon, 03 Sep 2012 00:34:37 +0000</pubDate>
	</item>
</rss>
