<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>+20hours on just Camera</title>
		<link>http://www.allegro.cc/forums/view/614341</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sat, 07 Jun 2014 09:19:58 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>and Fail still</p><p>I even  was using xOff and yOff But its not really as effective as adding a camera </p><p>im willing to pay//also i have a $10bucks amazon card (i know its not much) if someone could just please go in my code and add a camera thats it!I would deeply and sincerely appreciate it.</p><p>i tried over countless methods tyring to implement it. If someone could do it for me and ill learn from it I know its not typical but me about to shoot myself <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=";D" border="0" />.</p><p>Its very complicated adding a camera when your using function and game states.</p><p>InitShip Player</p><p>P.S<br />I think I posted this in wrong forum  before, i know how to add a basic camera its jut not meshing with my code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 02:45:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It may be a bit overkill but my RPG engine has a fully featured camera module, here:<br /><a href="https://github.com/beoran/eruta/blob/master/src/camera.c">https://github.com/beoran/eruta/blob/master/src/camera.c</a>. </p><p>I know it can be frustrating to work a long time without finding an answer, but it&#39;s important not to just copy what others are doing.</p><p>As for a camera system, think of it like this: a camera can be represented by a struct that contains the x, y, width and height values of the camera. For the x<br />camera to actually work, everything that is drawn should be drawn at it&#39;s own &quot;world&quot; x and y coordinates MINUS the x and y coordinates of the camera.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (beoran)</author>
		<pubDate>Fri, 06 Jun 2014 03:05:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>trueveonc, listen, you can&#39;t just say &quot;add a camera&quot;.</p><p>I looked through your code, and it&#39;s too much.</p><p>Tell us how it works, what doesn&#39;t work, take snippets of code that don&#39;t work AND TELL US WHY THEY DON&#39;T WORK and what you expect them to do.</p><p>You can&#39;t just say &quot;add a camera&quot;.</p><p>Too arbitrary, too vague.</p><p><img src="http://www.allegro.cc/forums/smileys/kiss.gif" alt=":-*" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 06 Jun 2014 03:11:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>thank you for your replies.</p><p>For the Camera <br />draw ship()<br />{<br />  cameraPosition[0] = -(WIDTH / 2) + (x + width / 2);<br />  cameraPosition[1] = -(HEIGHT / 2) + (y + height / 2);</p><p>  if(cameraPosition[0] &lt; 0)<br />    cameraPosition[0] = 0;<br />  if(cameraPosition[1] &lt; 0)<br />    cameraPosition[1] = 0;<br />  if(cameraPosition[0] &gt; (mapwidth * mapblockwidth) - WIDTH)<br />    cameraPosition[0] = (mapwidth * mapblockwidth) - HEIGHT;<br />  if(cameraPosition[1] &gt; (mapheight * mapblockheight) - WIDTH)<br />    cameraPosition[1] = (mapheight * mapblockheight) - HEIGHT;</p><p>int fx =(ship.curFrame % ship.animationColumns) * ship.frameWidth;<br />	int fy = ship.animationRow * ship.frameHeight;</p><p>	al_draw_bitmap_region(ship.image, fx, fy, ship.frameWidth,<br />		ship.frameHeight, x-cameraPosition[0],y-cameraPosition[1], 0);</p><p>and its intiated in main as so....</p><p>if(redraw &amp;&amp; al_is_event_queue_empty(event_queue))<br />		{<br />			redraw = false; </p><p>			if(state == TITLE)<br />			{<br />				al_draw_bitmap(title, 0, 0, 0);<br />			}<br />			else if(state == PLAYING)<br />			{<br />			        MapDrawBG(0,0, 0, 0, 3200, 3200);<br />				DrawSprites(sprite);<br />				DrawShip(ship);<br />				DrawBullet(bullets, NUM_BULLETS);<br />				DrawComet(comets, NUM_COMETS);<br />				DrawExplosions(explosions, NUM_EXPLOSIONS);</p><p>ive also tried doing it as a voidUpdateCamera prototype instead of just pasting it in my player struct.<br /> <br />I used transform camera and update camera as such i ran into the problem since my player was in a struct and was not in main....<br />i couldnt insert cameraposition in al_draw_bitmap_region(player, and camera was undefined because im using a struct for my player.<br />I can play with it and get no error but my camera just doesnt want to intialize</p><p>P.S**this maybe easier*<br />can I use xOff and Yoff instead of a camera?<br /> when i run the program i can move through the map its just i cant go to the edges</p><p>for example..... the 1&#39;s if this was a tile map. I can only move through the 0s is there a way to fix to this to avoid the headache of the camera</p><p>111111<br />100001<br />100001<br />111111</p><p>                        xOff += keys[RIGHT] *5;<br />			xOff -= keys[LEFT] *5;<br />			yOff += keys[DOWN] *5;<br />			yOff -= keys[UP] * 5;</p><p>			if(xOff &lt; 0)<br />				xOff = 0;<br />			if(yOff &lt; 0)<br />				yOff = 0;<br />			if(xOff &gt; (mapwidth*mapblockwidth - WIDTH))<br />				xOff = mapwidth*mapblockwidth - WIDTH;<br />			if(yOff &gt; mapheight*mapblockheight - HEIGHT)<br />				yOff = mapheight*mapblockheight - HEIGHT;<br />				MapDrawBG(xOff,yOff, 0, 0,WIDTH, HEIGHT);</p><p>NO ERROR OR WARNINGS BTW.</p><p>sorry for being a newb
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 03:58:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t understand what you mean....you&#39;re saying that if camera.x, or xOff goes below 0, make it 0, and it it goes above the screen width etc, make it the screen width...</p><p>...what exactly are you trying to do? Are you saying that this is your map:</p><p>0000000000000000<br />0000000000000000<br />0000000000000000<br />0000000000000000<br />0000000000000000<br />0000000000000000</p><p>...but you can only move like this (you&#39;re trapped in the 1&#39;s, which are SCREEN_W and SCREEN_H)??:</p><p>1111100000000000<br />1000100000000000<br />1000100000000000<br />1111100000000000<br />0000000000000000<br />0000000000000000
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 06 Jun 2014 04:09:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry for being confusing.</p><p>i can move like this(using mappy btw using 1s and 0s as examples)</p><p>if this was my entire map <br />111111111<br />111111111<br />100000011<br />100000011<br />100000011<br />111111111<br />111111111<br />only can move in 0sits like i get a certain distance from the side and it doesnt let me keep going and its equal in all directions.</p><p>this is using xOff and yOff </p><p>no camera.<br />If i cant use this method ill just delete it from my program if I can wud be great..also to mention my map is big so when im moving through the 0s the screen is scrolling until I to those 1s in which i cant access the rest of map.</p><p>I have a quick question since you went through my code.<br />U saw i was using game states and a player struct where do include the camera in my player struct or as a prototype
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 04:22:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, so let&#39;s assume you&#39;re using xOff and yOff....show me the code where you use xOff and yOff to affect your tiles....(ie, show me how you use xOff and yOff when drawing)...</p><p>[edit]</p><p>You store your camera wherever you want to! Personally I would have:</p><p>Player<br />Camera<br />Map<br />Tiles</p><p>...etc etc, and then have functions like....</p><p>funcDrawPlayer()<br />funcDrawMap(&amp;Camera)</p><p>...etc etc....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Fri, 06 Jun 2014 04:29:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>edit sending the actual code shortly.</p><p>the code above is all the xOff Yoff in my program i just put it in before it draws my map so it sets map boundaries,it also allows me to move through the map</p><p> and yIm just gunna scrap this xOff yOff stuff</p><p>ima do the the way you mentioned</p><p>in objects.h i have</p><p>//struct<br />struct Camera<br />{<br />float *cameraPosition; this doing nothing i thnk</p><p>int width; <br />int height;<br />float x;<br />float y;<br />};</p><p>in main.cpp</p><p>//prototypes<br />initShip(blah)//this is player<br />drawShi()<br />InitCamera(Camera &amp;camera,float *cameraPosition)</p><p>//main<br />int main()<br />float position[2]<br />	float cameraPosition[2]={0,0};</p><p>allegro_transform *camera<br />return 0;</p><p>//below main<br />InitCamera(Camera &amp;camera,float *cameraPosition)<br /> cameraPosition[0] = -(WIDTH / 2) + (x + 30 / 2);<br />  cameraPosition[1] = -(HEIGHT / 2) + (y + 30 / 2);</p><p>  if(cameraPosition[0] &lt; 0)<br />    cameraPosition[0] = 0;<br />  if(cameraPosition[1] &lt; 0)<br />    cameraPosition[1] = 0;<br />  if(cameraPosition[0] &gt; (mapwidth * mapblockwidth) - WIDTH)<br />    cameraPosition[0] = (mapwidth * mapblockwidth) - HEIGHT;<br />  if(cameraPosition[1] &gt; (mapheight * mapblockheight) - WIDTH)<br />    cameraPosition[1] = (mapheight * mapblockheight) - HEIGHT;</p><p>}<br />DrawSpaceship(Ship &amp;ship,Camera &amp;Camera,float *cameraPosition)<br />int fx =(ship.curFrame % ship.animationColumns) * ship.frameWidth;<br />	int fy = ship.animationRow * ship.frameHeight;</p><p>	al_draw_bitmap_region(ship.image, fx, fy, ship.frameWidth,<br />		ship.frameHeight, x-cameraposition[0],y-cameraposition[0], 0);</p><p>//i put in game state playing</p><p>if state playing...<br />InitCamera(cameraPosition,x,y,32,32);</p><p>NO Errors or Warnings
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 05:08:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you use an <span class="source-code"><a href="http://www.allegro.cc/manual/ALLEGRO_TRANSFORM"><span class="a">ALLEGRO_TRANSFORM</span></a></span>, you have the option to no longer need <span class="source-code">offset_x</span>s or <span class="source-code">offset_y</span>s littered throughout your sprite drawing routines.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 06 Jun 2014 05:19:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>**the relevant parts of the code***I included the code same document in both attachments</b>*</p><p>//Structs in .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="k1">struct</span> SpaceShip <span class="k2">{</span>
<span class="number">  2</span>  <span class="k1">int</span> ID<span class="k2">;</span>
<span class="number">  3</span>  <span class="k1">int</span> x<span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">int</span> y<span class="k2">;</span>
<span class="number">  5</span>  <span class="k1">int</span> lives<span class="k2">;</span>
<span class="number">  6</span>  <span class="k1">int</span> speed<span class="k2">;</span>
<span class="number">  7</span>  <span class="k1">int</span> boundx<span class="k2">;</span>
<span class="number">  8</span>  <span class="k1">int</span> boundy<span class="k2">;</span>
<span class="number">  9</span>  <span class="k1">int</span> score<span class="k2">;</span>
<span class="number"> 10</span>
<span class="number"> 11</span>  <span class="k1">int</span> maxFrame<span class="k2">;</span>
<span class="number"> 12</span>  <span class="k1">int</span> curFrame<span class="k2">;</span>
<span class="number"> 13</span>  <span class="k1">int</span> frameCount<span class="k2">;</span>
<span class="number"> 14</span>  <span class="k1">int</span> frameDelay<span class="k2">;</span>
<span class="number"> 15</span>  <span class="k1">int</span> frameWidth<span class="k2">;</span>
<span class="number"> 16</span>  <span class="k1">int</span> frameHeight<span class="k2">;</span>
<span class="number"> 17</span>  <span class="k1">int</span> animationColumns<span class="k2">;</span>
<span class="number"> 18</span>  <span class="k1">int</span> animationDirection<span class="k2">;</span>
<span class="number"> 19</span>
<span class="number"> 20</span>  <span class="k1">int</span> animationRow<span class="k2">;</span>
<span class="number"> 21</span>
<span class="number"> 22</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"> 23</span><span class="k1">struct</span> Camera
<span class="number"> 24</span><span class="k2">{</span>
<span class="number"> 25</span>  
<span class="number"> 26</span>
<span class="number"> 27</span><span class="k1">int</span> width<span class="k2">;</span> 
<span class="number"> 28</span><span class="k1">int</span> height<span class="k2">;</span>
<span class="number"> 29</span><span class="k1">float</span> x<span class="k2">;</span>
<span class="number"> 30</span><span class="k1">float</span> y<span class="k2">;</span>
<span class="number"> 31</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition<span class="k2">;</span>
<span class="number"> 32</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 33</span>
<span class="number"> 34</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 35</span><span class="c">//in MAIN.cpp </span>
</div></div><p>



//prototypes
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> InitShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship, <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="k2">;</span>

<span class="k1">void</span> InitCamera<span class="k2">(</span>Camera <span class="k3">&amp;</span>camera,<span class="k1">float</span> <span class="k3">*</span>cameraPosition, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> DrawShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship,Camera <span class="k3">&amp;</span>camera<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
//int main()</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
Camera camera<span class="k2">;</span>
<span class="k1">float</span> cameraPosition<span class="k2">[</span><span class="n">2</span><span class="k2">]</span><span class="k3">=</span><span class="k2">{</span><span class="n">0</span>,<span class="n">0</span><span class="k2">}</span><span class="k2">;</span>
InitCamera<span class="k2">(</span>camera,cameraPosition,ship<span class="k2">)</span><span class="k2">;</span>

<span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
    
      
        MapDrawBG<span class="k2">(</span><span class="n">0</span>,<span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>,WIDTH, HEIGHT<span class="k2">)</span><span class="k2">;</span>
        DrawShip<span class="k2">(</span>ship,camera<span class="k2">)</span><span class="k2">;</span>

<span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
</pre></div></div><p>
//protype below main</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">void</span> DrawShip<span class="k2">(</span>SpaceShip <span class="k3">&amp;</span>ship,<span class="k1">float</span> <span class="k3">*</span>cameraPosition,Camera <span class="k3">&amp;</span>camera<span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">int</span> fx <span class="k3">=</span><span class="k2">(</span>ship.curFrame % ship.animationColumns<span class="k2">)</span> <span class="k3">*</span> ship.frameWidth<span class="k2">;</span>
<span class="number">  4</span>  <span class="k1">int</span> fy <span class="k3">=</span> ship.animationRow <span class="k3">*</span> ship.frameHeight<span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>  <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>ship.image, fx, fy, ship.frameWidth,
<span class="number">  7</span>    ship.frameHeight, ship.x-cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,ship.y-cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="k1">void</span> InitCamera<span class="k2">(</span>Camera <span class="k3">&amp;</span>camera,<span class="k1">float</span> <span class="k3">*</span>cameraPosition, SpaceShip <span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="number"> 10</span><span class="k2">{</span> 
<span class="number"> 11</span>  <span class="k1">int</span> x<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 12</span>    <span class="k1">int</span> y<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>
<span class="number"> 13</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span> x<span class="k3">+</span><span class="n">30</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 14</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>HEIGHT <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span> y<span class="k3">+</span><span class="n">30</span> <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 17</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 18</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number"> 19</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 20</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span>
<span class="number"> 21</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span>
<span class="number"> 22</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span>
<span class="number"> 23</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span>
<span class="number"> 24</span>
<span class="number"> 25</span><span class="k2">}</span>
<span class="number"> 26</span><span class="k1">void</span> ChangeState<span class="k2">(</span><span class="k1">int</span> <span class="k3">&amp;</span>state, <span class="k1">int</span> newState<span class="k2">)</span>
<span class="number"> 27</span><span class="k2">{</span>
<span class="number"> 28</span>  
<span class="number"> 29</span>  state <span class="k3">=</span> newState<span class="k2">;</span>
<span class="number"> 30</span>
<span class="number"> 31</span>  <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> TITLE<span class="k2">)</span>
<span class="number"> 32</span>  <span class="k2">{</span>
<span class="number"> 33</span>  <span class="k2">}</span>
<span class="number"> 34</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> PLAYING<span class="k2">)</span>
<span class="number"> 35</span>  <span class="k2">{</span>
<span class="number"> 36</span>    InitCamera<span class="k2">(</span>camera<span class="k2">)</span><span class="c">//saying undefined</span>
<span class="number"> 37</span>    InitShip<span class="k2">(</span>ship<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>    
<span class="number"> 39</span>    <a href="http://www.allegro.cc/manual/al_play_sample_instance"><span class="a">al_play_sample_instance</span></a><span class="k2">(</span>songInstance<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 40</span>  <span class="k2">}</span>
<span class="number"> 41</span>  <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>state <span class="k3">=</span><span class="k3">=</span> LOST<span class="k2">)</span>
<span class="number"> 42</span>  <span class="k2">{</span>
<span class="number"> 43</span>  <span class="k2">}</span>
<span class="number"> 44</span><span class="k2">}</span>
</div></div><p>


saying camera is undefined when i Init it </p><p>i feel like im in the right direction with it stuck on 23 hours working with stupid camera. im online if anyone wants to walk me through it <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>idk why it isnt following me
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 06:07:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, when posting, please put your code inside <tt>&lt;code&gt;&lt;/code&gt;</tt> tags.</p><p>Also, you can edit your previous posts to make those changes, by clicking that icon:</p><p><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/8/c/8c2426641d28555a16b6b753f31e22ea.png" alt="608714" width="172" height="80" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 06 Jun 2014 06:16:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>AFTER 25 HOURS I DID IT!!! thank you all...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 06:58:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m curious, what was the &quot;thing&quot; that you didn&#39;t get until the end?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Fri, 06 Jun 2014 08:27:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I was used to setting up  a camera for small programs.</p><p>void UpdateCamera prototype</p><p>then everything else in main without calling the player function</p><p>whereas</p><p>I used functions to get the variables i wanted like the player variables and correlated them with my camera function.<br /><b>*if that makes any sense</b>*<br />Just got done with one c++class and wanted to try programming a RPG been a goal of mine since i was a kid.</p><p>But im a newb atm so i greatly appreciate the collective information from the allegro community.</p><p>thanks again.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Fri, 06 Jun 2014 09:00:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/614341/1001732#target">trieveonc</a> said:</div><div class="quote"><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>draw ship<span class="k2">(</span><span class="k2">)</span>
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>WIDTH <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>x <span class="k3">+</span> width <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k3">-</span><span class="k2">(</span>HEIGHT <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span> <span class="k3">+</span> <span class="k2">(</span>y <span class="k3">+</span> height <span class="k3">/</span> <span class="n">2</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  7</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  8</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  9</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 10</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span>
<div class="highlight"><span class="number"> 11</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span></div><div class="highlight"><span class="number"> 12</span><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span></div><span class="number"> 13</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">int</span> fx <span class="k3">=</span><span class="k2">(</span>ship.curFrame % ship.animationColumns<span class="k2">)</span> <span class="k3">*</span> ship.frameWidth<span class="k2">;</span>
<span class="number"> 16</span><span class="k1">int</span> fy <span class="k3">=</span> ship.animationRow <span class="k3">*</span> ship.frameHeight<span class="k2">;</span>
<span class="number"> 17</span>
<span class="number"> 18</span><a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>ship.image, fx, fy, ship.frameWidth,
<span class="number"> 19</span>ship.frameHeight, x-cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,y-cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
</p></div></div><p>
You&#39;ve swapped WIDTH and HEIGHT there on the two highlighted lines.</p><p>It should be :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span>
<div class="highlight">cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">;</span></div>
<div class="highlight"><span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">)</span></div>
cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span>
</pre></div></div><p>

And, you should share your solution in case it would help someone else. I still don&#39;t know what you did.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Fri, 06 Jun 2014 09:23:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>so i implented the basic camera, but its causing my sprites to follow the player on the screen instead of staying at their world coordinates.</p><p>whats going on with my camera its moving my screenheight and width along my map instead of a small camera just on the player.</p><p>the code
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> CameraUpdate<span class="k2">(</span><span class="k1">float</span> <span class="k3">*</span>cameraPosition, <span class="k1">float</span> x, <span class="k1">float</span> y, <span class="k1">int</span> width, <span class="k1">int</span> height,SpaceShip<span class="k3">&amp;</span>ship<span class="k2">)</span>
<span class="k2">{</span>
  cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> ship.x-WIDTH<span class="k3">/</span><span class="n">2</span><span class="k2">;</span>
  cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> ship.y-HEIGHT<span class="k3">/</span><span class="n">2</span><span class="k2">;</span>

  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&lt;</span> <span class="n">0</span><span class="k2">)</span>
    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">)</span>
    cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapwidth <span class="k3">*</span> mapblockwidth<span class="k2">)</span> <span class="k3">-</span> WIDTH<span class="k2">;</span>
  <span class="k1">if</span><span class="k2">(</span>cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">&gt;</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">)</span>
    cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span>mapheight <span class="k3">*</span> mapblockheight<span class="k2">)</span> <span class="k3">-</span> HEIGHT<span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

playerr
</p><div class="source-code snippet"><div class="inner"><pre>  <a href="http://www.allegro.cc/manual/al_draw_bitmap_region"><span class="a">al_draw_bitmap_region</span></a><span class="k2">(</span>ship.image, fx, fy, ship.frameWidth,
    ship.frameHeight, ship.x-cameraPosition<span class="k2">[</span><span class="n">0</span><span class="k2">]</span>,ship.y-cameraPosition<span class="k2">[</span><span class="n">1</span><span class="k2">]</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

the sprite following the screen at 1,1 instead of staying there</p><p>void DrawSprites(Sprite &amp;sprite)<br />{<br />	int fx = (sprite.curFrame % sprite.animationColumns) * sprite.frameWidth;<br />	int fy = (sprite.curFrame / sprite.animationColumns) * sprite.frameHeight;</p><p>	al_draw_bitmap_region(sprite.image, fx, fy, sprite.frameWidth,<br />		sprite.frameHeight,1,1, 0);<br />}</p><p>basically the problem is the camera is following my screen instead of my player i believe.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (trieveonc)</author>
		<pubDate>Sat, 07 Jun 2014 09:19:58 +0000</pubDate>
	</item>
</rss>
