<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to Move Bitmap By Input Keys...</title>
		<link>http://www.allegro.cc/forums/view/580517</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 27 Apr 2006 04:20:17 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi again...</p><p>I have been trying to move bitmap say &quot;worm.bmp&quot; over the screen through input keys..though I could able to move it to some extent but it is not moving in the desired way...In a sense..here in my code...when we run...it moves horizontally..and when I press down key..it moves down as long as I press the key..but when I release the key..it again moves horizontally...I want it to keep moving in the direction i press the key..Or simply put..it should be moving like a WORM...help please...</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><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></td></tr><tr><td class="number">3</td><td><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>data<span class="k2">;</span>   <span class="c">/* i have my bitmap in my dat file */</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="c">/* I am skipping allegro graphic initialisation and other initialisation because I am facing problem in the below function only */</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">void</span> move_worm<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td><span class="k2">{</span></td></tr><tr><td class="number">9</td><td>   <span class="k1">int</span> x <span class="k3">=</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">2</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>   <span class="k1">int</span> y <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a> <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</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></td></tr><tr><td class="number">13</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>   <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dat, buffer, <span class="n">0</span>, <span class="n">0</span>, x<span class="k3">+</span><span class="k3">+</span>, y, <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></td></tr><tr><td class="number">15</td><td>   <a href="http://www.allegro.cc/manual/vsync" target="_blank"><span class="a">vsync</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>   <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</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_RIGHT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">19</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>     x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">22</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_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">24</td><td>     x--<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>     x--<span class="k2">;</span></td></tr><tr><td class="number">26</td><td>   <span class="k2">}</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_UP<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">28</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">29</td><td>     y--<span class="k2">;</span></td></tr><tr><td class="number">30</td><td>     x--<span class="k2">;</span></td></tr><tr><td class="number">31</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">32</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></td></tr><tr><td class="number">33</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">34</td><td>     y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>     x--<span class="k2">;</span></td></tr><tr><td class="number">36</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">37</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">38</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">39</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Thu, 20 Apr 2006 15:25:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre> <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dat, buffer, <span class="n">0</span>, <span class="n">0</span>, x<span class="k3">+</span><span class="k3">+</span>, y, <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>
</pre></div></div><p>
That line is performed each time, so it moves horizontally therefore.</p><p>Do something:
</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><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></td></tr><tr><td class="number">2</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">3</td><td>     dx <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>     dy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">7</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_LEFT<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>     dx <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>     dy <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">12</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></td></tr><tr><td class="number">13</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>     dx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>     dy <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">17</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></td></tr><tr><td class="number">18</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">19</td><td>     dx <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>     dy <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>   x <span class="k3">+</span><span class="k3">=</span> dx<span class="k2">;</span></td></tr><tr><td class="number">23</td><td>   y <span class="k3">+</span><span class="k3">=</span> dy<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>   <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dat, buffer, <span class="n">0</span>, <span class="n">0</span>, x, y, <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></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Johan Halmén)</author>
		<pubDate>Thu, 20 Apr 2006 15:39:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">// very quick psuedo-code, the 'worm' will run off screen tho.</span></td></tr><tr><td class="number">2</td><td><span class="k1">struct</span> Worm <span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    <span class="k1">int</span> direction<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">void</span> move_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>    </td></tr><tr><td class="number">10</td><td>    <span class="k1">if</span> <span class="k2">(</span>direction <span class="k3">=</span><span class="k3">=</span> DIR_NORTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>        worm-&gt;y--<span class="k2">;</span>        </td></tr><tr><td class="number">12</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>direction <span class="k3">=</span><span class="k3">=</span> DIR_SOUTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>        worm-&gt;y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>direction <span class="k3">=</span><span class="k3">=</span> DIR_WEST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>        worm-&gt;x--<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>direction <span class="k3">=</span><span class="k3">=</span> DIR_EAST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>        worm-&gt;x<span class="k3">+</span><span class="k3">+</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><span class="k2">}</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">void</span> update_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">23</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></td></tr><tr><td class="number">24</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_NORTH<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">26</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_SOUTH<span class="k2">;</span></td></tr><tr><td class="number">27</td><td>    <span class="k2">}</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_LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>        work-&gt;direction <span class="k3">=</span> DIR_WEST<span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">30</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_EAST<span class="k2">;</span></td></tr><tr><td class="number">31</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">32</td><td><span class="k2">}</span></td></tr><tr><td class="number">33</td><td>&#160;</td></tr><tr><td class="number">34</td><td><span class="k1">void</span> draw_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">35</td><td>     <span class="c">// as you know which direction the worm is moving in, you can easly add bitmaps for each direction.</span></td></tr><tr><td class="number">36</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, bmp, <span class="n">0</span>, <span class="n">0</span>, bmp-&gt;x, bmp-&gt;y, <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></td></tr><tr><td class="number">37</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Edit: aww beaten to it! <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Thu, 20 Apr 2006 15:57:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hi johan...i could able to understand your code..and could able to run it..thankx..</p><p>hi casper..i really like urs code with structure...though..i am still confuse in the structure part...when i tried to merge it into my program..it shows lots of error...</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">struct</span> Worm <span class="k2">{</span>
    <span class="k1">int</span> x, y<span class="k2">;</span>
    <span class="k1">int</span> direction<span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

basically..i didn&#39;t understand the BITMAP *bmp in the struct...Do i need to load bitmap in this *bmp...and i suppose..i need to define variable for the struct..like this..</p><p>struct Worm worm</p><p>and other thing is in the draw_worm function....
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> draw_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm, <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">)</span> <span class="k2">{</span>
     <span class="c">// as you know which direction the worm is moving in, you can easly add bitmaps for each direction.</span>
     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, bmp, <span class="n">0</span>, <span class="n">0</span>, bmp-&gt;x, bmp-&gt;y, <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="k2">}</span>
</pre></div></div><p>

i didn&#39;t get the two paremeters...which one is for which one...as per me..it seems like the Worm *worm points to the content of structure..and BITMAP *bmp..points to the bitmap where i had loaded the bitmap image...rite...so..in the blit function...the worm point to the bmp and shows it on to the bmp...so i didn&#39;t get it..could you please..explain it in bit detail..possibly with comments..!</p><p>anyway..i really appreciate the help..and thanks a lot..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Thu, 20 Apr 2006 21:47:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Casper&#39;s code assumes that BITMAP *bmp; points to the worms graphics, instead of having to go through the datafile.</p><p>I suppose it would be entirely possible to use this code:
</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp <span class="k3">=</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span><span class="k2">)</span>data<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>.dat
<a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span> bmp, buffer, etc...<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
instead of just blitting it from the data file.</p><p>Either way you do it, BITMAP *bmp and (BITMAP *)data[0].dat point to the same data in memory.  Do you not know how pointers work?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (zer0)</author>
		<pubDate>Fri, 21 Apr 2006 01:27:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
i didn&#39;t get the two paremeters...which one is for which one...as per me..it seems like the Worm *worm points to the content of structure..and BITMAP *bmp..points to the bitmap where i had loaded the bitmap image...rite...so..in the blit function...the worm point to the bmp and shows it on to the bmp...so i didn&#39;t get it..could you please..explain it in bit detail..possibly with comments..!</p><p>anyway..i really appreciate the help..and thanks a lot..
</p></div></div><p>

now which bmp are you reffering to? hehe should have named them more clearly <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> draw_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm, <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="k2">{</span>
    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, bufer, <span class="n">0</span>, <span class="n">0</span>, worm-&gt;x, worm-&gt;y, bmp-&gt;w, bmp-&gt;h<span class="k2">)</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

Anyhow, <i>Worm::bmp</i> would point to whatever you want it, but <i>move_worm</i> and <i>update_worm</i> was what i wanted you to look at <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Fri, 21 Apr 2006 01:59:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Do you not know how pointers work?
</p></div></div><p>

well..i think in generic sense..pointer points to the address of the value stored in memory..rite...and here in the program...it points to the value inside the  structure...</p><p>yes..you are right..i can blit it either from dat file or from bitmap..but the problem here is that when i try to integrate the code inside my program..it doesn&#39;t run....???</p><p>hi casper...</p><p>i am now clear with draw_worm function...the first paremeter will point to my bitmap image..and second will point to the buffer..i got it..</p><p>now..i hav one more question...in your structure..</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">struct</span> Worm <span class="k2">{</span>
    <span class="k1">int</span> x, y<span class="k2">;</span>
    <span class="k1">int</span> direction<span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

i guess..you didn&#39;t define the pointer variable..like:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">struct</span> Worm <span class="k3">*</span>worm
</pre></div></div><p>

so that the *worm can access the value inside the struct Worm...am i right or is it other wise...!</p><p>anywa..i appreciate..it buddy....;)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Fri, 21 Apr 2006 15:11:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ah forgot about that, mostly use C++ so you&#39;ll have to exuse my C <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Fri, 21 Apr 2006 17:15:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hello monkey_code</p><p>here is my whole of the program...i integrate urs code in here..but its not working..could you please go through the code and point out the error..thanks a lot..</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="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="k1">struct</span> Worm <span class="k2">{</span></td></tr><tr><td class="number">3</td><td>    <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>    <span class="k1">int</span> direction<span class="k2">;</span></td></tr><tr><td class="number">5</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span></td></tr><tr><td class="number">6</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">struct</span> Worm <span class="k3">*</span>worm<span class="k2">;</span></td></tr><tr><td class="number">9</td><td><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></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><span class="k1">void</span> load_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td><span class="k1">void</span> move_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td><span class="k1">void</span> update_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td><span class="k1">void</span> draw_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm, <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="k2">;</span> </td></tr><tr><td class="number">15</td><td><span class="k1">void</span> unload_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td><span class="k1">int</span> DIR_NORTH <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k1">int</span> DIR_SOUTH <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td><span class="k1">int</span> DIR_EAST <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k1">int</span> DIR_WEST <span class="k3">=</span> <span class="n">3</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>  <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></td></tr><tr><td class="number">25</td><td>  <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></td></tr><tr><td class="number">26</td><td>    </td></tr><tr><td class="number">27</td><td>  load_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>  </td></tr><tr><td class="number">29</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></td></tr><tr><td class="number">30</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">31</td><td>  move_worm<span class="k2">(</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>  </td></tr><tr><td class="number">33</td><td>  update_worm<span class="k2">(</span>worm<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>  draw_worm<span class="k2">(</span>worm, buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">37</td><td>    </td></tr><tr><td class="number">38</td><td>  unload_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td>    </td></tr><tr><td class="number">40</td><td>  <span class="k1">return</span> <span class="n">0</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><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></td></tr><tr><td class="number">43</td><td>&#160;</td></tr><tr><td class="number">44</td><td><span class="k1">void</span> load_worm<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">45</td><td><span class="k2">{</span> </td></tr><tr><td class="number">46</td><td>  </td></tr><tr><td class="number">47</td><td>  <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></td></tr><tr><td class="number">48</td><td>  <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></td></tr><tr><td class="number">49</td><td>  <a href="http://www.allegro.cc/manual/set_color_conversion" target="_blank"><span class="a">set_color_conversion</span></a><span class="k2">(</span>COLORCONV_TOTAL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>  </td></tr><tr><td class="number">51</td><td>  worm-&gt;bmp <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></td></tr><tr><td class="number">52</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>worm-&gt;bmp<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">53</td><td>  <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Sorry, not enough memory"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">56</td><td>  clear<span class="k2">(</span>worm-&gt;bmp<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>  worm-&gt;bmp <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">"worm.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>worm-&gt;bmp<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">60</td><td>  <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Sorry, not able to read bitmap!"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">2</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">63</td><td>  </td></tr><tr><td class="number">64</td><td><span class="k2">}</span></td></tr><tr><td class="number">65</td><td>&#160;</td></tr><tr><td class="number">66</td><td><span class="k1">void</span> move_worm<span class="k2">(</span><span class="k1">struct</span> Worm <span class="k3">*</span>worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>    </td></tr><tr><td class="number">68</td><td>    <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_NORTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">69</td><td>        worm-&gt;y--<span class="k2">;</span>        </td></tr><tr><td class="number">70</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_SOUTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">71</td><td>        worm-&gt;y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">72</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_WEST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>        worm-&gt;x--<span class="k2">;</span></td></tr><tr><td class="number">74</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_EAST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">75</td><td>        worm-&gt;x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">77</td><td><span class="k2">}</span></td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td><span class="k1">void</span> update_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">80</td><td>        </td></tr><tr><td class="number">81</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></td></tr><tr><td class="number">82</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_NORTH<span class="k2">;</span></td></tr><tr><td class="number">83</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">84</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_SOUTH<span class="k2">;</span></td></tr><tr><td class="number">85</td><td>    <span class="k2">}</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_LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">86</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_WEST<span class="k2">;</span></td></tr><tr><td class="number">87</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">88</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_EAST<span class="k2">;</span></td></tr><tr><td class="number">89</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">90</td><td><span class="k2">}</span></td></tr><tr><td class="number">91</td><td>&#160;</td></tr><tr><td class="number">92</td><td><span class="k1">void</span> draw_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm, <span class="k1">struct</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="k2">{</span></td></tr><tr><td class="number">93</td><td>     <span class="c">// as you know which direction the worm is moving in, you can easly add bitmaps for each direction.</span></td></tr><tr><td class="number">94</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, buffer, <span class="n">0</span>, <span class="n">0</span>, worm-&gt;x, worm-&gt;y, <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></td></tr><tr><td class="number">95</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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></td></tr><tr><td class="number">96</td><td><span class="k2">}</span></td></tr><tr><td class="number">97</td><td>&#160;</td></tr><tr><td class="number">98</td><td><span class="k1">void</span> unload_worm<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">99</td><td><span class="k2">{</span></td></tr><tr><td class="number">100</td><td>   </td></tr><tr><td class="number">101</td><td>   <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">102</td><td>   </td></tr><tr><td class="number">103</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p><img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Sat, 22 Apr 2006 13:03:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><span class="k1">struct</span> Worm <span class="k3">*</span>worm<span class="k2">;</span></span></p><p>Hint: Where do you initialize the pointer?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Inphernic)</author>
		<pubDate>Sat, 22 Apr 2006 13:05:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre>worm-&gt;bmp <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="k1">if</span><span class="k2">(</span><span class="k3">!</span>worm-&gt;bmp<span class="k2">)</span> <span class="k2">{</span>
  <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Sorry, not enough memory"</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
  <span class="k2">}</span>
  clear<span class="k2">(</span>worm-&gt;bmp<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I guess you mean:</p><div class="source-code snippet"><div class="inner"><pre>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="k1">if</span><span class="k2">(</span><span class="k3">!</span>buffer<span class="k2">)</span> <span class="k2">{</span>
  <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Sorry, not enough memory"</span><span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span>
  <span class="k2">}</span>
  clear<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (umperio)</author>
		<pubDate>Sat, 22 Apr 2006 13:07:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You have a dangling pointer there, either allocate it or put it on the stack.</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="c">/* Use a macro, enum or const int instead, the previous would work but it's just bad practice ;) */</span></td></tr><tr><td class="number">2</td><td><span class="p">#define DIR_NORTH   1 </span></td></tr><tr><td class="number">3</td><td><span class="p">#define DIR_SOUTH   2</span></td></tr><tr><td class="number">4</td><td><span class="p">#define DIR_EAST    3</span></td></tr><tr><td class="number">5</td><td><span class="p">#define DIR_WEST    4</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">struct</span> Worm <span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>    <span class="k1">int</span> direction<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span></td></tr><tr><td class="number">11</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td><span class="k1">void</span> construct_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">14</td><td>    <span class="c">/* screen buffer creation doesn't really have any relationship to the worm, so why put it here? ;) */</span></td></tr><tr><td class="number">15</td><td>    worm-&gt;bmp <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">"worm.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>    worm-&gt;x   <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>    worm-&gt;y   <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>    </td></tr><tr><td class="number">19</td><td>    worm-&gt;direction <span class="k3">=</span> DIR_EAST<span class="k2">;</span></td></tr><tr><td class="number">20</td><td>    </td></tr><tr><td class="number">21</td><td>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>worm-&gt;bmp<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>        <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error, file not found"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</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><span class="k2">}</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td><span class="k1">int</span> main<span class="k2">(</span>argc, <span class="k1">char</span><span class="k3">*</span><span class="k3">*</span> argv<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">28</td><td>    Worm        worm<span class="k2">;</span></td></tr><tr><td class="number">29</td><td>    <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></td></tr><tr><td class="number">30</td><td>    </td></tr><tr><td class="number">31</td><td>    <span class="c">/* setup allegro and the buffers somewhere before construct */</span></td></tr><tr><td class="number">32</td><td>    construct_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td>    </td></tr><tr><td class="number">34</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">35</td><td>        update_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td>        draw_worm<span class="k2">(</span><span class="k3">&amp;</span>worm, buffer<span class="k2">)</span><span class="k2">;</span>   <span class="c">/* buffer isn't defined or constructed here */</span></td></tr><tr><td class="number">37</td><td>        </td></tr><tr><td class="number">38</td><td>        <span class="c">/* swap buffers */</span></td></tr><tr><td class="number">39</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">40</td><td>    </td></tr><tr><td class="number">41</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Sat, 22 Apr 2006 17:33:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hi guys...</p><p>I have been banging my head against the computer screen for quite some time to make this code work..but I couldn&#39;t...!! Here..is the improved version of the worm program by integrating the code suggested by you...when I compile the program..it shows lots of error..I am using DevC++...could you guy care to compile this program for me..and solve the error...I really appreciate it...</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="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="p">#define DIR_NORTH   1 </span></td></tr><tr><td class="number">4</td><td><span class="p">#define DIR_SOUTH   2</span></td></tr><tr><td class="number">5</td><td><span class="p">#define DIR_EAST    3</span></td></tr><tr><td class="number">6</td><td><span class="p">#define DIR_WEST    4</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">struct</span> Worm <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>    <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">10</td><td>    <span class="k1">int</span> direction<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> bmp<span class="k2">;</span></td></tr><tr><td class="number">12</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td><span class="k1">void</span> construct_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td><span class="k1">void</span> move_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td><span class="k1">void</span> update_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td><span class="k1">void</span> draw_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm, <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="k2">;</span> </td></tr><tr><td class="number">18</td><td><span class="k1">void</span> unload_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">22</td><td><span class="k2">{</span></td></tr><tr><td class="number">23</td><td>  Worm <span class="k3">*</span>worm<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  <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></td></tr><tr><td class="number">25</td><td>  </td></tr><tr><td class="number">26</td><td>  <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></td></tr><tr><td class="number">27</td><td>  <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></td></tr><tr><td class="number">28</td><td>  </td></tr><tr><td class="number">29</td><td>  <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></td></tr><tr><td class="number">30</td><td>  <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></td></tr><tr><td class="number">31</td><td>  <a href="http://www.allegro.cc/manual/set_color_conversion" target="_blank"><span class="a">set_color_conversion</span></a><span class="k2">(</span>COLORCONV_TOTAL<span class="k2">)</span><span class="k2">;</span>  </td></tr><tr><td class="number">32</td><td>    </td></tr><tr><td class="number">33</td><td>  construct_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm<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="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">36</td><td>    move_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>    update_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>    draw_worm<span class="k2">(</span><span class="k3">&amp;</span>worm, buffer<span class="k2">)</span><span class="k2">;</span>   </td></tr><tr><td class="number">39</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">40</td><td>    </td></tr><tr><td class="number">41</td><td>  unload_worm<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>    </td></tr><tr><td class="number">43</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td><span class="k2">}</span></td></tr><tr><td class="number">45</td><td><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></td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td><span class="k1">void</span> construct_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">48</td><td>    <span class="c">/* screen buffer creation doesn't really have any relationship to the worm, so why put it here? ;) */</span></td></tr><tr><td class="number">49</td><td>    worm-&gt;bmp <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">"worm.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>    worm-&gt;x   <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    worm-&gt;y   <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>    </td></tr><tr><td class="number">53</td><td>    worm-&gt;direction <span class="k3">=</span> DIR_EAST<span class="k2">;</span></td></tr><tr><td class="number">54</td><td>    </td></tr><tr><td class="number">55</td><td>    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>worm-&gt;bmp<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">56</td><td>        <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error, file not found"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">57</td><td>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">58</td><td>    <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>&#160;</td></tr><tr><td class="number">61</td><td><span class="k1">void</span> move_worm<span class="k2">(</span><span class="k1">struct</span> Worm <span class="k3">*</span>worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">62</td><td>    </td></tr><tr><td class="number">63</td><td>    <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_NORTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">64</td><td>        worm-&gt;y--<span class="k2">;</span>        </td></tr><tr><td class="number">65</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_SOUTH<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">66</td><td>        worm-&gt;y<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_WEST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">68</td><td>        worm-&gt;x--<span class="k2">;</span></td></tr><tr><td class="number">69</td><td>    <span class="k2">}</span> <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>worm-&gt;direction <span class="k3">=</span><span class="k3">=</span> DIR_EAST<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">70</td><td>        worm-&gt;x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">72</td><td><span class="k2">}</span></td></tr><tr><td class="number">73</td><td>&#160;</td></tr><tr><td class="number">74</td><td><span class="k1">void</span> update_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">75</td><td>        </td></tr><tr><td class="number">76</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></td></tr><tr><td class="number">77</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_NORTH<span class="k2">;</span></td></tr><tr><td class="number">78</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">79</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_SOUTH<span class="k2">;</span></td></tr><tr><td class="number">80</td><td>    <span class="k2">}</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_LEFT<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">81</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_WEST<span class="k2">;</span></td></tr><tr><td class="number">82</td><td>    <span class="k2">}</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_DOWN<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">83</td><td>        worm-&gt;direction <span class="k3">=</span> DIR_EAST<span class="k2">;</span></td></tr><tr><td class="number">84</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">85</td><td><span class="k2">}</span></td></tr><tr><td class="number">86</td><td>&#160;</td></tr><tr><td class="number">87</td><td><span class="k1">void</span> draw_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm, <span class="k1">struct</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="k2">{</span></td></tr><tr><td class="number">88</td><td>     <span class="c">// as you know which direction the worm is moving in, you can easly add bitmaps for each direction.</span></td></tr><tr><td class="number">89</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, buffer, <span class="n">0</span>, <span class="n">0</span>, worm-&gt;x, worm-&gt;y, <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></td></tr><tr><td class="number">90</td><td>     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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></td></tr><tr><td class="number">91</td><td><span class="k2">}</span></td></tr><tr><td class="number">92</td><td>&#160;</td></tr><tr><td class="number">93</td><td><span class="k1">void</span> unload_worm<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">94</td><td><span class="k2">{</span></td></tr><tr><td class="number">95</td><td>   </td></tr><tr><td class="number">96</td><td>   <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">97</td><td>   </td></tr><tr><td class="number">98</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p><img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Mon, 24 Apr 2006 13:24:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I guess you&#39;re not learning, just asking us to code for you.</p><p><span class="source-code">construct_worm<span class="k2">(</span>Worm<span class="k3">*</span> worm<span class="k2">)</span><span class="k2">;</span></span></p><p>The compiler should tell you there something wrong with it. Do you know how to call a function? If not read a C book or look at the other functions you call.</p><div class="source-code snippet"><div class="inner"><pre>move_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span>
update_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span>
draw_worm<span class="k2">(</span><span class="k3">&amp;</span>worm, buffer<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

Your worm is a pointer to a Worm struct, so you should use it as a parameter, not a pointer to it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (umperio)</author>
		<pubDate>Mon, 24 Apr 2006 13:42:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> draw_worm<span class="k2">(</span><span class="k1">struct</span> Worm<span class="k3">*</span> worm, <span class="k1">struct</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="k2">{</span>
     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>worm-&gt;bmp, buffer, <span class="n">0</span>, <span class="n">0</span>, worm-&gt;x, worm-&gt;y, <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">/* What relationship does this have to the 'worm'? */</span>
     <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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="k2">}</span>

<span class="k1">void</span> unload_worm<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span>
    <span class="c">/* Again, what relationship does the framebuffer have with the worm object? </span>
<span class="c">     * Also, buffer is declared locally (Which is fine) but this function basicly wont know what to do, which probaly is one of the errors mingw is tossing at you.</span>
<span class="c">     */</span>
    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span> 
<span class="k2">}</span>
</pre></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">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">2</td><td>    Worm worm<span class="k2">;</span></td></tr><tr><td class="number">3</td><td>    <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></td></tr><tr><td class="number">4</td><td>  </td></tr><tr><td class="number">5</td><td>    <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></td></tr><tr><td class="number">6</td><td>    <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></td></tr><tr><td class="number">7</td><td>  </td></tr><tr><td class="number">8</td><td>    <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></td></tr><tr><td class="number">9</td><td>    <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></td></tr><tr><td class="number">10</td><td>    <a href="http://www.allegro.cc/manual/set_color_conversion" target="_blank"><span class="a">set_color_conversion</span></a><span class="k2">(</span>COLORCONV_TOTAL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  </td></tr><tr><td class="number">12</td><td>    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></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>    <span class="c">/* construct_worm(Worm* worm); */</span></td></tr><tr><td class="number">15</td><td>    construct_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">16</td><td>    </td></tr><tr><td class="number">17</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">18</td><td>        update_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>        move_worm<span class="k2">(</span><span class="k3">&amp;</span>worm<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td>        draw_worm<span class="k2">(</span><span class="k3">&amp;</span>worm, buffer<span class="k2">)</span><span class="k2">;</span>   </td></tr><tr><td class="number">21</td><td>    </td></tr><tr><td class="number">22</td><td>        <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <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></td></tr><tr><td class="number">23</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>    </td></tr><tr><td class="number">25</td><td>    <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>    </td></tr><tr><td class="number">27</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr><tr><td class="number">29</td><td><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></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Tue, 25 Apr 2006 04:25:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I guess you&#39;re not learning, just asking us to code for you
</p></div></div><p>

i am sorry if it sounds like that...however,,i have been coming here to learn from you guys..and if my intention is to just get hold of the code then..i can get it easily off the net...but then I won&#39;t able to learn anything from it...in contrast..i have been discussing the code here...so that you learned guys can teach me....right now i am bit rusty..and if it offends you guys..my bad..</p><p>regards</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
Worm worm<span class="k2">;</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>
....
</pre></div></div><p>

my compiler is throwing error message..saying &quot;worm is undeclared&quot;..shouldn&#39;t it be declared before the main() to make it global...with its pointer type...</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">struct</span> Worm<span class="k3">*</span> worm<span class="k2">;</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>
</pre></div></div><p>

regards
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (tibgamer)</author>
		<pubDate>Wed, 26 Apr 2006 14:04:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
i am sorry if it sounds like that...however,,i have been coming here to learn from you guys..and if my intention is to just get hold of the code then..i can get it easily off the net...but then I won&#39;t able to learn anything from it...in contrast..i have been discussing the code here...so that you learned guys can teach me....right now i am bit rusty..and if it offends you guys..my bad..
</p></div></div><p>
I don&#39;t mind that, altough it seems like you should pick up a book on C or C++ depending on which you are interested in.</p><p>Also, please try to punctuate properly <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
my compiler is throwing error message..saying &quot;worm is undeclared&quot;..shouldn&#39;t it be declared before the main() to make it global...with its pointer type...
</p></div></div><p>
Again, the code wasn&#39;t meant to compile.</p><p>...</p><p>But a quick check comfirms that it does compile, so what&#39;s the problem?</p><p>Edit:
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// C is a bit more strict in how you declare structs, so either </span>
<span class="k1">struct</span> Worm worm<span class="k2">;</span>
<span class="c">// or</span>
<span class="k1">typedef</span> <span class="k1">struct</span> Worm worm_t<span class="k2">;</span>
worm_t worm<span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (monkeyCode)</author>
		<pubDate>Thu, 27 Apr 2006 04:20:17 +0000</pubDate>
	</item>
</rss>
