<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Updating game and input</title>
		<link>http://www.allegro.cc/forums/view/586760</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 02 Aug 2006 09:02:33 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey I got my main game loop..and im not sure what should be updated using the fps time.  I have it like this.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> D_DoGame<span class="k2">(</span>Player_S<span class="k3">*</span> p , Enemy_S<span class="k3">*</span> e , Level_S<span class="k3">*</span> lev , <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> b<span class="k2">)</span> <span class="k2">{</span> </td></tr><tr><td class="number">2</td><td>     </td></tr><tr><td class="number">3</td><td>  D_TimerSetup<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>  <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="k2">{</span></td></tr><tr><td class="number">6</td><td>          </td></tr><tr><td class="number">7</td><td>    <span class="k1">while</span> <span class="k2">(</span>ticks <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>              </td></tr><tr><td class="number">9</td><td>      D_UpdateInput<span class="k2">(</span>p<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>      D_CheckCollision<span class="k2">(</span>p , e , lev<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>            ticks <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>        <span class="k2">}</span>                      </td></tr><tr><td class="number">13</td><td>    </td></tr><tr><td class="number">14</td><td>    </td></tr><tr><td class="number">15</td><td>        D_UpdatePlayerDraw<span class="k2">(</span>p , b<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  D_DrawLevel_1<span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>        D_Flip<span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>p-&gt;playerImg<span class="k2">)</span><span class="k2">;</span>  <span class="c">//player image</span></td></tr><tr><td class="number">21</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>p-&gt;gunImg<span class="k2">)</span><span class="k2">;</span>  <span class="c">//gun image</span></td></tr><tr><td class="number">22</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span>    <span class="c">//buffer</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>	</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">void</span> D_UpdateInput<span class="k2">(</span>Player_S<span class="k3">*</span> p<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>     </td></tr><tr><td class="number">3</td><td>    <a href="http://www.allegro.cc/manual/clear_keybuf" target="_blank"><span class="a">clear_keybuf</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>    p-&gt;isMouse  <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">//the mouse is not pressed  </span></td></tr><tr><td class="number">6</td><td>  p-&gt;isJump  <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span> <span class="c">//jump is false if w(up) is not pressed</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>  <span class="c">//if the player is on the ground reset all the jumping varibles</span></td></tr><tr><td class="number">9</td><td>    <span class="k1">if</span> <span class="k2">(</span>p-&gt;y <span class="k3">&gt;</span><span class="k3">=</span> GROUND <span class="k3">-</span> <span class="n">3</span><span class="k2">)</span> <span class="k2">{</span> </td></tr><tr><td class="number">10</td><td>     </td></tr><tr><td class="number">11</td><td>        p-&gt;jumpTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> </td></tr><tr><td class="number">12</td><td>        p-&gt;velX <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span> <span class="k2">;</span> </td></tr><tr><td class="number">13</td><td>        p-&gt;velY <span class="k3">=</span> <span class="n">0</span>.<span class="n">0f</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>        p-&gt;y <span class="k3">=</span> GROUND<span class="k2">;</span>     </td></tr><tr><td class="number">15</td><td>    <span class="k2">}</span> </td></tr><tr><td class="number">16</td><td>  <span class="k1">if</span> <span class="k2">(</span>p-&gt;isJump <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> p-&gt;y <span class="k3">&lt;</span><span class="k3">=</span> GROUND <span class="k3">-</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span> p-&gt;velY <span class="k3">+</span><span class="k3">=</span> .<span class="n">05</span><span class="k2">;</span> <span class="k2">}</span> <span class="c">//if player is above ground put him back down </span></td></tr><tr><td class="number">17</td><td>     </td></tr><tr><td class="number">18</td><td>  <span class="c">//jump only if key is w(up) and the jump timer is less than the jump timer</span></td></tr><tr><td class="number">19</td><td>    <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_W<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> p-&gt;jumpTime <span class="k3">&lt;</span><span class="k3">=</span> MAX_JUMP_TIME <span class="k3">&amp;</span><span class="k3">&amp;</span> p-&gt;isJump <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>         </td></tr><tr><td class="number">21</td><td>        p-&gt;isJump <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>           </td></tr><tr><td class="number">22</td><td>        p-&gt;velY <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span>.<span class="n">5f</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>        p-&gt;jumpTime <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <span class="k2">}</span>     </td></tr><tr><td class="number">25</td><td>&#160;</td></tr><tr><td class="number">26</td><td>    <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="k2">{</span> p-&gt;x <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">0f</span><span class="k2">;</span> p-&gt;keyCheck <span class="k3">=</span> D_KEYLEFT<span class="k2">;</span> <span class="k2">}</span> <span class="c">// Left</span></td></tr><tr><td class="number">27</td><td>    <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="k2">{</span> p-&gt;x <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">0f</span><span class="k2">;</span> p-&gt;keyCheck <span class="k3">=</span> D_KEYRIGHT<span class="k2">;</span> <span class="k2">}</span> <span class="c">// Right</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td>  <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_UP<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span> p-&gt;crossY <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">5f</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">30</td><td>  <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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span> p-&gt;crossY <span class="k3">+</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">5f</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">31</td><td>  <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_R<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span> D_Reload<span class="k2">(</span>p<span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span> <span class="c">//reload</span></td></tr><tr><td class="number">32</td><td>  </td></tr><tr><td class="number">33</td><td>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span>  p-&gt;mouseTime <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">34</td><td>  </td></tr><tr><td class="number">35</td><td>  <span class="c">//left click(fire)</span></td></tr><tr><td class="number">36</td><td>  <span class="k1">if</span> <span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">1</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> p-&gt;isMouse <span class="k3">=</span><span class="k3">=</span> <span class="k1">false</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> p-&gt;mouseTime <span class="k3">&lt;</span> <span class="n">1</span><span class="k2">)</span> <span class="k2">{</span> </td></tr><tr><td class="number">37</td><td>    </td></tr><tr><td class="number">38</td><td>    p-&gt;mouseTime <span class="k3">+</span><span class="k3">+</span> <span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    p-&gt;isMouse <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>      </td></tr><tr><td class="number">40</td><td>    D_TakeAmmo<span class="k2">(</span>p , <span class="n">1</span><span class="k2">)</span><span class="k2">;</span>    </td></tr><tr><td class="number">41</td><td>  <span class="k2">}</span> </td></tr><tr><td class="number">42</td><td>&#160;</td></tr><tr><td class="number">43</td><td>  <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_b" target="_blank"><span class="a">mouse_b</span></a> <span class="k3">&amp;</span> <span class="n">2</span><span class="k2">)</span> <span class="k2">{</span> p-&gt;isMouse <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span> <span class="k2">}</span> <span class="c">//right click 2nd fire</span></td></tr><tr><td class="number">44</td><td>     </td></tr><tr><td class="number">45</td><td>  p-&gt;gunX <span class="k3">=</span> p-&gt;x <span class="k3">+</span> <span class="n">25</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>  p-&gt;gunY <span class="k3">=</span> p-&gt;y <span class="k3">+</span> <span class="n">25</span><span class="k2">;</span></td></tr><tr><td class="number">47</td><td>&#160;</td></tr><tr><td class="number">48</td><td>  p-&gt;crossX <span class="k3">=</span> p-&gt;x <span class="k3">+</span> <span class="n">120</span><span class="k2">;</span></td></tr><tr><td class="number">49</td><td>  </td></tr><tr><td class="number">50</td><td>  </td></tr><tr><td class="number">51</td><td>  D_FindMouseDistance<span class="k2">(</span>p<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td><span class="k2">}</span> </td></tr><tr><td class="number">53</td><td>&#160;</td></tr><tr><td class="number">54</td><td><span class="k1">void</span> D_UpdatePlayerDraw<span class="k2">(</span>Player_S<span class="k3">*</span> p , <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> b<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td>    <span class="k1">if</span> <span class="k2">(</span>p-&gt;keyCheck <span class="k3">=</span><span class="k3">=</span> D_KEYRIGHT<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">57</td><td>    </td></tr><tr><td class="number">58</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>b , p-&gt;playerImg , p-&gt;x <span class="k3">+</span><span class="k3">=</span> p-&gt;velX , p-&gt;y <span class="k3">+</span><span class="k3">=</span> p-&gt;velY<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">60</td><td>  <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>p-&gt;keyCheck <span class="k3">=</span><span class="k3">=</span> D_KEYLEFT<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td>    <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>b , p-&gt;playerImg , p-&gt;x <span class="k3">+</span><span class="k3">=</span> p-&gt;velX , p-&gt;y <span class="k3">+</span><span class="k3">=</span> p-&gt;velY<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">64</td><td>  </td></tr><tr><td class="number">65</td><td>  <a href="http://www.allegro.cc/manual/pivot_sprite" target="_blank"><span class="a">pivot_sprite</span></a><span class="k2">(</span>b , p-&gt;gunImg , p-&gt;gunX , p-&gt;gunY , <span class="n">0</span> , <span class="n">10</span> , </td></tr><tr><td class="number">66</td><td>           <a href="http://www.allegro.cc/manual/fixatan2" target="_blank"><span class="a">fixatan2</span></a><span class="k2">(</span><span class="k2">(</span><span class="k2">(</span>p-&gt;crossY <span class="k3">+</span> <span class="n">5</span><span class="k2">)</span> <span class="k3">-</span> p-&gt;gunY<span class="k2">)</span>, p-&gt;crossX <span class="k3">-</span> p-&gt;gunX<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//gun</span></td></tr><tr><td class="number">67</td><td>&#160;</td></tr><tr><td class="number">68</td><td>  <a href="http://www.allegro.cc/manual/circle" target="_blank"><span class="a">circle</span></a><span class="k2">(</span>b , p-&gt;crossX , p-&gt;crossY , <span class="n">0</span> , WHITE<span class="k2">)</span><span class="k2">;</span>  <span class="c">//cursor   </span></td></tr><tr><td class="number">69</td><td>  </td></tr><tr><td class="number">70</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>b , <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a> , <span class="n">10</span> , <span class="n">10</span> , WHITE , <span class="k3">-</span><span class="n">1</span> , <span class="s">"Health = %d"</span> , p-&gt;health<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>b , <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a> , <span class="n">10</span> , <span class="n">20</span> , WHITE , <span class="k3">-</span><span class="n">1</span> , <span class="s">"Ammo = %d"</span> , p-&gt;ammo<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>b , <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a> , <span class="n">10</span> , <span class="n">30</span> , WHITE , <span class="k3">-</span><span class="n">1</span> , <span class="s">"Distance = %f"</span> , p-&gt;mouseDistance<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Im just wandering if the collision detection (not really in collision detection right now) should be with the input or drawing.  like the jump checks and stuff in the Player update.. the reseting of variables etc.  thanks for any help.  not sure if it makes much sense.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 31 Jul 2006 09:29:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m not sure if I understood your question. If you&#39;re asking when collision detection should be done, you should do it as a part of your logic. I don&#39;t know what the code you posted has to do with it, though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Mon, 31 Jul 2006 14:44:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You HAVE TO do collision detection with the logic.<br />Otherwise it´s useless.</p><p>Imagine this:<br />1) logic: move left<br />2) draw: skipped (slow machine)<br />3) logic: move left through wall (collision)<br />4) draw: skipped<br />5) logic: move left<br />6) draw: check for collisions (there are none); draw.</p><p>So you walked through a wall because your collision detection has been skipped most of the time.</p><p>The proper way it should be like this:<br />1) logic: move left<br />2) draw: skipped (slow machine)<br />3) logic: move left through wall; check for collision; move left not possible; stay in front of the wall<br />4) draw: skipped<br />5) logic: move left still not possible; stay in front of wall<br />6) draw: draw.</p><p>Now you stand in front of the wall, where you should stand.<br />I hope you see the point.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (count)</author>
		<pubDate>Mon, 31 Jul 2006 15:18:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ok that makes sense..the problem is my game works fine most of the time..but when I have other programs running it slows the game down obviously.  but instead of just running slower the player just doesnt jump that high.  like ususally the player jumps pretty high..but if i have a lot of programs running it just jumps a tad.. it may have to do with the jumping code and what not..(not sure?)  ..or maybe the order of how I check collisions...but for wall collisions , etc shouldnt that be checked in the actual move functions.  (instead of being checked all the time)</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
If you&#39;re asking when collision detection should be done, you should do it as a part of your logic. I don&#39;t know what the code you posted has to do with it, though.
</p></div></div><p>

well.  I was prolly gonna but stuff like : (is the player touching the ground? if he is not then put the player back on the ground) in the collision detection.. right now its with the input.  but i assume it should be part of collision detection.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Mon, 31 Jul 2006 20:06:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>About the jumping, it could be that the player jumps as high, but the screen doesn&#39;t get updated, so the frame where he&#39;s at the full height of the jump never gets drawn.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Mon, 31 Jul 2006 20:27:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t have an answer for you unfortunatley, but i am experiencing similar problems. I have been working on a PONG type game, my first game, first real program etc. It works fine on my home computer but when i compile it and run it at work, it runs abysmally slow...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (joshua.tilson)</author>
		<pubDate>Tue, 01 Aug 2006 23:20:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://www.allegro.cc/manual/miscellaneous/frequently-asked-questions-(faq)/general-problems/bd35ed0706dad8b5c3aa3b3a91cdba2c">http://www.allegro.cc/manual/miscellaneous/frequently-asked-questions-(faq)/general-problems/bd35ed0706dad8b5c3aa3b3a91cdba2c</a></p><p>When you write your code like the above example (which is pretty easy) your program will run with the same speed on any pc.</p><p>Very important is to seperate logic and drawing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (count)</author>
		<pubDate>Tue, 01 Aug 2006 23:26:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>see my problem is what to put in updateinput and what to put in updatedraw..because i have some code to stop the mouse.(like keep the mouse in a certain area.)  when i put this code in the input(logic too) the mouse goes to far.  if it put this code in with the drawing it works fine.  see im pivoting a sprite based on the mouse movement so i need the mouse to stay within a certain range.  the jumping collision is also messed up..sometimes the player goes to far beyond the ground.  if i put this in the drawing its fine.  thats why its not working out for me to put input and drawing seperate.  im sure its something im doing wrong.  couldnt be also that im passing a million pointers and stuff into every function.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">if</span> <span class="k2">(</span>p-&gt;keyCheck <span class="k3">=</span><span class="k3">=</span> D_KEYRIGHT<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&lt;</span> <span class="k2">(</span>p-&gt;y <span class="k3">-</span> <span class="n">14</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">=</span> p-&gt;y <span class="k3">-</span> <span class="n">14</span><span class="k2">;</span> <span class="k2">}</span>  </td></tr><tr><td class="number">4</td><td>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">&gt;</span> <span class="k2">(</span>p-&gt;y <span class="k3">+</span> <span class="n">60</span><span class="k2">)</span><span class="k2">)</span> <span class="k2">{</span> <a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">=</span> p-&gt;y <span class="k3">+</span> <span class="n">60</span><span class="k2">;</span> <span class="k2">}</span>  </td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td>    p-&gt;gunX <span class="k3">=</span> p-&gt;x <span class="k3">+</span> <span class="n">25</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>    p-&gt;gunY <span class="k3">=</span> p-&gt;y <span class="k3">+</span> <span class="n">25</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">=</span> p-&gt;x <span class="k3">+</span> <span class="n">100</span><span class="k2">;</span>  </td></tr><tr><td class="number">9</td><td>    </td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>b , p-&gt;playerImg , p-&gt;x <span class="k3">+</span><span class="k3">=</span> p-&gt;velX , p-&gt;y <span class="k3">+</span><span class="k3">=</span> p-&gt;velY<span class="k2">)</span><span class="k2">;</span> <span class="c">//player</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>    <a href="http://www.allegro.cc/manual/pivot_sprite" target="_blank"><span class="a">pivot_sprite</span></a><span class="k2">(</span>b , p-&gt;gunImg , p-&gt;gunX , p-&gt;gunY , <span class="n">0</span> , <span class="n">10</span> , </td></tr><tr><td class="number">13</td><td>               <a href="http://www.allegro.cc/manual/fixatan2" target="_blank"><span class="a">fixatan2</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_y" target="_blank"><span class="a">mouse_y</span></a> <span class="k3">-</span> p-&gt;gunY<span class="k2">)</span> , <span class="k2">(</span><a href="http://www.allegro.cc/manual/mouse_x" target="_blank"><span class="a">mouse_x</span></a> <span class="k3">-</span> p-&gt;gunX<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//gun</span></td></tr><tr><td class="number">14</td><td>    </td></tr><tr><td class="number">15</td><td>    <span class="c">//circle(b , mouse_x , mouse_y , 3 , WHITE);</span></td></tr><tr><td class="number">16</td><td>  <span class="k2">}</span></td></tr></tbody></table></div></div><p>

although im sure hand coding that is not how it should be done.  as i was typing this i came across the position mouse function and the mouse range function..oh well.. and i guess my game was wierd because i had my bps_timer setting at 150.  i didnt know it should be at like 60.  everything runs slower obviously but it seems to make the game smoother.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Wed, 02 Aug 2006 02:29:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your game should have 3 different parts; input, logic and output (mainly drawing). It sounds to me like you&#39;re missing the logic part alltogether. Stuff to do with the mouse you should have in your input part. Collision detection etc. goes into logic. Drawing should only have the draw functions, you should do any calculations necessary for drawing as a part of your logic loop.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kauhiz)</author>
		<pubDate>Wed, 02 Aug 2006 03:09:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>ok..yea that makes sense. but should logic be updated with the drawing or with the input.  thats basically the question i have...thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Wed, 02 Aug 2006 03:55:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">dothedru22 said:</div><div class="quote"><p>

ok..yea that makes sense. but should logic be updated with the drawing or with the input. thats basically the question i have...thanks.
</p></div></div><p>

Update your logic together with but after your input and separate from your drawing.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Wed, 02 Aug 2006 04:30:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>alright thats cool. thanks.. i got it now..the main thing was the fps and the way i was doing the mouse.. i was sortof hand coding what the position mouse and the set mouse range function did..so it really didnt work out..thanks..later
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (dothedru22)</author>
		<pubDate>Wed, 02 Aug 2006 09:02:33 +0000</pubDate>
	</item>
</rss>
