<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Silveira Neto &#187; game</title>
	<atom:link href="http://silveiraneto.net/tag/game/feed/" rel="self" type="application/rss+xml" />
	<link>http://silveiraneto.net</link>
	<description>the world is a pixel</description>
	<lastBuildDate>Sun, 08 Jan 2012 05:17:57 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Python Fast XML Parsing</title>
		<link>http://silveiraneto.net/2009/12/25/python-fast-xml-parsing/</link>
		<comments>http://silveiraneto.net/2009/12/25/python-fast-xml-parsing/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 18:04:50 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[expat]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[sax]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[urllib]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=3081</guid>
		<description><![CDATA[Here is a useful tip on Python XML decoding. I was extending xml.sax.ContentHandler class in a example to decode maps for a Pygame application when my connection went down and I noticed that the program stop working raising a exception regarded a call to urlib (a module for retrieve resources by url). I noticed that [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-3082 aligncenter" title="monty python bunny toy" src="http://silveiraneto.net/wp-content/uploads/2009/12/monty_python_bunny_toy.jpg" alt="" width="175" height="178" /></p>
<p>Here is a useful tip on Python XML decoding.</p>
<p>I was extending <a title="Python Documentation on XML SAX" href="http://docs.python.org/library/xml.sax.html">xml.sax.ContentHandler</a> class in <a title="Tiled TMX Map Loader for Pygame" href="http://silveiraneto.net/2009/12/19/tiled-tmx-map-loader-for-pygame/">a example to decode maps for a Pygame application</a> when my connection went down and I noticed that the program stop working raising a exception regarded a call to <a title="Python Documentation on urllib" href="http://docs.python.org/library/urllib.html">urlib</a> (a module for retrieve resources by url). I noticed that the module was getting the remote <a title="Wikipedia on Document Type Definition" href="http://en.wikipedia.org/wiki/Document_Type_Definition">DTD schema</a> to validate the XML.</p>
<div class="wp_syntax">
<div class="code">
<pre class="xml xml" style="font-family:monospace;"><span style="color: #00bbdd;">&lt;!DOCTYPE map SYSTEM &quot;http://mapeditor.org/dtd/1.0/map.dtd&quot;&gt;</span></pre>
</div>
</div>
<p>This is not a requirement for my applications and it&#8217;s a huge performance overhead when works (almost 1 second for each map loaded) and when the applications is running in a environment without Internet it just waits for almost a minute and then fail with the remain decoding. A dirty workaround is open the XML file and get rid of the line containing the DTD reference.</p>
<p>But the correct way to programming XML decoding when we are not concerned on validate a XML schema is just the <a href="http://docs.python.org/library/pyexpat.html">xml.parsers.expat</a>. Instead of using a interface you just have to set some callback functions with the behaviors we want. This is a example from the documentation:</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">xml</span>.<span style="color: black;">parsers</span>.<span style="color: black;">expat</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># 3 handler functions</span>
<span style="color: #ff7700;font-weight:bold;">def</span> start_element<span style="color: black;">&#40;</span>name, attrs<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Start element:'</span>, name, attrs
<span style="color: #ff7700;font-weight:bold;">def</span> end_element<span style="color: black;">&#40;</span>name<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'End element:'</span>, name
<span style="color: #ff7700;font-weight:bold;">def</span> char_data<span style="color: black;">&#40;</span>data<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Character data:'</span>, <span style="color: #dc143c;">repr</span><span style="color: black;">&#40;</span>data<span style="color: black;">&#41;</span>
&nbsp;
p = <span style="color: #dc143c;">xml</span>.<span style="color: black;">parsers</span>.<span style="color: black;">expat</span>.<span style="color: black;">ParserCreate</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
p.<span style="color: black;">StartElementHandler</span> = start_element
p.<span style="color: black;">EndElementHandler</span> = end_element
p.<span style="color: black;">CharacterDataHandler</span> = char_data
&nbsp;
p.<span style="color: black;">Parse</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;&quot;&quot;&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;parent id=&quot;top&quot;&gt;&lt;child1 name=&quot;paul&quot;&gt;Text goes here&lt;/child1&gt;
&lt;child2 name=&quot;fred&quot;&gt;More text&lt;/child2&gt;
&lt;/parent&gt;&quot;&quot;&quot;</span>, <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span></pre>
</div>
</div>
<p>The output:</p>
<pre>
Start element: parent {'id': 'top'}
Start element: child1 {'name': 'paul'}
Character data: 'Text goes here'
End element: child1
Character data: '\n'
Start element: child2 {'name': 'fred'}
Character data: 'More text'
End element: child2
Character data: '\n'
End element: parent
</pre>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/12/25/python-fast-xml-parsing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pygame: Running Orcs</title>
		<link>http://silveiraneto.net/2009/12/11/pygame-running-orcs/</link>
		<comments>http://silveiraneto.net/2009/12/11/pygame-running-orcs/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 10:47:27 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[orc]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=3048</guid>
		<description><![CDATA[Here is a Pygame Sprite animation using the approach presented by Joe Wreschnig and Nicolas Crovatti. It&#8217;s not yet exactly what I need but is very suitable. import pygame, random from pygame.locals import * &#160; class Char&#40;pygame.sprite.Sprite&#41;: x,y = &#40;100,0&#41; def __init__&#40;self, img, frames=1, modes=1, w=32, h=32, fps=3&#41;: pygame.sprite.Sprite.__init__&#40;self&#41; original_width, original_height = img.get_size&#40;&#41; self._w = [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://www.pygame.org/docs/ref/sprite.html">Pygame Sprite</a> animation using the approach presented by <a href="http://www.sacredchao.net/~piman/writing/sprite-tutorial.shtml">Joe Wreschnig</a> and <a href="http://blog.shinylittlething.com/2009/07/21/pygame-and-animated-sprites/">Nicolas Crovatti</a>. It&#8217;s not yet exactly what I need but is very suitable.</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> pygame, <span style="color: #dc143c;">random</span>
<span style="color: #ff7700;font-weight:bold;">from</span> pygame.<span style="color: #008000;">locals</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> Char<span style="color: black;">&#40;</span>pygame.<span style="color: black;">sprite</span>.<span style="color: black;">Sprite</span><span style="color: black;">&#41;</span>:
	x,y = <span style="color: black;">&#40;</span><span style="color: #ff4500;">100</span>,0<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, img, frames=<span style="color: #ff4500;">1</span>, modes=<span style="color: #ff4500;">1</span>, w=<span style="color: #ff4500;">32</span>, h=<span style="color: #ff4500;">32</span>, fps=<span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span>:
		pygame.<span style="color: black;">sprite</span>.<span style="color: black;">Sprite</span>.<span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>
		original_width, original_height = img.<span style="color: black;">get_size</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #008000;">self</span>._w = w
		<span style="color: #008000;">self</span>._h = h
		<span style="color: #008000;">self</span>._framelist = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span><span style="color: #008000;">int</span><span style="color: black;">&#40;</span>original_width/w<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>:
			<span style="color: #008000;">self</span>._framelist.<span style="color: black;">append</span><span style="color: black;">&#40;</span>img.<span style="color: black;">subsurface</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>i<span style="color: #66cc66;">*</span>w,0,w,h<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #008000;">self</span>.<span style="color: black;">image</span> = <span style="color: #008000;">self</span>._framelist<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>
		<span style="color: #008000;">self</span>._start = pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">get_ticks</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #008000;">self</span>._delay = <span style="color: #ff4500;">1000</span> / fps
		<span style="color: #008000;">self</span>._last_update = 0
		<span style="color: #008000;">self</span>._frame = 0
		<span style="color: #008000;">self</span>.<span style="color: black;">update</span><span style="color: black;">&#40;</span>pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">get_ticks</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>, <span style="color: #ff4500;">100</span>, <span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> set_pos<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, x, y<span style="color: black;">&#41;</span>:
		<span style="color: #008000;">self</span>.<span style="color: black;">x</span> = x
		<span style="color: #008000;">self</span>.<span style="color: black;">y</span> = y
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> get_pos<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
		<span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">x</span>,<span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #ff7700;font-weight:bold;">def</span> update<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, t, width, height<span style="color: black;">&#41;</span>:
		<span style="color: #808080; font-style: italic;"># postion</span>
		<span style="color: #008000;">self</span>.<span style="color: black;">y</span>+=<span style="color: #ff4500;">1</span>
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">y</span><span style="color: #66cc66;">&gt;</span>width<span style="color: black;">&#41;</span>:
			<span style="color: #008000;">self</span>.<span style="color: black;">x</span> = <span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0,height-<span style="color: #008000;">self</span>._w<span style="color: black;">&#41;</span>
			<span style="color: #008000;">self</span>.<span style="color: black;">y</span> = -<span style="color: #008000;">self</span>._h
&nbsp;
		<span style="color: #808080; font-style: italic;"># animation</span>
		<span style="color: #ff7700;font-weight:bold;">if</span> t - <span style="color: #008000;">self</span>._last_update <span style="color: #66cc66;">&gt;</span> <span style="color: #008000;">self</span>._delay:
			<span style="color: #008000;">self</span>._frame += <span style="color: #ff4500;">1</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>._frame <span style="color: #66cc66;">&gt;</span>= <span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>._framelist<span style="color: black;">&#41;</span>:
				<span style="color: #008000;">self</span>._frame = 0
			<span style="color: #008000;">self</span>.<span style="color: black;">image</span> = <span style="color: #008000;">self</span>._framelist<span style="color: black;">&#91;</span><span style="color: #008000;">self</span>._frame<span style="color: black;">&#93;</span>
			<span style="color: #008000;">self</span>._last_update = t
&nbsp;
SCREEN_W, SCREEN_H = <span style="color: black;">&#40;</span><span style="color: #ff4500;">320</span>, <span style="color: #ff4500;">320</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	pygame.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	screen = pygame.<span style="color: black;">display</span>.<span style="color: black;">set_mode</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>SCREEN_W, SCREEN_H<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	background = pygame.<span style="color: black;">image</span>.<span style="color: black;">load</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;field.png&quot;</span><span style="color: black;">&#41;</span>
	img_orc = pygame.<span style="color: black;">image</span>.<span style="color: black;">load</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;orc.png&quot;</span><span style="color: black;">&#41;</span>
	orc = Char<span style="color: black;">&#40;</span>img_orc, <span style="color: #ff4500;">4</span>, <span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">32</span>, <span style="color: #ff4500;">48</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">while</span> pygame.<span style="color: black;">event</span>.<span style="color: black;">poll</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: #008000;">type</span> <span style="color: #66cc66;">!</span>= KEYDOWN:
		screen.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>background, <span style="color: black;">&#40;</span>0,0<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		screen.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>orc.<span style="color: black;">image</span>,  orc.<span style="color: black;">get_pos</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		orc.<span style="color: black;">update</span><span style="color: black;">&#40;</span>pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">get_ticks</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>, SCREEN_W, SCREEN_H<span style="color: black;">&#41;</span>
		pygame.<span style="color: black;">display</span>.<span style="color: black;">update</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">delay</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>: main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre>
</div>
</div>
<p>Here is it working:</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/J3oSUa6oiuk&#038;hl=pt_BR&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/J3oSUa6oiuk&#038;hl=pt_BR&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></center></p>
<p><ins datetime="2011-08-24T18:33:48+00:00">Uptade: I put this source and images at the <a href="https://github.com/silveira/openpixels/tree/master/examples/python/running_orcs">OpenPixel project in Github</a></ins></p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/12/11/pygame-running-orcs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pygame, Simple Space Effect</title>
		<link>http://silveiraneto.net/2009/08/12/pygame-simple-space-effect/</link>
		<comments>http://silveiraneto.net/2009/08/12/pygame-simple-space-effect/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 10:14:53 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[game loop]]></category>
		<category><![CDATA[list comprehension]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SDL]]></category>
		<category><![CDATA[Simple Direct Layer]]></category>
		<category><![CDATA[sliding stars]]></category>
		<category><![CDATA[Space]]></category>
		<category><![CDATA[space effect]]></category>
		<category><![CDATA[stars]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2705</guid>
		<description><![CDATA[This is a simple space effect of sliding stars using Pygame. Direct link to video: simple_space_effect_01.ogv We set some constants like the screen size and the number N of star we want. N = 200 SCREEN_W, SCREEN_H = &#40;640, 480&#41; Using list comprehension we create a list of random points in the screen, that will [...]]]></description>
			<content:encoded><![CDATA[<p>This is a simple space effect of sliding stars using <a href="http://pygame.org">Pygame</a>.</p>
<p><center><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/TXGV6guTOno&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/TXGV6guTOno&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></object></center></p>
<p><small>Direct link to video: <a href="http://silveiraneto.net/downloads/simple_space_effect_01.ogv">simple_space_effect_01.ogv</a></small></p>
<p>We set some constants like the screen size and the number N of star we want.</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;">N = <span style="color: #ff4500;">200</span>
SCREEN_W, SCREEN_H = <span style="color: black;">&#40;</span><span style="color: #ff4500;">640</span>, <span style="color: #ff4500;">480</span><span style="color: black;">&#41;</span></pre>
</div>
</div>
<p>Using <a href="http://en.wikipedia.org/wiki/List_comprehension#Python">list comprehension</a> we create a list of random points in the screen, that will be our stars. The size of this list is N.</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;">stars = <span style="color: black;">&#91;</span>
  <span style="color: black;">&#91;</span><span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_W<span style="color: black;">&#41;</span>,<span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_H<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
  <span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>N<span style="color: black;">&#41;</span>
<span style="color: black;">&#93;</span></pre>
</div>
</div>
<p>Each star is represented by one tuple on the stars list. The first star is on stars[0] and is a touple with [x, y] positions.</p>
<p>At each step from the <a href="http://en.wikipedia.org/wiki/Game_programming#The_game_loop">game loop</a> we draw and update the position of each star. A star is draw as a white line of one pixel. See the <a href="http://www.pygame.org/docs/ref/draw.html#pygame.draw.line">pygame.draw.line doc</a>.</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">for</span> star <span style="color: #ff7700;font-weight:bold;">in</span> stars:
  pygame.<span style="color: black;">draw</span>.<span style="color: black;">line</span><span style="color: black;">&#40;</span>background,
    <span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span><span style="color: black;">&#41;</span>, <span style="color: black;">&#40;</span>star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>, star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>, <span style="color: black;">&#40;</span>star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>, star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
  star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> = star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> - <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">if</span> star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> 0:
      star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> = SCREEN_W
      star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> = <span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_H<span style="color: black;">&#41;</span></pre>
</div>
</div>
<p>In this example we update the position of a star by decreasing its horizontal position. When the horizontal position is less than zero, it&#8217;s not displayed on the screen anymore so we replace its horizontal position (star[0]) by the screen width (SCREEN_W) and the vertical position (star[1]) by a new random position. This will be like create a new star and guarantee always a different pattern of sliding stars. </p>
<p>The complete code:</p>
<div class="wp_syntax">
<div class="code">
<pre class="python python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># A simple effect of sliding stars to create a deep space sensation.</span>
<span style="color: #808080; font-style: italic;"># by Silveira Neto &lt;me@silveiraneto.net&gt;</span>
<span style="color: #808080; font-style: italic;"># Free under the terms of GPLv3 license</span>
<span style="color: #808080; font-style: italic;"># See http://silveiraneto.net/2009/08/12/pygame-simple-space-effect/</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>,<span style="color: #dc143c;">sys</span>,<span style="color: #dc143c;">random</span>
<span style="color: #ff7700;font-weight:bold;">import</span> pygame
<span style="color: #ff7700;font-weight:bold;">from</span> pygame.<span style="color: #008000;">locals</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Constants </span>
N = <span style="color: #ff4500;">200</span>
SCREEN_W, SCREEN_H = <span style="color: black;">&#40;</span><span style="color: #ff4500;">640</span>, <span style="color: #ff4500;">480</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
	<span style="color: #808080; font-style: italic;"># basic start</span>
	pygame.<span style="color: black;">init</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	screen = pygame.<span style="color: black;">display</span>.<span style="color: black;">set_mode</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>SCREEN_W,SCREEN_H<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	pygame.<span style="color: black;">display</span>.<span style="color: black;">set_caption</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Simple Space Effect by Silveira Neto'</span><span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;"># create background</span>
	background = pygame.<span style="color: black;">Surface</span><span style="color: black;">&#40;</span>screen.<span style="color: black;">get_size</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
	background = background.<span style="color: black;">convert</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;"># generate N stars</span>
	stars = <span style="color: black;">&#91;</span>
		<span style="color: black;">&#91;</span><span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_W<span style="color: black;">&#41;</span>,<span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_H<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>N<span style="color: black;">&#41;</span>
	<span style="color: black;">&#93;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;"># main loop</span>
	clock = pygame.<span style="color: #dc143c;">time</span>.<span style="color: black;">Clock</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #ff4500;">1</span>:
		clock.<span style="color: black;">tick</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">22</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> event <span style="color: #ff7700;font-weight:bold;">in</span> pygame.<span style="color: black;">event</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
			<span style="color: #ff7700;font-weight:bold;">if</span> event.<span style="color: #008000;">type</span> == QUIT:
				<span style="color: #ff7700;font-weight:bold;">return</span>
			<span style="color: #ff7700;font-weight:bold;">elif</span> event.<span style="color: #008000;">type</span> == KEYDOWN <span style="color: #ff7700;font-weight:bold;">and</span> event.<span style="color: black;">key</span> == K_ESCAPE:
				<span style="color: #ff7700;font-weight:bold;">return</span>
		background.<span style="color: black;">fill</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>0,0,0<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> star <span style="color: #ff7700;font-weight:bold;">in</span> stars:
			pygame.<span style="color: black;">draw</span>.<span style="color: black;">line</span><span style="color: black;">&#40;</span>background,
				<span style="color: black;">&#40;</span><span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span>, <span style="color: #ff4500;">255</span><span style="color: black;">&#41;</span>, <span style="color: black;">&#40;</span>star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>, star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>, <span style="color: black;">&#40;</span>star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span>, star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
			star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> = star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> - <span style="color: #ff4500;">1</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> 0:
				star<span style="color: black;">&#91;</span>0<span style="color: black;">&#93;</span> = SCREEN_W
				star<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> = <span style="color: #dc143c;">random</span>.<span style="color: black;">randint</span><span style="color: black;">&#40;</span>0, SCREEN_H<span style="color: black;">&#41;</span>
		screen.<span style="color: black;">blit</span><span style="color: black;">&#40;</span>background, <span style="color: black;">&#40;</span>0,0<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
		pygame.<span style="color: black;">display</span>.<span style="color: black;">flip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>: main<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/08/12/pygame-simple-space-effect/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>My Free Tileset, version 10</title>
		<link>http://silveiraneto.net/2009/07/31/my-free-tileset-version-10/</link>
		<comments>http://silveiraneto.net/2009/07/31/my-free-tileset-version-10/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 05:05:40 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[Gimp]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[my free tileset]]></category>
		<category><![CDATA[Pixel]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[tileset]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2666</guid>
		<description><![CDATA[My laptop broke and I lose the newest versions of some of my drawing. Fortunately I had backups for most of them. I found out that I had not published the 10th version yet. Here it is. As usual is just little improvements over the last version. This time I added some geography elements. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>My laptop broke and I lose the newest versions of some of my drawing. Fortunately I had backups for most of them. I found out that I had not published the 10th version yet. Here it is.</p>
<p style="text-align: center;"><img class="size-full wp-image-2667 aligncenter" title="pixelart free tileset version 10" src="http://silveiraneto.net/wp-content/uploads/2009/07/free_tileset_version_10.png" alt="pixelart free tileset version 10" width="480" height="1216" /></p>
<p>As usual is just little improvements over <a href="http://silveiraneto.net/2009/04/06/my-free-tileset-version-9/">the last version</a>. This time I added some geography elements. It&#8217;s now possible to create little levels and simple island.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/07/31/my-free-tileset-version-10/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>My Free Charset version 3, one quadrillion of new chars</title>
		<link>http://silveiraneto.net/2009/04/14/my-free-charset-version-3-one-quadrillion-of-new-chars/</link>
		<comments>http://silveiraneto.net/2009/04/14/my-free-charset-version-3-one-quadrillion-of-new-chars/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 04:40:16 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[cartoon]]></category>
		<category><![CDATA[characters]]></category>
		<category><![CDATA[creative commons]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game developement]]></category>
		<category><![CDATA[gameart]]></category>
		<category><![CDATA[Gimp]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[rpg]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2488</guid>
		<description><![CDATA[Tons of new chars. I&#8217;ll not release them individually anymore because now I&#8217;m using just one XCF multilayer Gimp file that permits create  of new char combinations, so I&#8217;ll be releasing this file instead. Mathematically, let&#8217;s assume I have just one layer. This permits create just one character (the nude one), ok? Each new layer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-2487 aligncenter" title="We Are Hiring" src="http://silveiraneto.net/wp-content/uploads/2009/04/we_are_hiring.png" alt="We Are Hiring" width="320" height="640" /></p>
<p>Tons of new chars. I&#8217;ll not release them individually anymore because now I&#8217;m using just one XCF multilayer <a title="GIMP!" href="http://gimp.org">Gimp</a> file that permits create  of new char combinations, so I&#8217;ll be releasing this file instead.</p>
<p style="text-align: center;"><img class="size-full wp-image-2489 aligncenter" title="gimp screenshot" src="http://silveiraneto.net/wp-content/uploads/2009/04/gimp_screenshot.png" alt="gimp screenshot" width="715" height="273" /></p>
<p>Mathematically, let&#8217;s assume I have just one layer. This permits create just one character (the nude one), ok? Each new layer I create, earrings as example, permits me create all chars I have done before with and without those earrings. That&#8217;s 2 times what we had before. With <em>N</em> layers I can create 2<sup>n</sup> different chars (2<sup>n</sup>-1? No, a char made of no layers can be the invisible man:)). We have now about 50 layers so we can create more than one quadrillion different combinations of chars. :o</p>
<p>Here&#8217;s the XCF Gimp file, <a href="http://silveiraneto.net/wp-content/uploads/2009/04/chars.xcf">chars.xcf</a> (430Kb). To open and edit it you need the Gimp editor (The GNU Image Manipulation Program, <a title="downloads" href="http://www.gimp.org/downloads/">download it here</a>).</p>
<p>It&#8217;s also easier for you create your owns characters (try create yourself) or add hats, accessories, cloths, etc. Our My next step is write it to be programmability done with the same idea.</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/04/14/my-free-charset-version-3-one-quadrillion-of-new-chars/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>My Free Tileset, version 9</title>
		<link>http://silveiraneto.net/2009/04/06/my-free-tileset-version-9/</link>
		<comments>http://silveiraneto.net/2009/04/06/my-free-tileset-version-9/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 13:27:26 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[chars]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[laboratory]]></category>
		<category><![CDATA[my free tileset]]></category>
		<category><![CDATA[myself]]></category>
		<category><![CDATA[pixel art]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[tileset]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2464</guid>
		<description><![CDATA[More scenes and tiles for the free and open pixelart tileset. Also new monsters and characters but these will be showed in more details in another post. Scientists discovery that they can&#8217;t keep a Gjelly (one of the new monsters) in cages. And also a little medieval scene. A naive princess got a Nhamnham monster [...]]]></description>
			<content:encoded><![CDATA[<p>More scenes and tiles for the free and open pixelart tileset. Also new monsters and characters but these will be showed in more details in another post.</p>
<p>Scientists discovery that they can&#8217;t keep a <em>Gjelly</em> (one of the new monsters) in cages.</p>
<p style="text-align: center;"><img class="size-full wp-image-2463 aligncenter" title="lab incident" src="http://silveiraneto.net/wp-content/uploads/2009/04/lab_incident.png" alt="lab incident" width="640" height="640" /></p>
<p>And also a little medieval scene. A naive princess got <a title="NhamNham" href="http://silveiraneto.net/2009/03/31/nhamnham/">a Nhamnham monster</a> as her pet.</p>
<p style="text-align: center;"><img class="size-full wp-image-2466 aligncenter" title="cena princessa nhamnham" src="http://silveiraneto.net/wp-content/uploads/2009/04/cena_princessa_nhamnham.png" alt="cena princessa nhamnham" width="640" height="640" /></p>
<p>A new village scene, now with a pier, water, fence and new chars.</p>
<p><img class="size-full wp-image-2467 aligncenter" title="cena pier pixelart" src="http://silveiraneto.net/wp-content/uploads/2009/04/cena_pier.png" alt="cena pier pixelart" width="640" height="640" /></p>
<p>There&#8217;s a plenty of new tiles. Now that we have a good basic tiles becomes easy to add more tiles.</p>
<p style="text-align: center;"><img class="size-full wp-image-2469 aligncenter" title="free_tileset_version_9" src="http://silveiraneto.net/wp-content/uploads/2009/04/free_tileset_version_9.png" alt="free_tileset_version_9" width="480" height="1088" /></p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/04/06/my-free-tileset-version-9/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>My Free Tileset, version 8</title>
		<link>http://silveiraneto.net/2009/03/29/my-free-tileset-version-8/</link>
		<comments>http://silveiraneto.net/2009/03/29/my-free-tileset-version-8/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 23:06:25 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[comics]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[medieval]]></category>
		<category><![CDATA[my free tileset]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[rpg]]></category>
		<category><![CDATA[soldier]]></category>
		<category><![CDATA[straw]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2432</guid>
		<description><![CDATA[One more version of the my free tileset for game development. This little world is beautifully growing, now towards medieval themes. Now is already possible to imagine a typical day in a little rpg village: And here the tileset, eighth version: Changelog: Medieval straw roof house and variations with and without signs, window, chimney and [...]]]></description>
			<content:encoded><![CDATA[<p>One more version of the my free tileset for game development. This little world is beautifully growing, now towards medieval themes. Now is already possible to imagine a typical day in a little rpg village:</p>
<p style="text-align: center;"><img class="size-full wp-image-2434 aligncenter" title="tiny rpg village" src="http://silveiraneto.net/wp-content/uploads/2009/03/village.png" alt="tiny rpg village" width="438" height="369" /></p>
<p>And here the tileset, eighth version:</p>
<p style="text-align: center;"><img class="size-full wp-image-2435 aligncenter" title="free tileset version 8" src="http://silveiraneto.net/wp-content/uploads/2009/03/free_tileset_version_8.png" alt="free tileset version 8" width="480" height="1024" /></p>
<p>Changelog:</p>
<ul>
<li>Medieval straw roof house and variations with and without signs, window, chimney and flowers.</li>
<li>Signs for weapons, potions and armor store and for hotel.</li>
<li>More vegetations.</li>
<li>
<div id="result_box" style="text-align: left;" dir="ltr">A dirt road.</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/03/29/my-free-tileset-version-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>My Free Tileset, version 7</title>
		<link>http://silveiraneto.net/2009/02/02/my-free-tileset-version-7/</link>
		<comments>http://silveiraneto.net/2009/02/02/my-free-tileset-version-7/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:01:50 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[tileset]]></category>
		<category><![CDATA[warrior]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2226</guid>
		<description><![CDATA[Another version of the my free tileset project with a lot of improvements. Examples of usage: A hotel I did for helping me in a prototype. Outdoor scenario. A city. Another outdoor scenario. A warrior (unpublished character here) walking in a forest. Changelog: Reorganization of tile positions. Now they are all in a 32&#215;32 grid. [...]]]></description>
			<content:encoded><![CDATA[<p>Another version of the <a href="http://silveiraneto.net/tag/tileset">my free tileset project</a> with a lot of improvements.</p>
<p style="text-align: center;"><img class="size-full wp-image-2227 aligncenter" title="free tileset version 7" src="http://silveiraneto.net/wp-content/uploads/2009/02/free_tileset_version_7.png" alt="free tileset version 7" width="480" height="736" /></p>
<p><strong>Examples of usage:</strong></p>
<p>A hotel I did for helping me in a prototype.</p>
<p style="text-align: center;"><strong><img class="size-full wp-image-2228 aligncenter" title="Pixelart hotel" src="http://silveiraneto.net/wp-content/uploads/2009/02/hotel.png" alt="Pixelart hotel" width="640" height="640" /></strong></p>
<p>Outdoor scenario. A city.</p>
<p style="text-align: center;"><img class="size-full wp-image-2230 aligncenter" title="pixelart city" src="http://silveiraneto.net/wp-content/uploads/2009/02/city.png" alt="pixelart city" width="320" height="320" /></p>
<p>Another outdoor scenario. A warrior (<span style="text-decoration: line-through;">unpublished character</span> <a title="warrior char" href="http://silveiraneto.net/2009/03/29/warrior-my-free-charset-version-3/">here</a>) walking in a forest.</p>
<p style="text-align: center;"><strong><img class="size-full wp-image-2229 aligncenter" title="forest" src="http://silveiraneto.net/wp-content/uploads/2009/02/forest.png" alt="forest" width="289" height="251" /><br />
</strong></p>
<p><strong>Changelog:</strong></p>
<ul>
<li>Reorganization of tile positions. Now they are all in a 32&#215;32 grid.</li>
<li>
<div id="result_box" style="text-align: left;" dir="ltr">Shelf of drinks, two tables and chairs.</div>
</li>
<li>I placed some characters in this tileset just to help during the creation of prototypes. They should not be really used in maps.</li>
<li>Now is possible to create also outdoors scenarios:
<ul>
<li>Two buildings, streets, pedestrian crossing, sidewalks and a manhole cover.</li>
<li>A tree, cut tree and a bush.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/02/02/my-free-tileset-version-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Game map edition using Tiled</title>
		<link>http://silveiraneto.net/2009/01/11/game-map-edition-using-tiled/</link>
		<comments>http://silveiraneto.net/2009/01/11/game-map-edition-using-tiled/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 20:48:25 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Adam Turk]]></category>
		<category><![CDATA[Bjørn Lindeijer]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[game map]]></category>
		<category><![CDATA[gamedev]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[map editor]]></category>
		<category><![CDATA[Mappy]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[Tiled]]></category>
		<category><![CDATA[tileset]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2085</guid>
		<description><![CDATA[Tiled is general purpose game map editor, with support of several map formats (XML, JSON), multi plataform and runs installed or from browser, supports plugins to read and write others map formats and all free (under GPL license). Installing You can lauch Tiled via Java Web Start or download it&#8217;s lastest version zip file. After [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-2146 aligncenter" title="Tiled logo" src="http://silveiraneto.net/wp-content/uploads/2009/01/logo.png" alt="Tiled logo" width="200" height="104" /></p>
<p><a href="http://mapeditor.org/">Tiled</a> is general purpose game map editor, with support of several map formats (XML, JSON), multi plataform and runs installed or from browser, supports plugins to read and write others map formats and all free (under GPL license).</p>
<p><a href="http://silveiraneto.net/wp-content/uploads/2009/01/map_editor_tiles_tileset_game-deveopment.png"><img class="size-medium wp-image-2114 aligncenter" title="map editor tiles tileset game deveopment" src="http://silveiraneto.net/wp-content/uploads/2009/01/map_editor_tiles_tileset_game-deveopment-500x343.png" alt="map editor tiles tileset game deveopment" width="500" height="343" /></a></p>
<p><strong>Installing</strong></p>
<p>You can <a title="JNPL" href="http://mapeditor.org/tiled.jnlp">lauch Tiled via Java Web Start</a> or <a title="map editor download" href="http://mapeditor.org/downloads.html">download it&#8217;s lastest version</a> zip file. After download it just unzip it and run:</p>
<blockquote><p>java -jar tiled.jar</p></blockquote>
<p>Make sure you have at least Java 1.5 installed and configured.</p>
<p><strong>Creating a empty map</strong></p>
<p>After<strong> </strong>lauching it, open the menu <em>File</em> → <em>New</em> and create a new 10&#215;10 orthogonal map<strong> </strong>with 32&#215;32 tiles.</p>
<p style="text-align: center;"><strong><img class="size-full wp-image-2137 aligncenter" title="Tiled: New Map" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_new_map.png" alt="Tiled: New Map" width="314" height="223" /></strong></p>
<p>Like this one</p>
<p style="text-align: center;"><img class="size-medium wp-image-2140 aligncenter" title="tiled 10x10 map" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_10x10_map-500x366.png" alt="tiled 10x10 map" width="500" height="366" /></p>
<p><strong>Creating a tileset<br />
</strong></p>
<p>Now we need to add a tileset to start drawing a map. Let&#8217;s use this one</p>
<p style="text-align: center;"><img class="size-full wp-image-2141 aligncenter" title="batalhao tileset cc by sa" src="http://silveiraneto.net/wp-content/uploads/2009/01/batalhao_tileset_cc_by_sa.png" alt="batalhao tileset cc by sa" width="512" height="96" /></p>
<p>Save the tileset image above.  Open the menu <em>Tilesets</em> → <em>New Tileset </em>select<em> Reference tileset image </em>and browser to find the tileset image you saved. Keep tile width and height as 32 and tile spacing and margin as 0.</p>
<p style="text-align: center;"><img class="size-full wp-image-2143 aligncenter" title="tiled new tileset" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_new_tileset.png" alt="tiled new tileset" width="353" height="347" /></p>
<p>Notice a new tab on the <em>Tile palette</em> section.</p>
<p style="text-align: center;"><img class="size-full wp-image-2144 aligncenter" title="tiled tileset" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_tileset.png" alt="tiled tileset" width="574" height="178" /></p>
<p><strong>Working with layers<br />
</strong></p>
<p>Select the first grass tile from the tileset and select the  fill tool (<a href="http://silveiraneto.net/wp-content/uploads/2009/01/bucket.png"><img class="alignnone size-full wp-image-2149" title="bucket" src="http://silveiraneto.net/wp-content/uploads/2009/01/bucket.png" alt="bucket" width="22" height="22" /></a> icon) to create a grass field. Use the paint tool (<a href="http://silveiraneto.net/wp-content/uploads/2009/01/pencil.png"><img class="alignnone size-full wp-image-2150" title="pencil" src="http://silveiraneto.net/wp-content/uploads/2009/01/pencil.png" alt="pencil" width="22" height="22" /></a> icon) to add some stones and trees at random locations on grass. On the <em>Layers</em> section double click at <em>Layer Name</em> and put a name like &#8220;field&#8221;.</p>
<p style="text-align: center;"><a href="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_field.png"><img class="size-medium wp-image-2145 aligncenter" title="tiled field" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_field-442x375.png" alt="tiled field" width="442" height="375" /></a></p>
<p>Now let&#8217;s create another layer to put the buildings and streets. We can do that by opening the menu<em> Layer</em> → <em>Add Layer</em> or just clicking the <img class="alignnone size-full wp-image-2147" title="new" src="http://silveiraneto.net/wp-content/uploads/2009/01/gnome-new.png" alt="new" width="16" height="16" /> icon on layer&#8217;s section. Let&#8217;s call it &#8220;city&#8221;.</p>
<p>Now build your city by selecting tiles on the palette and using the paint tool. There&#8217;s tiles for horizontal and vertical street and all kinds of intersection. For the building you can click and drag in the palette to select multiple tiles at once.</p>
<p style="text-align: center;"><a href="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_city.png"><img class="size-medium wp-image-2148 aligncenter" title="tiled city" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiled_city-442x375.png" alt="tiled city" width="442" height="375" /></a></p>
<p><strong>Saving</strong></p>
<p>You can save the map as tmx (XML Tiled map file) , JSON, LUA, wlk, map (<a title="Mappy" href="http://www.tilemap.co.uk/mappy.php">Mappy</a>) or export it as a image. There&#8217;s some options accessible on the <em>Edit</em> → <em>Preferences</em> menu like use base-64  gziped encoding.</p>
<p>Thanks to Adam Turk and  Bjørn Lindeijer for developing that great project.</p>
<p>In a next post I want to show how to integrate this with a Java/JavaFX game.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/01/11/game-map-edition-using-tiled/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>JavaFX, easy use of tiles</title>
		<link>http://silveiraneto.net/2009/01/06/javafx-easy-use-of-tiles/</link>
		<comments>http://silveiraneto.net/2009/01/06/javafx-easy-use-of-tiles/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 14:07:38 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Pixelart]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[tileset]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2098</guid>
		<description><![CDATA[Continuing my little JavaFX framework for game development, right now focused on use those tiles I&#8217;m drawing and posting here in my blog. This framework will be a group of classes for simplify and hide some complexities of common game development. Right now I wrote just a few of them. Use We create a tileset [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my little JavaFX framework for game development, right now focused on use those tiles I&#8217;m drawing and posting here in my blog. This framework will be a group of classes for simplify and hide some complexities of common game development. Right now I wrote just a few of them.</p>
<p><strong>Use</strong></p>
<p>We create a tileset from the files.png file that way</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;">var tileset <span style="color: #339933;">=</span> Tileset <span style="color: #009900;">&#123;</span>
    cols<span style="color: #339933;">:</span> <span style="color: #cc66cc;">15</span> rows<span style="color: #339933;">:</span> <span style="color: #cc66cc;">10</span> height<span style="color: #339933;">:</span> <span style="color: #cc66cc;">32</span> width<span style="color: #339933;">:</span> <span style="color: #cc66cc;">32</span>
    image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span> <span style="color: #009900;">&#123;</span>
        url<span style="color: #339933;">:</span> <span style="color: #0000ff;">&quot;{__DIR__}tiles.png&quot;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p style="text-align: center;"><img class="size-full wp-image-2110 aligncenter" title="tiles" src="http://silveiraneto.net/wp-content/uploads/2009/01/tiles.png" alt="tiles" width="285" height="237" /></p>
<p>Tileset are orthogonal, distributed into a grid of <em>cols</em> columns and <em>rows</em> rows. Each tile have dimensions <em>height</em> x <em>width</em>.</p>
<p>A Tileset is used into a Tilemap</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;">var bg <span style="color: #339933;">=</span> Tilemap <span style="color: #009900;">&#123;</span>
    set<span style="color: #339933;">:</span>tileset cols<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span> rows<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span>
    map<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>That shows</p>
<p style="text-align: center;"><img class="size-full wp-image-2100 aligncenter" title="bg tilemap" src="http://silveiraneto.net/wp-content/uploads/2009/01/bg_tilemap.png" alt="bg tilemap" width="160" height="160" /></p>
<p>Each number in the map represents a tile in the tilemap. Number 0 means the first tile at the upper left corner, numbers keep growing from left to right columns, from top to bottom rows.</p>
<p>Another example</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;">var things <span style="color: #339933;">=</span> Tilemap <span style="color: #009900;">&#123;</span>
    set<span style="color: #339933;">:</span>tileset cols<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span> rows<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span>
    map<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">80</span>,<span style="color: #cc66cc;">55</span>,<span style="color: #cc66cc;">56</span>,<span style="color: #cc66cc;">145</span>,<span style="color: #cc66cc;">145</span>,<span style="color: #cc66cc;">96</span>,<span style="color: #cc66cc;">71</span>,<span style="color: #cc66cc;">72</span>,<span style="color: #cc66cc;">61</span>,<span style="color: #cc66cc;">62</span>,0,0,0,<span style="color: #cc66cc;">77</span>,<span style="color: #cc66cc;">78</span>,<span style="color: #cc66cc;">122</span>,0,0,<span style="color: #cc66cc;">93</span>,<span style="color: #cc66cc;">94</span>,<span style="color: #cc66cc;">138</span>,0,0,0,0<span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p style="text-align: center;"><img class="size-full wp-image-2101 aligncenter" title="things tileset" src="http://silveiraneto.net/wp-content/uploads/2009/01/things_tileset.png" alt="things tileset" width="160" height="160" /></p>
<p>A tilemap can also contains more than one layer</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;">var room <span style="color: #339933;">=</span> Tilemap <span style="color: #009900;">&#123;</span>
    set<span style="color: #339933;">:</span>tileset cols<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span> rows<span style="color: #339933;">:</span><span style="color: #cc66cc;">5</span> layers<span style="color: #339933;">:</span><span style="color: #cc66cc;">2</span>
    map<span style="color: #339933;">:</span> <span style="color: #009900;">&#91;</span>
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">8</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span>,
        <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">80</span>,<span style="color: #cc66cc;">55</span>,<span style="color: #cc66cc;">56</span>,<span style="color: #cc66cc;">145</span>,<span style="color: #cc66cc;">145</span>,<span style="color: #cc66cc;">96</span>,<span style="color: #cc66cc;">71</span>,<span style="color: #cc66cc;">72</span>,<span style="color: #cc66cc;">61</span>,<span style="color: #cc66cc;">62</span>,0,0,0,<span style="color: #cc66cc;">77</span>,<span style="color: #cc66cc;">78</span>,<span style="color: #cc66cc;">122</span>,0,0,<span style="color: #cc66cc;">93</span>,<span style="color: #cc66cc;">94</span>,<span style="color: #cc66cc;">138</span>,0,0,0,0<span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#93;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p style="text-align: center;"><img class="size-full wp-image-2102 aligncenter" title="tileroom" src="http://silveiraneto.net/wp-content/uploads/2009/01/tileroom.png" alt="tileroom" width="160" height="160" /></p>
<p><strong>Implementation</strong></p>
<p>The Tileset class basically stores a Image and a collection of Rectangle2D objects, for be used as viewports in <a href="http://java.sun.com/javafx/1/docs/api/javafx.scene.image/javafx.scene.image.ImageView.html">ImageView</a> classes.</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.image.ImageView</span>;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.scene.image.Image</span>;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javafx.geometry.Rectangle2D</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Tileset <span style="color: #009900;">&#123;</span>
    public<span style="color: #339933;">-</span>init var      image<span style="color: #339933;">:</span> <span style="color: #003399;">Image</span>;
    public<span style="color: #339933;">-</span>init var      width<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">32</span>;
    public<span style="color: #339933;">-</span>init var     height<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">32</span>;
    public<span style="color: #339933;">-</span>init var       rows<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span>;
    public<span style="color: #339933;">-</span>init var       cols<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">15</span>;
    <span style="color: #000000; font-weight: bold;">protected</span>   var       tile<span style="color: #339933;">:</span> <span style="color: #003399;">Rectangle2D</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>;
&nbsp;
    init <span style="color: #009900;">&#123;</span>
        tile <span style="color: #339933;">=</span>  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>row in <span style="color: #009900;">&#91;</span>0..<span style="color: #006633;">rows</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>col in <span style="color: #009900;">&#91;</span>0..<span style="color: #006633;">cols</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #003399;">Rectangle2D</span><span style="color: #009900;">&#123;</span>
                    minX<span style="color: #339933;">:</span> col <span style="color: #339933;">*</span> width, minY<span style="color: #339933;">:</span> row <span style="color: #339933;">*</span> height
                    height<span style="color: #339933;">:</span> width, width<span style="color: #339933;">:</span> height
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p>The Tilemap is a <a href="http://java.sun.com/javafx/1/docs/api/javafx.scene/javafx.scene.CustomNode.html">CustomNode</a> with a Group of ImageViews in a grid. The grid is mounted by iterating over the map as many layers was defined.</p>
<div class="wp_syntax">
<div class="code">
<pre class="java java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Tilemap <span style="color: #000000; font-weight: bold;">extends</span> CustomNode <span style="color: #009900;">&#123;</span>
    public<span style="color: #339933;">-</span>init var   rows<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span>;
    public<span style="color: #339933;">-</span>init var   cols<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">10</span>;
    public<span style="color: #339933;">-</span>init var    set<span style="color: #339933;">:</span> Tileset;
    public<span style="color: #339933;">-</span>init var layers<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>;
    public<span style="color: #339933;">-</span>init var    map<span style="color: #339933;">:</span> <span style="color: #003399;">Integer</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> override function create<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span> Node <span style="color: #009900;">&#123;</span>
        var tilesperlayer <span style="color: #339933;">=</span> rows <span style="color: #339933;">*</span> cols;
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #003399;">Group</span> <span style="color: #009900;">&#123;</span>
            content<span style="color: #339933;">:</span>
                <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>layer in <span style="color: #009900;">&#91;</span>0..<span style="color: #006633;">layers</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>row in <span style="color: #009900;">&#91;</span>0..<span style="color: #006633;">rows</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>col in <span style="color: #009900;">&#91;</span>0..<span style="color: #006633;">cols</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                            ImageView <span style="color: #009900;">&#123;</span>
                                image<span style="color: #339933;">:</span> set.<span style="color: #006633;">image</span> x<span style="color: #339933;">:</span> col <span style="color: #339933;">*</span> set.<span style="color: #006633;">width</span> y<span style="color: #339933;">:</span> row <span style="color: #339933;">*</span> set.<span style="color: #006633;">height</span>
                                viewport<span style="color: #339933;">:</span> set.<span style="color: #006633;">tile</span><span style="color: #009900;">&#91;</span>map<span style="color: #009900;">&#91;</span>tilesperlayer<span style="color: #339933;">*</span>layer <span style="color: #339933;">+</span> row<span style="color: #339933;">*</span>rows<span style="color: #339933;">+</span>col<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span>
                            <span style="color: #009900;">&#125;</span>
                        <span style="color: #009900;">&#125;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>;
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre>
</div>
</div>
<p><strong>Next steps</strong></p>
<ul>
<li>Integrate to a map editor</li>
<li>Support some XML map format</li>
<li>Sprite classes for animation</li>
<li>Integrate those collision detection classes I posted before</li>
</ul>
<p><strong>Download</strong></p>
<ul>
<li>Source code and NetBeans project, <a title="download" href="http://silveiraneto.net/downloads/tileworld.tar.bz2">tileworld.tar.bz2</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/01/06/javafx-easy-use-of-tiles/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

