<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Game completely screwed up.</title>
		<link>http://www.allegro.cc/forums/view/591879</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 15 Jun 2007 06:45:05 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Everything was working pretty much how I wanted when only one player&#039;s character was drawn to the screen.  Now, I run into all sorts of other errors.  The best way for you guys to help me would probably be to compile and run my program for yourselves.  I&#039;ll attach a zip of the files you need.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">// Sword Play</span>
<span class="number">   2</span>
<span class="number">   3</span><span class="c">// Known issues:</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="c">// two players are stuck together</span>
<span class="number">   6</span><span class="c">// player 2, as far as I can tell, is not starting at the location I specified (x-coordinate 440)</span>
<span class="number">   7</span><span class="c">// game crashes for reasons unknown</span>
<span class="number">   8</span><span class="c">// occasionally game will skip the last frame of any animation, even when only one player is there and works properly...is that always going to happen or can that be fixed?</span>
<span class="number">   9</span><span class="c">// many more sprite sheets still needed</span>
<span class="number">  10</span>
<span class="number">  11</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">  12</span>
<span class="number">  13</span><span class="p">#define BLACK makecol(0, 0, 0)</span>
<span class="number">  14</span><span class="p">#define GREEN makecol(0, 255, 0)</span>
<span class="number">  15</span><span class="p">#define WHITE makecol(255, 255, 255)</span>
<span class="number">  16</span>
<span class="number">  17</span><span class="k1">volatile</span> <span class="k1">int</span> frame1 <span class="k3">=</span> <span class="n">0</span>, frame2 <span class="k3">=</span> <span class="n">0</span>, p1 <span class="k3">=</span> <span class="n">40</span>, p2 <span class="k3">=</span> <span class="n">440</span>, player, stamina1 <span class="k3">=</span> <span class="n">100</span>, stamina2 <span class="k3">=</span> <span class="n">100</span>, ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  18</span><span class="k1">const</span> <span class="k1">int</span> frameRate <span class="k3">=</span> <span class="n">8</span>, staticy <span class="k3">=</span> <span class="n">200</span><span class="k2">;</span>
<span class="number">  19</span><span class="k1">bool</span> first1 <span class="k3">=</span> <span class="k1">true</span>, otherFirst1 <span class="k3">=</span> <span class="k1">false</span>, first2 <span class="k3">=</span> <span class="k1">true</span>, otherFirst2 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">// restarts the frame count every time a button is pressed</span>
<span class="number">  20</span>
<span class="number">  21</span><span class="c">// obtains sprites from a sprite sheet</span>
<span class="number">  22</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span>
<span class="number">  23</span><span class="k2">{</span>
<span class="number">  24</span>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span>width, height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  25</span>
<span class="number">  26</span>  <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame % columns<span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span>
<span class="number">  27</span>  <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k3">/</span> columns<span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span>
<span class="number">  28</span>
<span class="number">  29</span>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source, temp, x, y, <span class="n">0</span>, <span class="n">0</span>, width, height<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>
<span class="number">  31</span>  <span class="k1">return</span> temp<span class="k2">;</span>
<span class="number">  32</span><span class="k2">}</span>
<span class="number">  33</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer<span class="k2">;</span> <span class="c">// used to smooth out the animation</span>
<span class="number">  34</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>buffer2<span class="k2">;</span> <span class="c">// used to smooth out animation even more</span>
<span class="number">  35</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>pic<span class="k2">;</span> <span class="c">// temporary variable for putting sprites into an array</span>
<span class="number">  36</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>SwordPlayTitle<span class="k2">;</span> <span class="c">// title screen picture</span>
<span class="number">  37</span>
<span class="number">  38</span><span class="c">// sprite arrays end in s (for sprite) to differentiate from functions</span>
<span class="number">  39</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>fightStances<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  40</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>runForwards<span class="k2">[</span><span class="n">9</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  41</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>runBackwards<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  42</span>
<span class="number">  43</span><span class="c">/*BITMAP *attackHeads[10];</span>
<span class="number">  44</span><span class="c">BITMAP *attackHands[10];</span>
<span class="number">  45</span><span class="c">BITMAP *attackFoots[10];</span>
<span class="number">  46</span><span class="c">BITMAP *defendHeads[1];</span>
<span class="number">  47</span><span class="c">BITMAP *defendHands[1];</span>
<span class="number">  48</span><span class="c">BITMAP *defendFoots[1];</span>
<span class="number">  49</span><span class="c"></span>
<span class="number">  50</span><span class="c">BITMAP *powerStruggles[1];</span>
<span class="number">  51</span><span class="c">BITMAP *pushs[4];*/</span>
<span class="number">  52</span>
<span class="number">  53</span><span class="k1">void</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// used to count hundredths of a second</span>
<span class="number">  54</span><span class="k1">void</span> frame1Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span><span class="k2">;</span> <span class="c">// controls animation of current action for player 1</span>
<span class="number">  55</span><span class="k1">void</span> frame2Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span><span class="k2">;</span> <span class="c">// controls animation of current action for player 2</span>
<span class="number">  56</span>
<span class="number">  57</span><span class="k1">void</span> runForward<span class="k2">(</span><span class="k1">int</span> player<span class="k2">)</span><span class="k2">;</span> <span class="c">// 9 frames</span>
<span class="number">  58</span><span class="k1">void</span> runBackward<span class="k2">(</span><span class="k1">int</span> player<span class="k2">)</span><span class="k2">;</span> <span class="c">// 5 frames</span>
<span class="number">  59</span>
<span class="number">  60</span><span class="c">/*void attackHead(int player);</span>
<span class="number">  61</span><span class="c">void attackHand(int player);</span>
<span class="number">  62</span><span class="c">void attackFoot(int player);</span>
<span class="number">  63</span><span class="c">void defendHead(int player);</span>
<span class="number">  64</span><span class="c">void defendHand(int player);</span>
<span class="number">  65</span><span class="c">void defendFoot(int player);</span>
<span class="number">  66</span><span class="c"></span>
<span class="number">  67</span><span class="c">void push(int player); // 5 frames: one player stumbles backward, other stays in fightStance</span>
<span class="number">  68</span><span class="c">void powerStruggle(void); // both players go through same two frames, then loser is pushed*/</span>
<span class="number">  69</span>
<span class="number">  70</span><span class="k1">void</span> stamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays players' stamina bars</span>
<span class="number">  71</span><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// slightly regenerates stamina every second</span>
<span class="number">  72</span><span class="c">/*void decreaseStamina(void); // decreases player's stamina when an attack is blocked*/</span>
<span class="number">  73</span>
<span class="number">  74</span><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span>
<span class="number">  75</span><span class="k2">{</span>
<span class="number">  76</span>  <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// uses Allegro</span>
<span class="number">  77</span>  <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// initializes timing functionality</span>
<span class="number">  78</span>  <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// allows use of keyboard</span>
<span class="number">  79</span>  <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">32</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// sets color depth for pallette of sprites</span>
<span class="number">  80</span>  <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span>GFX_AUTODETECT_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// makes the screen a 640x480 window</span>
<span class="number">  81</span>  SwordPlayTitle <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"SwordPlayTitle.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span> <span class="c">// loads title screen image</span>
<span class="number">  82</span>
<span class="number">  83</span>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span> <span class="c">// puts the title screen picture on the screen</span>
<span class="number">  84</span>  <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</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="k3">-</span><span class="n">1</span>, <span class="s">"Press Any Key to Continue..."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  85</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span> <span class="c">// frees up memory by destroying a now unneeded title screen</span>
<span class="number">  86</span>  <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// waits for input to proceed</span>
<span class="number">  87</span>
<span class="number">  88</span>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// brief pause between input and loading the actual game</span>
<span class="number">  89</span>
<span class="number">  90</span>  <span class="c">// loads frames for the fighting stance animation</span>
<span class="number">  91</span>  pic <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"FightStanceSpriteSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  92</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number">  93</span>  <span class="k2">{</span>
<span class="number">  94</span>    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>pic, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">4</span>, x<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>  <span class="k2">}</span>
<span class="number">  96</span>
<span class="number">  97</span>  <span class="c">// loads frames for the running forward animation</span>
<span class="number">  98</span>  pic <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"RunForwardSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  99</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">8</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 100</span>  <span class="k2">{</span>
<span class="number"> 101</span>    runForwards<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>pic, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">4</span>, x<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>  <span class="k2">}</span>
<span class="number"> 103</span>
<span class="number"> 104</span>  <span class="c">// loads frames for the running backward animation</span>
<span class="number"> 105</span>  pic <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"RunBackwardSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 106</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">4</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 107</span>  <span class="k2">{</span>
<span class="number"> 108</span>    runBackwards<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>pic, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">4</span>, x<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 109</span>  <span class="k2">}</span>
<span class="number"> 110</span>  
<span class="number"> 111</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>pic<span class="k2">)</span><span class="k2">;</span> <span class="c">// frees up memory by destroying a now unneeded temporary variable</span>
<span class="number"> 112</span>  buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span> <span class="c">// makes the buffer</span>
<span class="number"> 113</span>  buffer2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span> <span class="c">// makes the buffer's buffer</span>
<span class="number"> 114</span>  <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>, BPS_TO_TIMER<span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// calls the timer function 100 times every second</span>
<span class="number"> 115</span>  <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increaseStamina, BPS_TO_TIMER<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// increases the stamina bars for both players by 1 every second</span>
<span class="number"> 116</span>
<span class="number"> 117</span>  <span class="c">// main game loop</span>
<span class="number"> 118</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 119</span>  <span class="k2">{</span>
<span class="number"> 120</span>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, WHITE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>    <span class="c">/*// attack commands for player 1</span>
<span class="number"> 122</span><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span>
<span class="number"> 123</span><span class="c">      attackHead(1);</span>
<span class="number"> 124</span><span class="c">    else if(key[KEY_SPACE])</span>
<span class="number"> 125</span><span class="c">      attackHand(1);</span>
<span class="number"> 126</span><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span>
<span class="number"> 127</span><span class="c">      attackFoot(1);</span>
<span class="number"> 128</span><span class="c"></span>
<span class="number"> 129</span><span class="c">    // defend commands for player 1</span>
<span class="number"> 130</span><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span>
<span class="number"> 131</span><span class="c">      defendHead(1);</span>
<span class="number"> 132</span><span class="c">    else if(key[KEY_LSHIFT])</span>
<span class="number"> 133</span><span class="c">      defendHand(1);</span>
<span class="number"> 134</span><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span>
<span class="number"> 135</span><span class="c">      defendFoot(1);*/</span>
<span class="number"> 136</span>
<span class="number"> 137</span>    <span class="c">// movement commands for player 1</span>
<span class="number"> 138</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_D<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 139</span>    <span class="k2">{</span>      
<span class="number"> 140</span>      <span class="k1">if</span><span class="k2">(</span>first1 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 141</span>      <span class="k2">{</span>
<span class="number"> 142</span>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 143</span>        first1 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 144</span>        otherFirst1 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 145</span>      <span class="k2">}</span>
<span class="number"> 146</span>      runForward<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 147</span>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, runForwards<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 148</span>    <span class="k2">}</span>
<span class="number"> 149</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_A<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 150</span>    <span class="k2">{</span>
<span class="number"> 151</span>      <span class="k1">if</span><span class="k2">(</span>first1 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 152</span>      <span class="k2">{</span>
<span class="number"> 153</span>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 154</span>        first1 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 155</span>        otherFirst1 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 156</span>      <span class="k2">}</span>
<span class="number"> 157</span>      runBackward<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 158</span>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, runBackwards<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 159</span>    <span class="k2">}</span>
<span class="number"> 160</span>    <span class="k1">else</span>
<span class="number"> 161</span>    <span class="k2">{</span>
<span class="number"> 162</span>      first1 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 163</span>      <span class="k1">if</span><span class="k2">(</span>otherFirst1 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 164</span>      <span class="k2">{</span>
<span class="number"> 165</span>        otherFirst1 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 166</span>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 167</span>      <span class="k2">}</span>
<span class="number"> 168</span>      frame1Function<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 169</span>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>    <span class="k2">}</span>
<span class="number"> 171</span>
<span class="number"> 172</span>    <span class="c">/*// attack commands for player 2</span>
<span class="number"> 173</span><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span>
<span class="number"> 174</span><span class="c">      attackHead(1);</span>
<span class="number"> 175</span><span class="c">    else if(key[KEY_SPACE])</span>
<span class="number"> 176</span><span class="c">      attackHand(1);</span>
<span class="number"> 177</span><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span>
<span class="number"> 178</span><span class="c">      attackFoot(1);</span>
<span class="number"> 179</span><span class="c"></span>
<span class="number"> 180</span><span class="c">    // defend commands for player 2</span>
<span class="number"> 181</span><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span>
<span class="number"> 182</span><span class="c">      defendHead(1);</span>
<span class="number"> 183</span><span class="c">    else if(key[KEY_LSHIFT])</span>
<span class="number"> 184</span><span class="c">      defendHand(1);</span>
<span class="number"> 185</span><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span>
<span class="number"> 186</span><span class="c">      defendFoot(1);*/</span>
<span class="number"> 187</span>
<span class="number"> 188</span>    <span class="c">// movement commands for player 2</span>
<span class="number"> 189</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 190</span>    <span class="k2">{</span>      
<span class="number"> 191</span>      <span class="k1">if</span><span class="k2">(</span>first2 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 192</span>      <span class="k2">{</span>
<span class="number"> 193</span>        frame2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 194</span>        first2 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 195</span>        otherFirst2 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 196</span>      <span class="k2">}</span>
<span class="number"> 197</span>      runForward<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 198</span>      <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, runForwards<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span>    <span class="k2">}</span>
<span class="number"> 200</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 201</span>    <span class="k2">{</span>
<span class="number"> 202</span>      <span class="k1">if</span><span class="k2">(</span>first2 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 203</span>      <span class="k2">{</span>
<span class="number"> 204</span>        frame2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 205</span>        first2 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 206</span>        otherFirst2 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 207</span>      <span class="k2">}</span>
<span class="number"> 208</span>      runBackward<span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 209</span>      <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, runBackwards<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 210</span>    <span class="k2">}</span>
<span class="number"> 211</span>    <span class="k1">else</span>
<span class="number"> 212</span>    <span class="k2">{</span>
<span class="number"> 213</span>      first2 <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 214</span>      <span class="k1">if</span><span class="k2">(</span>otherFirst2 <span class="k3">=</span><span class="k3">=</span> <span class="k1">true</span><span class="k2">)</span>
<span class="number"> 215</span>      <span class="k2">{</span>
<span class="number"> 216</span>        otherFirst2 <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 217</span>        frame2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 218</span>      <span class="k2">}</span>
<span class="number"> 219</span>      frame2Function<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 220</span>      <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, p1, staticy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 221</span>    <span class="k2">}</span>
<span class="number"> 222</span>
<span class="number"> 223</span>    stamina<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays the stamina bars on the screen</span>
<span class="number"> 224</span>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, buffer2, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span> <span class="c">// puts everything that just happened in the last split-second on the second buffer</span>
<span class="number"> 225</span>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer2, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span> <span class="c">// puts that buffer on the screen</span>
<span class="number"> 226</span>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span> <span class="c">// erases the buffer so that it can be changed again</span>
<span class="number"> 227</span>  <span class="k2">}</span>
<span class="number"> 228</span>  <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>increaseStamina<span class="k2">)</span><span class="k2">;</span> <span class="c">// frees up the memory used to call this function over and over again</span>
<span class="number"> 229</span>
<span class="number"> 230</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// makes this code compatible with non-MS compilers</span>
<span class="number"> 231</span><span class="k2">}</span><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span>
<span class="number"> 232</span>
<span class="number"> 233</span><span class="k1">void</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k2">)</span>
<span class="number"> 234</span><span class="k2">{</span>
<span class="number"> 235</span>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 236</span>  
<span class="number"> 237</span>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 238</span>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 239</span><span class="k2">}</span>
<span class="number"> 240</span>
<span class="number"> 241</span><span class="k1">void</span> frame1Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span>
<span class="number"> 242</span><span class="k2">{</span>
<span class="number"> 243</span>  <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span>
<span class="number"> 244</span>    frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 245</span>
<span class="number"> 246</span>  <span class="k1">float</span> comparisonVariable <span class="k3">=</span> <span class="n">100</span> <span class="k3">/</span> frameRate<span class="k2">;</span>
<span class="number"> 247</span>  
<span class="number"> 248</span>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> comparisonVariable<span class="k2">)</span>
<span class="number"> 249</span>  <span class="k2">{</span>    
<span class="number"> 250</span>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 251</span>
<span class="number"> 252</span>    <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span>
<span class="number"> 253</span>      frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 254</span>    <span class="k1">else</span>
<span class="number"> 255</span>      frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</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="number"> 259</span><span class="k1">void</span> frame2Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span>
<span class="number"> 260</span><span class="k2">{</span>
<span class="number"> 261</span>  <span class="k1">if</span><span class="k2">(</span>frame2 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span>
<span class="number"> 262</span>    frame2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 263</span>
<span class="number"> 264</span>  <span class="k1">float</span> comparisonVariable <span class="k3">=</span> <span class="n">100</span> <span class="k3">/</span> frameRate<span class="k2">;</span>
<span class="number"> 265</span>  
<span class="number"> 266</span>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> comparisonVariable<span class="k2">)</span>
<span class="number"> 267</span>  <span class="k2">{</span>    
<span class="number"> 268</span>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 269</span>
<span class="number"> 270</span>    <span class="k1">if</span><span class="k2">(</span>frame2 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span>
<span class="number"> 271</span>      frame2 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 272</span>    <span class="k1">else</span>
<span class="number"> 273</span>      frame2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 274</span>  <span class="k2">}</span>
<span class="number"> 275</span><span class="k2">}</span>
<span class="number"> 276</span>
<span class="number"> 277</span><span class="k1">void</span> runForward<span class="k2">(</span><span class="k1">int</span> player<span class="k2">)</span>
<span class="number"> 278</span><span class="k2">{</span>
<span class="number"> 279</span>  <span class="k1">if</span><span class="k2">(</span>player <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 280</span>  <span class="k2">{</span>
<span class="number"> 281</span>    frame1Function<span class="k2">(</span><span class="n">8</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 282</span>    
<span class="number"> 283</span>    <span class="k1">if</span><span class="k2">(</span>p1 <span class="k3">&lt;</span><span class="k3">=</span> <span class="k2">(</span>p2 <span class="k3">-</span> <span class="n">240</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 284</span>      p1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 285</span>  <span class="k2">}</span>
<span class="number"> 286</span>
<span class="number"> 287</span>  <span class="k1">if</span><span class="k2">(</span>player <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 288</span>  <span class="k2">{</span>
<span class="number"> 289</span>    frame2Function<span class="k2">(</span><span class="n">8</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 290</span>    
<span class="number"> 291</span>    <span class="k1">if</span><span class="k2">(</span>p2 <span class="k3">&gt;</span><span class="k3">=</span> p1<span class="k2">)</span>
<span class="number"> 292</span>      p2--<span class="k2">;</span>
<span class="number"> 293</span>  <span class="k2">}</span>
<span class="number"> 294</span><span class="k2">}</span>
<span class="number"> 295</span>
<span class="number"> 296</span><span class="k1">void</span> runBackward<span class="k2">(</span><span class="k1">int</span> player<span class="k2">)</span>
<span class="number"> 297</span><span class="k2">{</span>
<span class="number"> 298</span>  <span class="k1">if</span><span class="k2">(</span>player <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 299</span>  <span class="k2">{</span>
<span class="number"> 300</span>    frame1Function<span class="k2">(</span><span class="n">4</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 301</span>
<span class="number"> 302</span>    <span class="k1">if</span><span class="k2">(</span>p1 <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 303</span>      p1--<span class="k2">;</span>
<span class="number"> 304</span>  <span class="k2">}</span>
<span class="number"> 305</span>
<span class="number"> 306</span>  <span class="k1">if</span><span class="k2">(</span>player <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 307</span>  <span class="k2">{</span>
<span class="number"> 308</span>    frame1Function<span class="k2">(</span><span class="n">4</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 309</span>
<span class="number"> 310</span>    <span class="k1">if</span><span class="k2">(</span>p2 <span class="k3">&lt;</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a><span class="k2">)</span>
<span class="number"> 311</span>      p2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 312</span>  <span class="k2">}</span>
<span class="number"> 313</span><span class="k2">}</span>
<span class="number"> 314</span>
<span class="number"> 315</span><span class="k1">void</span> stamina<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 316</span><span class="k2">{</span>
<span class="number"> 317</span>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 1"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 318</span>  <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 2"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 319</span>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">5</span>, <span class="n">5</span>, <span class="n">5</span> <span class="k3">+</span> stamina1, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 320</span>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span> <span class="k3">+</span> stamina2, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 321</span><span class="k2">}</span>
<span class="number"> 322</span>
<span class="number"> 323</span><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 324</span><span class="k2">{</span>
<span class="number"> 325</span>  stamina1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 326</span>  <span class="k1">if</span><span class="k2">(</span>stamina1 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 327</span>    stamina1 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number"> 328</span>  stamina2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number"> 329</span>  <span class="k1">if</span><span class="k2">(</span>stamina2 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span>
<span class="number"> 330</span>    stamina2 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span>
<span class="number"> 331</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 14 Jun 2007 08:32:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1) Use a more descriptive title<br />2) Give us some background. Help us help you. DOn&#39;t ask for us to just &quot;fix it&quot;. </p><p>Debugging has to be systematic to work. Trace through your program at the first sign of a problem (or better yet. right before something happens). step through execution line by line while watching variables. </p><p>Test individual functions for correctness if you can.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Goalie Ca)</author>
		<pubDate>Thu, 14 Jun 2007 08:44:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>How come you still haven&#39;t fixed your animation problem? I explained in quite some detail, complete with examples, how to do that in <a href="http://www.allegro.cc/forums/thread/591840/678629#target">my last post to your thread</a> (the response to your second post on that thread).</p><p>[edited to provide further help]</p><p>In response to your known issues in the comments at the start of the program:</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
// two players are stuck together<br />// player 2, as far as I can tell, is not starting at the location I specified (x-coordinate 440)
</p></div></div><p>
Yep, that&#39;s because you&#39;re plonking them both at the came location, (p1, staticy). You&#39;re also using frame1 animation to display player 2 (albeit flipped).</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
// game crashes for reasons unknown
</p></div></div><p>
Run it in debug mode and see where it stops?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
// occasionally game will skip the last frame of any animation, even when only one player is there and works properly...is that always going to happen or can that be fixed?
</p></div></div><p>
See my comment at the top of this post for that one.</p><p>Two of these 3 issues are quite basic errors (particularly the positioning one), and it indicates you have made very little effort, if any, to work out for your self why it&#39;s not working. That just plain lazy. I&#39;m not going to help again if you&#39;re not going to give debugging a good shot before asking for help.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HardTranceFan)</author>
		<pubDate>Thu, 14 Jun 2007 09:01:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t know how to read a debug screen.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 14 Jun 2007 21:44:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What IDE are you using?  (Dev-C++, Code::Blocks, Visual Studio, etc.)?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Thu, 14 Jun 2007 21:49:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m using Visual Studio 2005.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 14 Jun 2007 21:58:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I don&#39;t know how to read a debug screen.
</p></div></div><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I&#39;m using Visual Studio 2005.
</p></div></div><p>
Okay, you should have a debugger built into Visual Studio 2005.  You can go to your help menu and do a search for &quot;debugger&quot; or even &quot;debug&quot;, which will give you a start on how it works.  </p><p>Note that you can set &quot;breakpoints&quot; and when running in debug mode, the program will pause at this breakpoint.  Then you can manually step line-by-line through your code and see exactly where your code bombs.  </p><p>Knowing how to use a debugger is not optional, it is a part of programming.  No better time to learn. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Thu, 14 Jun 2007 22:33:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Alright, got it working.  Most of my errors were just due to copy+pasting and forgetting to change the things I was supposed to.  Thanks for the tip on the debugging.  I asked my brother for help in debugging, who just finished his sophomore year in college (computer science major) and oddly enough, he doesn&#39;t know how to read a debug screen either.  Usually the help files in VS just remind you of syntax without actually explaining anything, but I&#39;ll give it a go.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 14 Jun 2007 22:40:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
who just finished his sophomore year in college (computer science major) and oddly enough, he doesn&#39;t know how to read a debug screen either.
</p></div></div><p>

Not strange at all. As far as i know they never &quot;teach&quot; anyone how to use a debugger and the students just end up using &quot;printf&quot; debugging.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Goalie Ca)</author>
		<pubDate>Thu, 14 Jun 2007 23:35:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Meh. I was taught how to use GDB at one of my uni courses.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonatan Hedborg)</author>
		<pubDate>Thu, 14 Jun 2007 23:48:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Debugging is not only a matter of using a GNU/GDB interface or the M$ or the borland&#39;s one. Its also a matter of code.</p><p>There are plenty of coding techniques  in doing debugging. glibc, or the MFC or the C standard support functions and macros in order to make debugging. In our particular case, allegro also provides some basic routines for debugging your program. check the &quot;debugging&quot; session in the manual.</p><p>And by the way I never was taught GDB in the university but thats shame because a lot of things about the processor and the system could be learned by the time. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> </p><p>however  : fprintf(stdout,&quot;this s the greatest debugger ever %d\n&quot;,var);
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Julian Guarin)</author>
		<pubDate>Fri, 15 Jun 2007 06:45:05 +0000</pubDate>
	</item>
</rss>
