<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Control Collision</title>
		<link>http://www.allegro.cc/forums/view/615887</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 20 Nov 2015 16:13:23 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi !</p><p>I&#39;m here because I can&#39;t resolve my problem : </p><p>I&#39;m releazing a 2D game with Allegro 5 and I&#39;m not able to make collision with my character. Actually, I made a tile map and a table with the tiles number.</p><p>My problem is that I can&#39;t know the position of my character on the map. So I can&#39;t control collision with it.</p><p>So if you can give me some answers, it will be great !</p><p>Here the zip file.</p><p>Thanks.</p><p>PS: I&#39;m french and sorry if there are mistakes in my language.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pito2901)</author>
		<pubDate>Fri, 20 Nov 2015 01:41:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You always track your player position.</p><p>for example:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">float</span> player_x<span class="k2">;</span>
<span class="k1">float</span> player_y<span class="k2">;</span>

<span class="k1">bool</span> map<span class="k2">[</span><span class="n">32</span><span class="k2">]</span><span class="k2">[</span><span class="n">32</span><span class="k2">]</span><span class="k2">;</span> <span class="c">//1 indicates solid, 0 is empty</span>
<span class="k1">const</span> <span class="k1">int</span> TILE_WIDTH <span class="k3">=</span> <span class="n">16</span><span class="k2">;</span>
<span class="k1">const</span> <span class="k1">int</span> TILE_HEIGHT <span class="k3">=</span> TILE_WIDTH<span class="k2">;</span>

<span class="k1">if</span><span class="k2">(</span>map<span class="k2">[</span>player_x <span class="k3">/</span> TILE_WIDTH<span class="k2">]</span><span class="k2">[</span>player_y <span class="k3">/</span> HEIGHT<span class="k2">)</span> <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span> <span class="c">//convert from position to index in the map by dividing by the tile size</span>
<span class="k2">{</span>
<span class="c">//collision has occurred</span>
<span class="k2">}</span>
</pre></div></div><p>

You can use the player_x and player_y to represent the &quot;center&quot; of your character, then draw the character with:</p><p>my_draw_function(player_bitmap, player_x / PLAYER_WIDTH, player_y / PLAYER_HEIGHT)</p><p>This would center it at your player point. Or for a platformer, you want to center horizontally, but not vertically. You want to be checking your players feet, not his chest. (Whereas the exact center could work for a space ship.) So you&#39;d do:</p><p>my_draw_function(player_bitmap, player_x / PLAYER_WIDTH, player_y - PLAYER_HEIGHT).</p><p>That is, centered horizontally, but not vertically. And you subtract the height to move the sprite higher on the screen so now the bottom of the graphic (typically his / her feet) will be the contact point. </p><p>You can also have more contact points, such as top/bottom/left/right.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Fri, 20 Nov 2015 02:08:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can you translate your answer with my code please ?</p><p>Allegro.h
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;allegro5/allegro.h&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;allegro5/allegro_color.h&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;allegro5/allegro_image.h&gt;</span>
<span class="number">  4</span><span class="p">#include &lt;allegro5/allegro_primitives.h&gt;</span>
<span class="number">  5</span><span class="p">#include &lt;allegro5/allegro_native_dialog.h&gt;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="c">//Couleurs</span>
<span class="number">  8</span><span class="p">#define GRIS   al_map_rgb(178,178,178)</span>
<span class="number">  9</span><span class="p">#define BLEUF  al_map_rgb(12,99,238)</span>
<span class="number"> 10</span><span class="p">#define BLEUC  al_map_rgb(17,193,243)</span>
<span class="number"> 11</span><span class="p">#define VERT   al_map_rgb(51,205,95)</span>
<span class="number"> 12</span><span class="p">#define ORANGE al_map_rgb(255,201,0)</span>
<span class="number"> 13</span><span class="p">#define ROUGE  al_map_rgb(239,71,58)</span>
<span class="number"> 14</span><span class="p">#define VIOLET al_map_rgb(136,106,234)</span>
<span class="number"> 15</span><span class="p">#define NOIR   al_map_rgb(68,68,68)</span>
<span class="number"> 16</span>
<span class="number"> 17</span><span class="p">#define screenx 400</span>
<span class="number"> 18</span><span class="p">#define screeny 400</span>
<span class="number"> 19</span>
<span class="number"> 20</span><span class="p">#define tilex 100</span>
<span class="number"> 21</span><span class="p">#define tiley 100</span>
<span class="number"> 22</span>
<span class="number"> 23</span>
<span class="number"> 24</span><span class="c">/****************************************</span>
<span class="number"> 25</span><span class="c">PERSO</span>
<span class="number"> 26</span><span class="c">****************************************/</span>
<span class="number"> 27</span>
<span class="number"> 28</span><span class="k1">struct</span> perso <span class="k2">{</span>
<span class="number"> 29</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>face<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>, <span class="k3">*</span>gauche<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>, <span class="k3">*</span>droite<span class="k2">[</span><span class="n">3</span><span class="k2">]</span>, <span class="k3">*</span>back<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 30</span>  <span class="k1">int</span> posx, posy<span class="k2">;</span>
<span class="number"> 31</span>  <span class="k1">int</span> x <span class="k3">=</span> screenx <span class="k3">/</span> <span class="n">2</span>,
<span class="number"> 32</span>    y <span class="k3">=</span> screeny <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 33</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 34</span>
<span class="number"> 35</span><span class="c">/**********************************</span>
<span class="number"> 36</span><span class="c">        MAP</span>
<span class="number"> 37</span><span class="c">**********************************/</span>
<span class="number"> 38</span>
<span class="number"> 39</span><span class="k1">struct</span> carte <span class="k2">{</span>
<span class="number"> 40</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_BITMAP"><span class="a">ALLEGRO_BITMAP</span></a> <span class="k3">*</span>image<span class="k2">;</span>
<span class="number"> 41</span>  <span class="k1">int</span> x, y<span class="k2">;</span>
<span class="number"> 42</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 43</span>
<span class="number"> 44</span><span class="k1">void</span> init_carte<span class="k2">(</span>carte <span class="k3">*</span>m, <span class="k1">int</span> largeur, <span class="k1">int</span> hauteur<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 45</span>  m-&gt;x <span class="k3">=</span> <span class="k3">-</span> largeur <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> screenx <span class="k3">/</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 46</span>  m-&gt;y <span class="k3">=</span> <span class="k3">-</span> hauteur <span class="k3">/</span> <span class="n">2</span> <span class="k3">+</span> screeny <span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
<span class="number"> 47</span><span class="k2">}</span>
<span class="number"> 48</span>
<span class="number"> 49</span><span class="k1">void</span> affiche_carte<span class="k2">(</span>carte <span class="k3">*</span>m, perso <span class="k3">*</span>p<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 50</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>m-&gt;image, m-&gt;x, m-&gt;y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 51</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>p-&gt;face<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, p-&gt;x <span class="k3">-</span> <span class="n">23</span>, p-&gt;y <span class="k3">-</span> <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 52</span><span class="k2">}</span>
<span class="number"> 53</span>
<span class="number"> 54</span><span class="c">/* Déplacements */</span>
<span class="number"> 55</span><span class="k1">enum</span> KEYS <span class="k2">{</span> UP, RIGHT, LEFT, DOWN, F, KEY_MAX <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 56</span><span class="k1">bool</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>KEY_MAX<span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span> <span class="k1">false</span> <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 57</span>
<span class="number"> 58</span><span class="c">/* Mouvements */</span>
<span class="number"> 59</span><span class="k1">void</span> haut<span class="k2">(</span>carte <span class="k3">*</span>m, perso <span class="k3">*</span>p, <span class="k1">int</span> compt_back<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 60</span>  m-&gt;y <span class="k3">=</span> m-&gt;y <span class="k3">+</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 61</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>m-&gt;image, m-&gt;x, m-&gt;y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 62</span>
<span class="number"> 63</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>p-&gt;back<span class="k2">[</span>compt_back<span class="k2">]</span>, p-&gt;x <span class="k3">-</span> <span class="n">23</span>, p-&gt;y <span class="k3">-</span> <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 64</span><span class="k2">}</span>
<span class="number"> 65</span><span class="k1">void</span> bas<span class="k2">(</span>carte <span class="k3">*</span>m, perso <span class="k3">*</span>p, <span class="k1">int</span> compt_face<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 66</span>  m-&gt;y <span class="k3">=</span> m-&gt;y <span class="k3">-</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 67</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>m-&gt;image, m-&gt;x, m-&gt;y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 68</span>
<span class="number"> 69</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>p-&gt;face<span class="k2">[</span>compt_face<span class="k2">]</span>, p-&gt;x <span class="k3">-</span> <span class="n">23</span>, p-&gt;y <span class="k3">-</span> <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 70</span><span class="k2">}</span>
<span class="number"> 71</span><span class="k1">void</span> gauche<span class="k2">(</span>carte <span class="k3">*</span>m, perso <span class="k3">*</span>p, <span class="k1">int</span> compt_gauche<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 72</span>  m-&gt;x <span class="k3">=</span> m-&gt;x <span class="k3">+</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 73</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>m-&gt;image, m-&gt;x, m-&gt;y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 74</span>  
<span class="number"> 75</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>p-&gt;gauche<span class="k2">[</span>compt_gauche<span class="k2">]</span>, p-&gt;x <span class="k3">-</span> <span class="n">23</span>, p-&gt;y <span class="k3">-</span> <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 76</span><span class="k2">}</span>
<span class="number"> 77</span><span class="k1">void</span> droite<span class="k2">(</span>carte <span class="k3">*</span>m, perso <span class="k3">*</span>p, <span class="k1">int</span> compt_droite<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 78</span>  m-&gt;x <span class="k3">=</span> m-&gt;x <span class="k3">-</span> <span class="n">5</span><span class="k2">;</span>
<span class="number"> 79</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>m-&gt;image, m-&gt;x, m-&gt;y, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 80</span>
<span class="number"> 81</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>p-&gt;droite<span class="k2">[</span>compt_droite<span class="k2">]</span>, p-&gt;x <span class="k3">-</span> <span class="n">23</span>, p-&gt;y <span class="k3">-</span> <span class="n">23</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 82</span><span class="k2">}</span>
</div></div><p>

main.cpp
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="p">#include &lt;stdio.h&gt;</span>
<span class="number">   2</span><span class="p">#include &lt;stdlib.h&gt;</span>
<span class="number">   3</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">   4</span>
<span class="number">   5</span><span class="c">// fonction contrôle d'erreur</span>
<span class="number">   6</span><span class="k1">void</span> erreur<span class="k2">(</span><span class="k1">const</span> <span class="k1">char</span><span class="k3">*</span>txt<span class="k2">)</span>
<span class="number">   7</span><span class="k2">{</span>
<span class="number">   8</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a><span class="k3">*</span>d<span class="k2">;</span>
<span class="number">   9</span>  d <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_is_system_installed"><span class="a">al_is_system_installed</span></a><span class="k2">(</span><span class="k2">)</span> ? <a href="http://www.allegro.cc/manual/al_get_current_display"><span class="a">al_get_current_display</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k2">:</span> NULL<span class="k2">;</span>
<span class="number">  10</span>  <a href="http://www.allegro.cc/manual/al_show_native_message_box"><span class="a">al_show_native_message_box</span></a><span class="k2">(</span>d, <span class="s">"ERREUR"</span>, txt, NULL, NULL, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  11</span>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_298.html" target="_blank">exit</a><span class="k2">(</span>EXIT_FAILURE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  12</span><span class="k2">}</span>
<span class="number">  13</span><span class="c">/******************************************************************</span>
<span class="number">  14</span><span class="c">******************************************************************/</span>
<span class="number">  15</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  16</span><span class="k2">{</span>
<span class="number">  17</span>  <span class="c">// Pointeurs</span>
<span class="number">  18</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_DISPLAY"><span class="a">ALLEGRO_DISPLAY</span></a>      <span class="k3">*</span>display<span class="k2">;</span>  <span class="c">// fenêtre</span>
<span class="number">  19</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT_QUEUE"><span class="a">ALLEGRO_EVENT_QUEUE</span></a>    <span class="k3">*</span>queue<span class="k2">;</span>    <span class="c">// evenement</span>
<span class="number">  20</span>  <a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a>      <span class="k3">*</span>timer<span class="k2">;</span>    <span class="c">// temps</span>
<span class="number">  21</span>
<span class="number">  22</span>  <span class="c">/****************************************</span>
<span class="number">  23</span><span class="c">        INITIALISATIONS</span>
<span class="number">  24</span><span class="c">  ****************************************/</span>
<span class="number">  25</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init"><span class="a">al_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  26</span>    erreur<span class="k2">(</span><span class="s">"Erreur : Allegro"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  27</span>
<span class="number">  28</span>  <span class="c">// Création d'une fenêtre</span>
<span class="number">  29</span>  display <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_display"><span class="a">al_create_display</span></a><span class="k2">(</span>screenx, screeny<span class="k2">)</span><span class="k2">;</span>
<span class="number">  30</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>display<span class="k2">)</span>
<span class="number">  31</span>    erreur<span class="k2">(</span><span class="s">"Erreur : Display"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  32</span>    <span class="c">// Propriétés de la fenêtre</span>
<span class="number">  33</span>      <span class="c">// Titre</span>
<span class="number">  34</span>      <a href="http://www.allegro.cc/manual/al_set_window_title"><span class="a">al_set_window_title</span></a><span class="k2">(</span>display, <span class="s">"Premier programme !"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  35</span>
<span class="number">  36</span>      <span class="c">// Couleur de fond</span>
<span class="number">  37</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span>ROUGE<span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span>
<span class="number">  39</span>  <span class="c">/****************************************</span>
<span class="number">  40</span><span class="c">          VARIABLES</span>
<span class="number">  41</span><span class="c">  ****************************************/</span>
<span class="number">  42</span>
<span class="number">  43</span>  <span class="c">// Map</span>
<span class="number">  44</span>  carte map<span class="k2">;</span>
<span class="number">  45</span>
<span class="number">  46</span>  <span class="c">// Perso</span>
<span class="number">  47</span>  perso mario<span class="k2">;</span>
<span class="number">  48</span>  
<span class="number">  49</span>  <span class="k1">bool</span> fin <span class="k3">=</span> <span class="k1">false</span>,
<span class="number">  50</span>     dessin <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number">  51</span>  
<span class="number">  52</span>  <span class="c">// Dessin</span>
<span class="number">  53</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_primitives_addon"><span class="a">al_init_primitives_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  54</span>    erreur<span class="k2">(</span><span class="s">"Dessin"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  55</span>
<span class="number">  56</span>  <span class="c">// Clavier</span>
<span class="number">  57</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_keyboard"><span class="a">al_install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  58</span>    erreur<span class="k2">(</span><span class="s">"Clavier"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  59</span>
<span class="number">  60</span>  <span class="c">// Souris</span>
<span class="number">  61</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_install_mouse"><span class="a">al_install_mouse</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  62</span>    erreur<span class="k2">(</span><span class="s">"Souris"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  63</span>  
<span class="number">  64</span>  <span class="c">// Image</span>
<span class="number">  65</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/al_init_image_addon"><span class="a">al_init_image_addon</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number">  66</span>    erreur<span class="k2">(</span><span class="s">"Images"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  67</span>
<span class="number">  68</span>    <span class="c">// Face</span>
<span class="number">  69</span>    <span class="k1">char</span> nom<span class="k2">[</span><span class="n">256</span><span class="k2">]</span><span class="k2">;</span>
<span class="number">  70</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">3</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  71</span>      sprintf_s<span class="k2">(</span>nom, <span class="s">"./images/perso/face%d.png"</span>, i<span class="k2">)</span><span class="k2">;</span>
<span class="number">  72</span>      mario.face<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>nom<span class="k2">)</span><span class="k2">;</span>
<span class="number">  73</span>    <span class="k2">}</span>
<span class="number">  74</span>    <span class="k1">float</span> compt_face <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  75</span>
<span class="number">  76</span>    <span class="c">// Gauche</span>
<span class="number">  77</span>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">3</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  78</span>      sprintf_s<span class="k2">(</span>nom, <span class="s">"./images/perso/gauche%d.png"</span>, i<span class="k2">)</span><span class="k2">;</span>
<span class="number">  79</span>      mario.gauche<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>nom<span class="k2">)</span><span class="k2">;</span>
<span class="number">  80</span>    <span class="k2">}</span>
<span class="number">  81</span>    <span class="k1">float</span> compt_gauche <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  82</span>
<span class="number">  83</span>    <span class="c">// Droite</span>
<span class="number">  84</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">3</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  85</span>      sprintf_s<span class="k2">(</span>nom, <span class="s">"./images/perso/droite%d.png"</span>, i<span class="k2">)</span><span class="k2">;</span>
<span class="number">  86</span>      mario.droite<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>nom<span class="k2">)</span><span class="k2">;</span>
<span class="number">  87</span>    <span class="k2">}</span>
<span class="number">  88</span>    <span class="k1">float</span> compt_droite <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  89</span>
<span class="number">  90</span>    <span class="c">// Back</span>
<span class="number">  91</span>    <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">3</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number">  92</span>      sprintf_s<span class="k2">(</span>nom, <span class="s">"./images/perso/back%d.png"</span>, i<span class="k2">)</span><span class="k2">;</span>
<span class="number">  93</span>      mario.back<span class="k2">[</span>i<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span>nom<span class="k2">)</span><span class="k2">;</span>
<span class="number">  94</span>    <span class="k2">}</span>
<span class="number">  95</span>    <span class="k1">float</span> compt_back <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  96</span>
<span class="number">  97</span>    <span class="c">// Map</span>
<span class="number">  98</span>      <span class="c">// Collision</span>
<span class="number">  99</span>      map.image <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_load_bitmap"><span class="a">al_load_bitmap</span></a><span class="k2">(</span><span class="s">"./images/map/test.png"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 100</span>      <span class="k1">int</span> hauteur <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_height"><span class="a">al_get_bitmap_height</span></a><span class="k2">(</span>map.image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 101</span>      <span class="k1">int</span> largeur <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_get_bitmap_width"><span class="a">al_get_bitmap_width</span></a><span class="k2">(</span>map.image<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 102</span>      init_carte<span class="k2">(</span><span class="k3">&amp;</span>map, largeur, hauteur<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 103</span>
<span class="number"> 104</span>  <span class="c">// Carte</span>
<span class="number"> 105</span>  <span class="k1">int</span> carte<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>
<span class="number"> 106</span>    <span class="k2">{</span> <span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span> <span class="k2">}</span>,
<span class="number"> 107</span>    <span class="k2">{</span> <span class="n">16</span>,<span class="n">1</span>,<span class="n">16</span>,<span class="n">3</span>,<span class="n">16</span> <span class="k2">}</span>,
<span class="number"> 108</span>    <span class="k2">{</span> <span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span> <span class="k2">}</span>,
<span class="number"> 109</span>    <span class="k2">{</span> <span class="n">16</span>,<span class="n">9</span>,<span class="n">16</span>,<span class="n">11</span>,<span class="n">16</span> <span class="k2">}</span>,
<span class="number"> 110</span>    <span class="k2">{</span> <span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span>,<span class="n">16</span> <span class="k2">}</span>
<span class="number"> 111</span>  <span class="k2">}</span><span class="k2">;</span>
<span class="number"> 112</span>  
<span class="number"> 113</span>  <span class="c">// Temps</span>
<span class="number"> 114</span>  <span class="k1">const</span> <span class="k1">int</span> fps <span class="k3">=</span> <span class="n">24</span><span class="k2">;</span>
<span class="number"> 115</span>  timer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span> <span class="k3">/</span> fps<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 116</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>timer<span class="k2">)</span>
<span class="number"> 117</span>    erreur<span class="k2">(</span><span class="s">"timer"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 118</span>
<span class="number"> 119</span>  <span class="c">// Evenements</span>
<span class="number"> 120</span>  queue <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_event_queue"><span class="a">al_create_event_queue</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 121</span>  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>queue<span class="k2">)</span>
<span class="number"> 122</span>    erreur<span class="k2">(</span><span class="s">"queue"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 123</span>
<span class="number"> 124</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue,
<span class="number"> 125</span>      <a href="http://www.allegro.cc/manual/al_get_display_event_source"><span class="a">al_get_display_event_source</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 126</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue,
<span class="number"> 127</span>      <a href="http://www.allegro.cc/manual/al_get_keyboard_event_source"><span class="a">al_get_keyboard_event_source</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 128</span>    <a href="http://www.allegro.cc/manual/al_register_event_source"><span class="a">al_register_event_source</span></a><span class="k2">(</span>queue,
<span class="number"> 129</span>      <a href="http://www.allegro.cc/manual/al_get_timer_event_source"><span class="a">al_get_timer_event_source</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 130</span>        
<span class="number"> 131</span>  <a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>timer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 132</span>
<span class="number"> 133</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>fin<span class="k2">)</span>
<span class="number"> 134</span>  <span class="k2">{</span>
<span class="number"> 135</span>    <span class="c">// Récupérer un évenement</span>
<span class="number"> 136</span>    <a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> even<span class="k2">;</span>
<span class="number"> 137</span>    <a href="http://www.allegro.cc/manual/al_wait_for_event"><span class="a">al_wait_for_event</span></a><span class="k2">(</span>queue, <span class="k3">&amp;</span>even<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 138</span>
<span class="number"> 139</span>    <span class="c">// [Échap]</span>
<span class="number"> 140</span>    <span class="k1">if</span> <span class="k2">(</span>even.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_DISPLAY_CLOSE<span class="k2">)</span>
<span class="number"> 141</span>      fin <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 142</span>        
<span class="number"> 143</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>even.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN<span class="k2">)</span>
<span class="number"> 144</span>    <span class="k2">{</span>
<span class="number"> 145</span>      <span class="k1">switch</span> <span class="k2">(</span>even.keyboard.keycode<span class="k2">)</span>
<span class="number"> 146</span>      <span class="k2">{</span>
<span class="number"> 147</span>        <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 148</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 149</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 150</span>        <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 151</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 152</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 153</span>        <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 154</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 155</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 156</span>        <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 157</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 158</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 159</span>  
<span class="number"> 160</span>        <span class="k1">case</span> ALLEGRO_KEY_ESCAPE:
<span class="number"> 161</span>          fin <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 162</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 163</span>      <span class="k2">}</span>
<span class="number"> 164</span>    <span class="k2">}</span>
<span class="number"> 165</span>
<span class="number"> 166</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>even.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP<span class="k2">)</span>
<span class="number"> 167</span>    <span class="k2">{</span>
<span class="number"> 168</span>      <span class="k1">switch</span> <span class="k2">(</span>even.keyboard.keycode<span class="k2">)</span>
<span class="number"> 169</span>      <span class="k2">{</span>
<span class="number"> 170</span>        <span class="k1">case</span> ALLEGRO_KEY_UP:
<span class="number"> 171</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 172</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 173</span>        <span class="k1">case</span> ALLEGRO_KEY_DOWN:
<span class="number"> 174</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 175</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 176</span>        <span class="k1">case</span> ALLEGRO_KEY_LEFT:
<span class="number"> 177</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 178</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 179</span>        <span class="k1">case</span> ALLEGRO_KEY_RIGHT:
<span class="number"> 180</span>          <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span> <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 181</span>          <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 182</span>        default:
<span class="number"> 183</span>          dessin <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 184</span>      <span class="k2">}</span>
<span class="number"> 185</span>    <span class="k2">}</span>
<span class="number"> 186</span>    
<span class="number"> 187</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>even.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 188</span>    <span class="k2">{</span>
<span class="number"> 189</span>      <a href="http://www.allegro.cc/manual/al_clear_to_color"><span class="a">al_clear_to_color</span></a><span class="k2">(</span>ROUGE<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 190</span>      
<span class="number"> 191</span>      affiche_carte<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 192</span>      
<span class="number"> 193</span>      <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>UP<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 194</span>      <span class="k2">{</span>
<span class="number"> 195</span>        haut<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario, compt_back<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 196</span>        compt_back <span class="k3">=</span> compt_back <span class="k3">+</span> .<span class="n">5</span><span class="k2">;</span>
<span class="number"> 197</span>        <span class="k1">if</span> <span class="k2">(</span>compt_back <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 198</span>          compt_back <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 199</span>      <span class="k2">}</span>
<span class="number"> 200</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>DOWN<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 201</span>      <span class="k2">{</span>
<span class="number"> 202</span>        bas<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario, compt_face<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>        compt_face <span class="k3">=</span> compt_face <span class="k3">+</span> .<span class="n">5</span><span class="k2">;</span>
<span class="number"> 204</span>        <span class="k1">if</span> <span class="k2">(</span>compt_face <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 205</span>          compt_face <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 206</span>      <span class="k2">}</span>
<span class="number"> 207</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>LEFT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 208</span>      <span class="k2">{</span>
<span class="number"> 209</span>        gauche<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario, compt_gauche<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 210</span>        compt_gauche <span class="k3">=</span> compt_gauche <span class="k3">+</span> .<span class="n">5</span><span class="k2">;</span>
<span class="number"> 211</span>        <span class="k1">if</span> <span class="k2">(</span>compt_gauche <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 212</span>          compt_gauche <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 213</span>      <span class="k2">}</span>
<span class="number"> 214</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">[</span>RIGHT<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 215</span>      <span class="k2">{</span>
<span class="number"> 216</span>        droite<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario, compt_droite<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 217</span>        compt_droite <span class="k3">=</span> compt_droite <span class="k3">+</span> .<span class="n">5</span><span class="k2">;</span>
<span class="number"> 218</span>        <span class="k1">if</span> <span class="k2">(</span>compt_droite <span class="k3">&gt;</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 219</span>          compt_droite <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 220</span>      <span class="k2">}</span>
<span class="number"> 221</span>      <span class="k1">else</span>
<span class="number"> 222</span>      <span class="k2">{</span>
<span class="number"> 223</span>        affiche_carte<span class="k2">(</span><span class="k3">&amp;</span>map, <span class="k3">&amp;</span>mario<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 224</span>      <span class="k2">}</span>
<span class="number"> 225</span>    <span class="k2">}</span>
<span class="number"> 226</span>
<span class="number"> 227</span>    <a href="http://www.allegro.cc/manual/al_flip_display"><span class="a">al_flip_display</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 228</span>
<span class="number"> 229</span>
<span class="number"> 230</span>  <span class="k2">}</span>
<span class="number"> 231</span>  
<span class="number"> 232</span>  <a href="http://www.allegro.cc/manual/al_destroy_display"><span class="a">al_destroy_display</span></a><span class="k2">(</span>display<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>
<span class="number"> 234</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 235</span><span class="k2">}</span>
</div></div><p>

Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (pito2901)</author>
		<pubDate>Fri, 20 Nov 2015 16:13:23 +0000</pubDate>
	</item>
</rss>
