<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Texture Atlases lesson</title>
		<link>http://rbwhitaker.wikidot.com/forum/t-1165685/texture-atlases-lesson</link>
		<description>Posts in the discussion thread &quot;Texture Atlases lesson&quot; - Breaking down the method of grabbing frames</description>
				<copyright></copyright>
		<lastBuildDate>Wed, 13 May 2026 19:26:54 +0000</lastBuildDate>
		
					<item>
				<guid>http://rbwhitaker.wikidot.com/forum/t-1165685#post-2266368</guid>
				<title>(no title)</title>
				<link>http://rbwhitaker.wikidot.com/forum/t-1165685/texture-atlases-lesson#post-2266368</link>
				<description></description>
				<pubDate>Wed, 08 Apr 2015 03:48:23 +0000</pubDate>
				<wikidot:authorName>rbwhitaker</wikidot:authorName>				<wikidot:authorUserId>88099</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Hi Kronack! I'm glad you got it figured out. That code for wrapping frames has been confusing to quite a few people. I probably ought to replace it with something simpler, or maybe put in a little paragraph or two that explains it better. So even though you got yourself unconfused, I'm glad you posted your question anyway.</p> <p>Thanks for the compliments about the book and the site. While on most days, I don't feel like teaching comes naturally to me (it's a ton of planning and editing and reworking, and usually the first couple of iterations are more harmful than helpful&#8230;) there's probably something to be said about the fact that my dad was a math teacher, my mom was an English/Spanish/German teacher, and even both of my sisters have spent at least part of their professional careers as teachers. There must be something genetic about it, right? :D</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://rbwhitaker.wikidot.com/forum/t-1165685#post-2266123</guid>
				<title>(no title)</title>
				<link>http://rbwhitaker.wikidot.com/forum/t-1165685/texture-atlases-lesson#post-2266123</link>
				<description></description>
				<pubDate>Tue, 07 Apr 2015 21:33:14 +0000</pubDate>
				<wikidot:authorName>Kronack</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Wow, a few minutes after I posted it I had the &quot;Ahah!&quot; moment and it clicked. I was just being dumb.</p> <p>It's okay if current / columns is cast to zero, because it allows us to stay on the correct row, until the amount of current frame / columns reaches 1, which we will then be on the next row.</p> <p>Also for the record, just wanted to say Mr. Whitaker, I've been learning on this site for months and I bought your book. You should be proud of how well you explain things. You are a natural born teacher. You really should do online lectures or something, I would pay for them in a heartbeat.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://rbwhitaker.wikidot.com/forum/t-1165685#post-2266085</guid>
				<title>Texture Atlases lesson</title>
				<link>http://rbwhitaker.wikidot.com/forum/t-1165685/texture-atlases-lesson#post-2266085</link>
				<description></description>
				<pubDate>Tue, 07 Apr 2015 20:35:45 +0000</pubDate>
				<wikidot:authorName>Kronack</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>So im trying to wrap my head around this.</p> <div class="code"> <div class="hl-main"> <pre><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">AnimatedSprite</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-identifier">Texture2D</span><span class="hl-code"> </span><span class="hl-identifier">Texture</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">get</span><span class="hl-code">; </span><span class="hl-identifier">set</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">Rows</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">get</span><span class="hl-code">; </span><span class="hl-identifier">set</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">Columns</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">get</span><span class="hl-code">; </span><span class="hl-identifier">set</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">currentFrame</span><span class="hl-code">; </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">totalFrames</span><span class="hl-code">; </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-identifier">AnimatedSprite</span><span class="hl-brackets">(</span><span class="hl-identifier">Texture2D</span><span class="hl-code"> </span><span class="hl-identifier">texture</span><span class="hl-code">, </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">rows</span><span class="hl-code">, </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">columns</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">Texture</span><span class="hl-code"> = </span><span class="hl-identifier">texture</span><span class="hl-code">; </span><span class="hl-identifier">Rows</span><span class="hl-code"> = </span><span class="hl-identifier">rows</span><span class="hl-code">; </span><span class="hl-identifier">Columns</span><span class="hl-code"> = </span><span class="hl-identifier">columns</span><span class="hl-code">; </span><span class="hl-identifier">currentFrame</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">totalFrames</span><span class="hl-code"> = </span><span class="hl-identifier">Rows</span><span class="hl-code"> * </span><span class="hl-identifier">Columns</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-types">void</span><span class="hl-code"> </span><span class="hl-identifier">Update</span><span class="hl-brackets">()</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">currentFrame</span><span class="hl-code">++; </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">currentFrame</span><span class="hl-code"> == </span><span class="hl-identifier">totalFrames</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-identifier">currentFrame</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-types">void</span><span class="hl-code"> </span><span class="hl-identifier">Draw</span><span class="hl-brackets">(</span><span class="hl-identifier">SpriteBatch</span><span class="hl-code"> </span><span class="hl-identifier">spriteBatch</span><span class="hl-code">, </span><span class="hl-identifier">Vector2</span><span class="hl-code"> </span><span class="hl-identifier">location</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">width</span><span class="hl-code"> = </span><span class="hl-identifier">Texture</span><span class="hl-code">.</span><span class="hl-identifier">Width</span><span class="hl-code"> / </span><span class="hl-identifier">Columns</span><span class="hl-code">; </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">height</span><span class="hl-code"> = </span><span class="hl-identifier">Texture</span><span class="hl-code">.</span><span class="hl-identifier">Height</span><span class="hl-code"> / </span><span class="hl-identifier">Rows</span><span class="hl-code">; </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">row</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-types">int</span><span class="hl-brackets">)((</span><span class="hl-types">float</span><span class="hl-brackets">)</span><span class="hl-identifier">currentFrame</span><span class="hl-code"> / </span><span class="hl-brackets">(</span><span class="hl-types">float</span><span class="hl-brackets">)</span><span class="hl-identifier">Columns</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-types">int</span><span class="hl-code"> </span><span class="hl-identifier">column</span><span class="hl-code"> = </span><span class="hl-identifier">currentFrame</span><span class="hl-code"> % </span><span class="hl-identifier">Columns</span><span class="hl-code">; </span><span class="hl-identifier">Rectangle</span><span class="hl-code"> </span><span class="hl-identifier">sourceRectangle</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">Rectangle</span><span class="hl-brackets">(</span><span class="hl-identifier">width</span><span class="hl-code"> * </span><span class="hl-identifier">column</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-code"> * </span><span class="hl-identifier">row</span><span class="hl-code">, </span><span class="hl-identifier">width</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-identifier">Rectangle</span><span class="hl-code"> </span><span class="hl-identifier">destinationRectangle</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">Rectangle</span><span class="hl-brackets">((</span><span class="hl-types">int</span><span class="hl-brackets">)</span><span class="hl-identifier">location</span><span class="hl-code">.</span><span class="hl-identifier">X</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-types">int</span><span class="hl-brackets">)</span><span class="hl-identifier">location</span><span class="hl-code">.</span><span class="hl-identifier">Y</span><span class="hl-code">, </span><span class="hl-identifier">width</span><span class="hl-code">, </span><span class="hl-identifier">height</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-identifier">spriteBatch</span><span class="hl-code">.</span><span class="hl-identifier">Begin</span><span class="hl-brackets">()</span><span class="hl-code">; </span><span class="hl-identifier">spriteBatch</span><span class="hl-code">.</span><span class="hl-identifier">Draw</span><span class="hl-brackets">(</span><span class="hl-identifier">Texture</span><span class="hl-code">, </span><span class="hl-identifier">destinationRectangle</span><span class="hl-code">, </span><span class="hl-identifier">sourceRectangle</span><span class="hl-code">, </span><span class="hl-identifier">Color</span><span class="hl-code">.</span><span class="hl-identifier">White</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-identifier">spriteBatch</span><span class="hl-code">.</span><span class="hl-identifier">End</span><span class="hl-brackets">()</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-brackets">}</span><span class="hl-code"> }</span></pre></div> </div> <p>Can anyone help me break this down. the part where im stuck is if <tt>currentFrames = 0</tt>, then when you divide by the columns, won't you always get zero? I'm apologize if this is a dumb question. I did try just copypasting the code, and it works, but I am trying to figure out WHY it works.</p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>