<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to make a bitmap blink?</title>
		<link>http://www.allegro.cc/forums/view/616516</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 06 Oct 2016 08:12:09 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I am trying to create a &#39;press start&#39; textbox (out of a .png bitmap) so that it blinks when the &#39;x&#39; key is pressed, just before the game inits. I have been trying with this code:</p><p> </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="k1">case</span> ALLEGRO_KEY_X:
<span class="number">  2</span>       <span class="k2">{</span>
<span class="number">  3</span>
<span class="number">  4</span>         <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>start, <span class="n">30</span>, <span class="n">100</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</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">  6</span>         <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>                                 <a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span>start<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</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">  9</span>         <a href="http://www.allegro.cc/manual/al_rest"><span class="a">al_rest</span></a><span class="k2">(</span><span class="n">2</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>         done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 11</span>         <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 12</span>       <span class="k2">}</span>
</div></div><p>

I can create the bitmap in a blank screen, but it&#39;s impossible to destroy it, at least this way. Any help will be appreciated!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ivan Klevnikov)</author>
		<pubDate>Wed, 05 Oct 2016 13:40:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="source-code"><a href="http://www.allegro.cc/manual/al_destroy_bitmap"><span class="a">al_destroy_bitmap</span></a><span class="k2">(</span><span class="k2">)</span></span> frees the image in memory, you don&#39;t want to do that.<br />Try <span class="source-code"><a href="http://www.allegro.cc/manual/al_draw_rectangle"><span class="a">al_draw_rectangle</span></a><span class="k2">(</span><span class="k2">)</span></span>, to paint over the place where you drew the image.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Audric)</author>
		<pubDate>Wed, 05 Oct 2016 18:46:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This looks to be Allegro 5 which I&#39;m not familiar with but from a flow stand point, one idea might be to make a second copy of your bitmap but at a much darker color. I.E. bright red and an almost black red. Then you could loop through the bit maps.  Draw the bright, wait, draw dark. It would give a flicker or blinking affect with out losing the X altogether. Just an idea.</p><p>Ace
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Wed, 05 Oct 2016 20:41:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just use a bool variable to determine the blink state of your button.</p><p><span class="source-code"><span class="k1">bool</span> blink_on <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></span></p><p>In your drawing code, draw based on the state of the blinker.
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span> <span class="k2">(</span>redraw<span class="k2">)</span> <span class="k2">{</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><a href="http://www.allegro.cc/manual/al_map_rgb"><span class="a">al_map_rgb</span></a><span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span><span class="c">/// clear screen</span>
   <span class="k1">if</span> <span class="k2">(</span>blink_on<span class="k2">)</span> <span class="k2">{</span>
      <a href="http://www.allegro.cc/manual/al_draw_bitmap"><span class="a">al_draw_bitmap</span></a><span class="k2">(</span>blinker , <span class="n">0</span> , <span class="n">0</span> , <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</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="k2">}</span>
</pre></div></div><p>

In your logic code, set the state of the blinker and redraw.
</p><div class="source-code snippet"><div class="inner"><pre><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>ev<span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_X<span class="k2">)</span> <span class="k2">{</span>
   blink_on <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
   redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k2">}</span>
<span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>ev.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_KEY_UP <span class="k3">&amp;</span><span class="k3">&amp;</span> ev.keyboard.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_X<span class="k2">)</span> <span class="k2">{</span>
   blink_on <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
   redraw <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Thu, 06 Oct 2016 08:12:09 +0000</pubDate>
	</item>
</rss>
