<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>3d matrix</title>
		<link>http://www.allegro.cc/forums/view/586165</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 30 Jun 2006 19:28:04 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just out of curiosity, I&#39;m not working on anyrhin 3d, how would you do a 3d tilemap matrix, ex. a</p><p>3 x 3 x 3</p><p>?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Wed, 28 Jun 2006 21:38:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;d use a 3 dimensional array.</p><p>AE.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Andrei Ellman)</author>
		<pubDate>Thu, 29 Jun 2006 22:09:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oops, I worded that wrong.  I kinda meant how you programmed a 3d array.</p><p>By the way, where did you get that animation?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Thu, 29 Jun 2006 23:17:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I kinda meant how you programmed a 3d array.
</p></div></div><p>

Here&#39;s an example:</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">#define WIDTH 20</span></td></tr><tr><td class="number">2</td><td><span class="p">#define HEIGHT 25</span></td></tr><tr><td class="number">3</td><td><span class="p">#define DEPTH 10</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</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">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td>    <span class="k1">int</span> x, y, z<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>    <span class="k1">int</span> map<span class="k2">[</span>WIDTH<span class="k2">]</span><span class="k2">[</span>HEIGHT<span class="k2">]</span><span class="k2">[</span>DEPTH<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td>    <span class="k1">for</span><span class="k2">(</span> z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> z <span class="k3">&lt;</span> DEPTH<span class="k2">;</span> z<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</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">for</span><span class="k2">(</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> HEIGHT<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span> <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">for</span><span class="k2">(</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> WIDTH<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>                map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>z<span class="k2">]</span> <span class="k3">=</span> <span class="n">0</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="k2">}</span></td></tr><tr><td class="number">19</td><td> </td></tr><tr><td class="number">20</td><td>        <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="k2">}</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td>    <span class="k1">return</span> <span class="n">0</span><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="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Thu, 29 Jun 2006 23:35:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
int map[WIDTH][HEIGHT][DEPTH];
</p></div></div><p>

I believe this is more accurate:<br /><span class="source-code"><span class="k1">int</span> map<span class="k2">[</span>DEPTH<span class="k2">]</span><span class="k2">[</span>HEIGHT<span class="k2">]</span><span class="k2">[</span>WIDTH<span class="k2">]</span><span class="k2">;</span></span></p><p>With arrays you have to use inverse of what you want (for optimal memory access that is).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Avenger)</author>
		<pubDate>Fri, 30 Jun 2006 01:05:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So how do you do a tilemap w/ a 3d array?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 01:06:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>By letting the array elements denote tiles. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 30 Jun 2006 01:32:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>But with the numbers denoting tiles.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 01:34:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>IHBT, IHL, HAND?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 30 Jun 2006 01:35:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>which are?.?.?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 01:47:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think gnolam is wondering if you have the faintest idea of what you are talking about.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 30 Jun 2006 01:51:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t done anything 3D before.  Besides, you&#39;re not gnolam.  Gnolam can speak for himself.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 01:53:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m simply wondering if you&#39;re <a href="http://www.catb.org/jargon/html/Y/YHBT.html">trolling</a> or if you really are as thick as you appear to be...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 30 Jun 2006 01:55:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Gnolam can speak for himself
</p></div></div><p>

Yes, but I get the feeling that it would have to be censored.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I haven&#39;t done anything 3D before.
</p></div></div><p>

Well for starters, you don&#39;t use tilemaps in 3D graphics.  A 3d tilemap array is something different. It allows you to add layers to 2d tilemaps so that you can do things like &#39;fake 3d&#39; games, and animated tiles.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 30 Jun 2006 01:56:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>O
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 01:58:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So you have a 3D array, right? It can be an array of ints. You loop through it, just as described by LennyLen. Each int can hold say, 1 or 0. 1 is for a tile, 0 is for no tile. Assuming you have a bitmap/model representation for the tile, you could do something like this.
</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">for</span><span class="k2">(</span> z <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> z <span class="k3">&lt;</span> DEPTH<span class="k2">;</span> z<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>

        <span class="k1">for</span><span class="k2">(</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> HEIGHT<span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>

            <span class="k1">for</span><span class="k2">(</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> WIDTH<span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span> <span class="k2">)</span> <span class="k2">{</span>
                <span class="k1">if</span> <span class="k2">(</span>map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>z<span class="k2">]</span><span class="k2">)</span> <span class="k2">{</span>
                    DrawTile<span class="k2">(</span>x, y, z<span class="k2">)</span><span class="k2">;</span>
                <span class="k2">}</span>
            <span class="k2">}</span>
 
        <span class="k2">}</span>

    <span class="k2">}</span>
</pre></div></div><p>
That&#39;s a very simple tile map. I&#39;ll leave it up to you to decide how DrawTile is implemented.</p><p>[edit]<br />It&#39;s a good idea to figure out what something is before you ask for help on how to implement it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Jonny Cook)</author>
		<pubDate>Fri, 30 Jun 2006 01:59:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">LennyLen said:</div><div class="quote"><p>

Well for starters, you don&#39;t use tilemaps in 3D graphics. A 3d tilemap array is something different. It allows you to add layers to 2d tilemaps so that you can do things like &#39;fake 3d&#39; games, and animated tiles.
</p></div></div><p>
You could still design a 3D level by using a 3D array to represent which blocks appear at certain discrete locations in 3D space (gap, brick wall, metal wall, etc.). You&#39;d be using blocks instead of tiles, but you&#39;d be using a 3D array like you would do for a 3D tilemap.</p><p>3D tilemaps are probably best sed for 2D games where the tiles consist of several layers (eg. what lies under the floor, the floor, the walls, and a transparent ceiling).</p><div class="quote_container"><div class="title">vixinu said:</div><div class="quote"><p>

By the way, where did you get that animation?
</p></div></div><p>
See <a href="http://www.allegro.cc/forums/thread/569918">this thread</a></p><p>AE.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Andrei Ellman)</author>
		<pubDate>Fri, 30 Jun 2006 03:40:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This has nothing to do with anything in the topic thus far, but I get this error message when I run my code in g++:</p><p>error message:</p><p>maptest.cpp: In function &#39;int _mangled_main(int, char**)&#39;:<br />maptest.cpp:27: error: expected initializer before &#39;bmp&#39;<br />maptest.cpp:50: error: &#39;x&#39; was not declared in this scope<br />maptest.cpp:62: error: &#39;tilesize&#39; was not declared in this scope<br />/usr/local/include/allegro/datafile.h:81: error: too few arguments to function &#39;BITMAP* load_bitmap(const char*, RGB*)&#39;<br />maptest.cpp:67: error: at this point in file</p><p>code:
</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="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span> <span class="k3">*</span>argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></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><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">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</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">9</td><td>&#160;</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>buffer <span class="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">11</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><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</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>, <span class="n">640</span>, <span class="n">480</span><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">//load bitmap</span></td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>bmp</td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td>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">"Woodland_Tileset.png"</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><span class="c">//load tilemap</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> tilemap<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span></td></tr><tr><td class="number">23</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">24</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">25</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">26</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">27</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">29</td><td>&#160;</td></tr><tr><td class="number">30</td><td><span class="k1">int</span> tile_number <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span> <span class="c">//Set to the tile number wanted</span></td></tr><tr><td class="number">31</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> tileset<span class="k2">;</span> <span class="c">//Set to tileset to be loaded</span></td></tr><tr><td class="number">32</td><td><span class="k1">int</span> tile_size <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> <span class="c">//Set this to how many pixels big each tile is</span></td></tr><tr><td class="number">33</td><td><span class="k1">int</span> set_x <span class="k3">=</span> tile_number % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td><span class="k1">int</span> set_y <span class="k3">=</span> tile_number <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td><span class="c">//Put tileset on screen</span></td></tr><tr><td class="number">37</td><td>&#160;</td></tr><tr><td class="number">38</td><td><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</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>  <span class="c">//Find out what tileset index to use based on the tilemap at the current (x, y) coordinates</span></td></tr><tr><td class="number">41</td><td>  <span class="k1">int</span> set_x <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>  <span class="k1">int</span> set_y <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td>  <span class="c">//Put it on the buffer</span></td></tr><tr><td class="number">44</td><td>  <span class="c">//  blit(tileset, buffer,</span></td></tr><tr><td class="number">45</td><td>  <span class="c">//Blit from the tileset to the screen</span></td></tr><tr><td class="number">46</td><td>  <span class="c">//  set_x * tile_size, set_y * tile_size,</span></td></tr><tr><td class="number">47</td><td>  <span class="c">//starting at the pixel coordinates of the desired tile</span></td></tr><tr><td class="number">48</td><td>  <span class="c">//  x * tile_size, y * tile_size,</span></td></tr><tr><td class="number">49</td><td>  <span class="c">//put on the screen at the proper place</span></td></tr><tr><td class="number">50</td><td>  <span class="c">//  tile_size, tile_size);</span></td></tr><tr><td class="number">51</td><td>  <span class="c">//and put only 1 tile's worth of pixels</span></td></tr><tr><td class="number">52</td><td>  <span class="c">//To put this all together:</span></td></tr><tr><td class="number">53</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>tileset, buffer, set_x <span class="k3">*</span> tile_size, set_y <span class="k3">*</span> tilesize, x <span class="k3">*</span> tilesize, y <span class="k3">*</span> tilesize, tile_size, tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td><span class="k2">}</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>sprite<span class="k2">;</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</td><td>sprite <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">"Sprite.png"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>&#160;</td></tr><tr><td class="number">60</td><td><a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, sprite, <span class="n">0</span>, <span class="n">0</span><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><span class="k1">int</span> sprite_x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td><span class="k1">int</span> sprite_y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>&#160;</td></tr><tr><td class="number">65</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">66</td><td><span class="k2">{</span></td></tr><tr><td class="number">67</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">68</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">69</td><td>    sprite_x <span class="k3">+</span>  <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">71</td><td>  <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></td></tr><tr><td class="number">72</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>    sprite_x <span class="k3">-</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">75</td><td>  <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_UP<span class="k2">]</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>    sprite_y <span class="k3">-</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">79</td><td>  <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></td></tr><tr><td class="number">80</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">81</td><td>    sprite_y <span class="k3">+</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">82</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">83</td><td><span class="k2">}</span></td></tr><tr><td class="number">84</td><td>&#160;</td></tr><tr><td class="number">85</td><td><a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>sprite<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">86</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">87</td><td><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">88</td><td><span class="k2">}</span></td></tr><tr><td class="number">89</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 (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 03:52:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I stand by my previous comment(s).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Fri, 30 Jun 2006 04:04:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Which ones?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 04:06:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>He&#39;s wondering if you&#39;re trolling.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Fri, 30 Jun 2006 04:15:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No.</p><p>[edit]I found a few reasons for a few of the bugs, and cut it down to specific code.  Now the error is:</p><p>maptest.cpp:26: error: at this point in file</p><p>the code is: (starting line 10)
</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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></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/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</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, <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">8</td><td>&#160;</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="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">10</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><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</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>, <span class="n">640</span>, <span class="n">480</span><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="c">//load bitmap</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</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">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>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">"Woodland_Tileset.png"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><span class="c">//load tilemap</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k1">int</span> tilemap<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">23</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">24</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">25</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">26</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><span class="k1">int</span> tile_number <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span> <span class="c">//Set to the tile number wanted</span></td></tr><tr><td class="number">30</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> tileset<span class="k2">;</span> <span class="c">//Set to tileset to be loaded</span></td></tr><tr><td class="number">31</td><td><span class="k1">int</span> tile_size <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> <span class="c">//Set this to how many pixels big each tile is</span></td></tr><tr><td class="number">32</td><td><span class="k1">int</span> set_x <span class="k3">=</span> tile_number % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td><span class="k1">int</span> set_y <span class="k3">=</span> tile_number <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td><span class="c">//Put tileset on screen</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</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="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">40</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">41</td><td>  <span class="k1">int</span> tilesize <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>   <span class="c">//Find out what tileset index to use based on the tilemap at the current (x, y) coordinates</span></td></tr><tr><td class="number">43</td><td>  <span class="k1">int</span> set_x <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>  <span class="k1">int</span> set_y <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>  <span class="c">//Put it on the buffer</span></td></tr><tr><td class="number">46</td><td>  <span class="c">//  blit(tileset, buffer,</span></td></tr><tr><td class="number">47</td><td>  <span class="c">//Blit from the tileset to the screen</span></td></tr><tr><td class="number">48</td><td>  <span class="c">//  set_x * tile_size, set_y * tile_size,</span></td></tr><tr><td class="number">49</td><td>  <span class="c">//starting at the pixel coordinates of the desired tile</span></td></tr><tr><td class="number">50</td><td>  <span class="c">//  x * tile_size, y * tile_size,</span></td></tr><tr><td class="number">51</td><td>  <span class="c">//put on the screen at the proper place</span></td></tr><tr><td class="number">52</td><td>  <span class="c">//  tile_size, tile_size);</span></td></tr><tr><td class="number">53</td><td>  <span class="c">//and put only 1 tile's worth of pixels</span></td></tr><tr><td class="number">54</td><td>  <span class="c">//To put this all together:</span></td></tr><tr><td class="number">55</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>tileset, buffer, set_x <span class="k3">*</span> tile_size, set_y <span class="k3">*</span> tilesize, x <span class="k3">*</span> tilesize, y <span class="k3">*</span> tilesize, tile_size, tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td><span class="k2">}</span><span class="k2">}</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</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">59</td><td><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td><span class="k2">}</span></td></tr><tr><td class="number">61</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 (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 04:17:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try using load_bitmap() correctly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Fri, 30 Jun 2006 14:58:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Try using load_bitmap() correctly.
</p></div></div><p>
And check the manual if you have any questions on how to use it.<br />You can click on it in the code you posted for a quick link.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Fri, 30 Jun 2006 16:16:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve read the manual, here is my new error and code:</p><p>maptest.cpp:36: error: expected primary-expression before &#39;palette&#39;</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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></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/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</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, <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">8</td><td>&#160;</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="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">10</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><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</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>, <span class="n">640</span>, <span class="n">480</span><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="c">//load bitmap</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="k1">typedef</span> <span class="k1">struct</span> <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a></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">unsigned</span> <span class="k1">char</span> r, g, b<span class="k2">;</span></td></tr><tr><td class="number">18</td><td><span class="k2">}</span> <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a><span class="k2">;</span></td></tr><tr><td class="number">19</td><td><span class="k1">typedef</span> <span class="k1">struct</span> <a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a></td></tr><tr><td class="number">20</td><td><span class="k2">{</span></td></tr><tr><td class="number">21</td><td>  <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a> <a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a><span class="k2">[</span><a href="http://www.allegro.cc/manual/PAL_SIZE" target="_blank"><span class="a">PAL_SIZE</span></a><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span> <a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a><span class="k2">;</span></td></tr><tr><td class="number">23</td><td>&#160;</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>bmp<span class="k2">;</span></td></tr><tr><td class="number">25</td><td><a href="http://www.allegro.cc/manual/PALETTE" target="_blank"><span class="a">PALETTE</span></a> <span class="k3">*</span>palette<span class="k2">;</span></td></tr><tr><td class="number">26</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_REDUCE_TO_256<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>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">"Woodland_Tileset.bmp"</span>, <a href="http://www.allegro.cc/manual/RGB" target="_blank"><span class="a">RGB</span></a> palette<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><span class="c">//load tilemap</span></td></tr><tr><td class="number">30</td><td>&#160;</td></tr><tr><td class="number">31</td><td><span class="k1">int</span> tilemap<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span></td></tr><tr><td class="number">32</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">33</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">34</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">35</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">36</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span></td></tr><tr><td class="number">37</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td><span class="k1">int</span> tile_number <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span> <span class="c">//Set to the tile number wanted</span></td></tr><tr><td class="number">40</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> tileset<span class="k2">;</span> <span class="c">//Set to tileset to be loaded</span></td></tr><tr><td class="number">41</td><td><span class="k1">int</span> tile_size <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> <span class="c">//Set this to how many pixels big each tile is</span></td></tr><tr><td class="number">42</td><td><span class="k1">int</span> set_x <span class="k3">=</span> tile_number % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">43</td><td><span class="k1">int</span> set_y <span class="k3">=</span> tile_number <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>&#160;</td></tr><tr><td class="number">45</td><td><span class="c">//Put tileset on screen</span></td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">48</td><td><span class="k2">{</span></td></tr><tr><td class="number">49</td><td>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">50</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">51</td><td>  <span class="k1">int</span> tilesize <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">52</td><td>  <span class="c">//Find out what tileset index to use based on the tilemap at the current (x, y) coordinates</span></td></tr><tr><td class="number">53</td><td>  <span class="k1">int</span> set_x <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">54</td><td>  <span class="k1">int</span> set_y <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>  <span class="c">//Put it on the buffer</span></td></tr><tr><td class="number">56</td><td>  <span class="c">//  blit(tileset, buffer,</span></td></tr><tr><td class="number">57</td><td>  <span class="c">//Blit from the tileset to the screen</span></td></tr><tr><td class="number">58</td><td>  <span class="c">//  set_x * tile_size, set_y * tile_size,</span></td></tr><tr><td class="number">59</td><td>  <span class="c">//starting at the pixel coordinates of the desired tile</span></td></tr><tr><td class="number">60</td><td>  <span class="c">//  x * tile_size, y * tile_size,</span></td></tr><tr><td class="number">61</td><td>  <span class="c">//put on the screen at the proper place</span></td></tr><tr><td class="number">62</td><td>  <span class="c">//  tile_size, tile_size);</span></td></tr><tr><td class="number">63</td><td>  <span class="c">//and put only 1 tile's worth of pixels</span></td></tr><tr><td class="number">64</td><td>  <span class="c">//To put this all together:</span></td></tr><tr><td class="number">65</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>tileset, buffer, set_x <span class="k3">*</span> tile_size, set_y <span class="k3">*</span> tilesize, x <span class="k3">*</span> tilesize, y <span class="k3">*</span> tilesize, tile_size, tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td><span class="k2">}</span><span class="k2">}</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/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">69</td><td><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td><span class="k2">}</span></td></tr><tr><td class="number">71</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 (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 18:10:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try this instead:<br /><span class="source-code">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">"Woodland_Tileset.bmp"</span>, Null<span class="k2">)</span><span class="k2">;</span></span><br />You don&#39;t need the palette since you don&#39;t use 8 bpp graphics.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Fri, 30 Jun 2006 18:28:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It says &quot;Null was not defined in this scope&quot;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 18:30:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Try null instead. (lowercase N)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Fri, 30 Jun 2006 18:44:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I got it!  NULL</p><p>wait...it isn&#39;t working!  No errors, just not working!</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="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">4</td><td><span class="k2">{</span></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/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</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, <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">8</td><td>&#160;</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="k3">=</span> NULL<span class="k2">;</span></td></tr><tr><td class="number">10</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><span class="n">640</span>, <span class="n">480</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</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>, <span class="n">640</span>, <span class="n">480</span><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="c">//load bitmap</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</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">17</td><td>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">"Woodland_Tileset.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><span class="c">//load tilemap</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td><span class="k1">int</span> tilemap<span class="k2">[</span><span class="n">5</span><span class="k2">]</span><span class="k2">[</span><span class="n">5</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span></td></tr><tr><td class="number">22</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">23</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">24</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">25</td><td>  <span class="k2">{</span> <span class="n">96</span>,  <span class="n">0</span>,  <span class="n">0</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span>,</td></tr><tr><td class="number">26</td><td>  <span class="k2">{</span> <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span>, <span class="n">96</span> <span class="k2">}</span></td></tr><tr><td class="number">27</td><td><span class="k2">}</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td><span class="k1">int</span> tile_number <span class="k3">=</span> <span class="n">96</span><span class="k2">;</span> <span class="c">//Set to the tile number wanted</span></td></tr><tr><td class="number">30</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> tileset<span class="k2">;</span> <span class="c">//Set to tileset to be loaded</span></td></tr><tr><td class="number">31</td><td><span class="k1">int</span> tile_size <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span> <span class="c">//Set this to how many pixels big each tile is</span></td></tr><tr><td class="number">32</td><td><span class="k1">int</span> set_x <span class="k3">=</span> tile_number % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td><span class="k1">int</span> set_y <span class="k3">=</span> tile_number <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td><span class="c">//Put tileset on screen</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td><span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</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="k1">for</span> <span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">40</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">41</td><td>  <span class="k1">int</span> tilesize <span class="k3">=</span> <span class="n">32</span><span class="k2">;</span></td></tr><tr><td class="number">42</td><td>  <span class="c">//Find out what tileset index to use based on the tilemap at the current (x, y) coordinates</span></td></tr><tr><td class="number">43</td><td>  <span class="k1">int</span> set_x <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> % <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>  <span class="k1">int</span> set_y <span class="k3">=</span> tilemap<span class="k2">[</span>y<span class="k2">]</span><span class="k2">[</span>x<span class="k2">]</span> <span class="k3">/</span> <span class="k2">(</span>tileset-&gt;w <span class="k3">/</span> tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">45</td><td>  <span class="c">//Put it on the buffer</span></td></tr><tr><td class="number">46</td><td>  <span class="c">//  blit(tileset, buffer,</span></td></tr><tr><td class="number">47</td><td>  <span class="c">//Blit from the tileset to the screen</span></td></tr><tr><td class="number">48</td><td>  <span class="c">//  set_x * tile_size, set_y * tile_size,</span></td></tr><tr><td class="number">49</td><td>  <span class="c">//starting at the pixel coordinates of the desired tile</span></td></tr><tr><td class="number">50</td><td>  <span class="c">//  x * tile_size, y * tile_size,</span></td></tr><tr><td class="number">51</td><td>  <span class="c">//put on the screen at the proper place</span></td></tr><tr><td class="number">52</td><td>  <span class="c">//  tile_size, tile_size);</span></td></tr><tr><td class="number">53</td><td>  <span class="c">//and put only 1 tile's worth of pixels</span></td></tr><tr><td class="number">54</td><td>  <span class="c">//To put this all together:</span></td></tr><tr><td class="number">55</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>tileset, buffer, set_x <span class="k3">*</span> tile_size, set_y <span class="k3">*</span> tilesize, x <span class="k3">*</span> tilesize, y <span class="k3">*</span> tilesize, tile_size, tile_size<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">56</td><td><span class="k2">}</span><span class="k2">}</span></td></tr><tr><td class="number">57</td><td>&#160;</td></tr><tr><td class="number">58</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">59</td><td><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td><span class="k2">}</span></td></tr><tr><td class="number">61</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 (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 18:46:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It works, I think. But you are not waiting for the user (you) to press a key or click the mouse. What this piece of code does is to set up a window, draw stuff to it and then quit.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Fri, 30 Jun 2006 18:53:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You only blit the buffer to the screen once when you start the program, but never again after updating the buffer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Fri, 30 Jun 2006 18:56:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The window just flashes and quits.  How do I fix that?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 19:05:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wait for a keypress or something?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (deps)</author>
		<pubDate>Fri, 30 Jun 2006 19:24:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It doesn&#39;t work
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (vixinu)</author>
		<pubDate>Fri, 30 Jun 2006 19:28:04 +0000</pubDate>
	</item>
</rss>
