<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Tilengine - The 2D retro graphics engine forum - Soporte]]></title>
		<link>http://tilengine.org/forum/</link>
		<description><![CDATA[Tilengine - The 2D retro graphics engine forum - http://tilengine.org/forum]]></description>
		<pubDate>Thu, 16 Apr 2026 21:28:13 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[movimientos para naves enemigas y jefes]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=534</link>
			<pubDate>Tue, 07 Apr 2020 09:06:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=534</guid>
			<description><![CDATA[Hola.<br />
<br />
Esta pregunta es para mi la mas importante y la que no he conseguido solucionar en ningun engine por falta de ejemplos,te pongo un video y te comento.<br />
<iframe width="560" height="315" src="//www.youtube-nocookie.com/embed/9NcTNoGjFvE" frameborder="0" allowfullscreen="true"></iframe><br />
<br />
En el minuto 3:39 salen unos aviones rojos por la izquierda y parece que siguen una ruta,en el minuto 3:54 otra fila de aviones que sale por la derecha y sigue una ruta.En el minuto 4:47 sale un avion medio grande con un movimiento como bailando y en el minuto 4:58 sale un barco mediano con un movimiento bastante realista,es como si lo estuviera manejando una persona,en el minuto 5:23 sale un avion negro mediano con un movimiento realista.<br />
<br />
Como se pueden programar esos movimientos,podrias crear un pequeño ejemplo o tal vez indicarme alguna pagina donde tenga alguna explicacion de esto con algo de codigo.<br />
<br />
Te recomiendo que juegues a este juego en el mame,asi podras ver mejor los movimientos y disfrutar de este juego.]]></description>
			<content:encoded><![CDATA[Hola.<br />
<br />
Esta pregunta es para mi la mas importante y la que no he conseguido solucionar en ningun engine por falta de ejemplos,te pongo un video y te comento.<br />
<iframe width="560" height="315" src="//www.youtube-nocookie.com/embed/9NcTNoGjFvE" frameborder="0" allowfullscreen="true"></iframe><br />
<br />
En el minuto 3:39 salen unos aviones rojos por la izquierda y parece que siguen una ruta,en el minuto 3:54 otra fila de aviones que sale por la derecha y sigue una ruta.En el minuto 4:47 sale un avion medio grande con un movimiento como bailando y en el minuto 4:58 sale un barco mediano con un movimiento bastante realista,es como si lo estuviera manejando una persona,en el minuto 5:23 sale un avion negro mediano con un movimiento realista.<br />
<br />
Como se pueden programar esos movimientos,podrias crear un pequeño ejemplo o tal vez indicarme alguna pagina donde tenga alguna explicacion de esto con algo de codigo.<br />
<br />
Te recomiendo que juegues a este juego en el mame,asi podras ver mejor los movimientos y disfrutar de este juego.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[moverse hacia la posicion de un objeto]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=532</link>
			<pubDate>Fri, 03 Apr 2020 13:20:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=532</guid>
			<description><![CDATA[Pues he intentado que el disparo de un enemigo vaya hacia mi personaje,lo que quiero es que al disparar el disparo vaya a la posicion de mi personaje,pero si muevo mi personaje el disparo no me persigue,simplemente seguira la trayectoria del principio y mi personaje podra esquivar el disparo.<br />
<br />
Si miras un juego de naves veras que esto lo usan mucho los tanques que suelen disparar con el cañon hacia la posicion del jugador.<br />
<br />
He probado esto pero no he conseguido nada,he copiado la funcion advance() y getAngle() de la libreria de c++ que utilizo de vez en cuando pero no funciona en python.<br />
Las funciones de advance y getAngle estan en la clase disparo enemigo<br />
<br />
Lo que yo hago para hacer esto es:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>metodo init(){<br />
   angle = getAngle(enemigo)<br />
}<br />
metodo update(){<br />
  advance(velocidad,angle)<br />
}</code></div></div> <br />
<br />
No se si quedo claro,te paso el archivo con el intento:<br />
<a href="https://drive.google.com/file/d/12kFseLueEAtgGmYvllGzV0aEUCQbVj24/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/12kFseLu...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Pues he intentado que el disparo de un enemigo vaya hacia mi personaje,lo que quiero es que al disparar el disparo vaya a la posicion de mi personaje,pero si muevo mi personaje el disparo no me persigue,simplemente seguira la trayectoria del principio y mi personaje podra esquivar el disparo.<br />
<br />
Si miras un juego de naves veras que esto lo usan mucho los tanques que suelen disparar con el cañon hacia la posicion del jugador.<br />
<br />
He probado esto pero no he conseguido nada,he copiado la funcion advance() y getAngle() de la libreria de c++ que utilizo de vez en cuando pero no funciona en python.<br />
Las funciones de advance y getAngle estan en la clase disparo enemigo<br />
<br />
Lo que yo hago para hacer esto es:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>metodo init(){<br />
   angle = getAngle(enemigo)<br />
}<br />
metodo update(){<br />
  advance(velocidad,angle)<br />
}</code></div></div> <br />
<br />
No se si quedo claro,te paso el archivo con el intento:<br />
<a href="https://drive.google.com/file/d/12kFseLueEAtgGmYvllGzV0aEUCQbVj24/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/12kFseLu...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Preguntas sobre funciones de tilengine]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=526</link>
			<pubDate>Thu, 02 Apr 2020 09:40:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=526</guid>
			<description><![CDATA[Me gustaria saber para que sirven y como se usan estas funciones.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Engine.get_num_objects()<br />
Window.wait_redraw()<br />
Window.get_ticks()<br />
Window.delay()</code></div></div><br />
Tambien me gustaria saber si hay alguna forma de maximizar la ventana.]]></description>
			<content:encoded><![CDATA[Me gustaria saber para que sirven y como se usan estas funciones.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Engine.get_num_objects()<br />
Window.wait_redraw()<br />
Window.get_ticks()<br />
Window.delay()</code></div></div><br />
Tambien me gustaria saber si hay alguna forma de maximizar la ventana.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[camara y colision con un mapa]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=525</link>
			<pubDate>Mon, 30 Mar 2020 18:55:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=525</guid>
			<description><![CDATA[Saludos.<br />
<br />
He intentado hacer que la camara siga a mi personaje como en el juego de mario bross,pero como no se como se hace solo he dado movimiento al layer y al moverse el personaje da un salto de posicion,luego he intentado hacer que el personaje detecte una colision con el mapa al tocarlo pero me quede a medias porque la funcion get_tile() me da error con los parametros colocados y la verdad es que tampoco sabria que hacer despues de esto.<br />
<br />
Te paso el archivo con el intento.<br />
<a href="https://drive.google.com/file/d/1gJpvhGsI14iG5d_YlxmSPkF_JGxKrtjy/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1gJpvhGs...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Saludos.<br />
<br />
He intentado hacer que la camara siga a mi personaje como en el juego de mario bross,pero como no se como se hace solo he dado movimiento al layer y al moverse el personaje da un salto de posicion,luego he intentado hacer que el personaje detecte una colision con el mapa al tocarlo pero me quede a medias porque la funcion get_tile() me da error con los parametros colocados y la verdad es que tampoco sabria que hacer despues de esto.<br />
<br />
Te paso el archivo con el intento.<br />
<a href="https://drive.google.com/file/d/1gJpvhGsI14iG5d_YlxmSPkF_JGxKrtjy/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1gJpvhGs...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[como crear distintos efectos]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=523</link>
			<pubDate>Sun, 29 Mar 2020 19:07:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=523</guid>
			<description><![CDATA[He estado trasteando con los ejemplos de color_cycle y column_offset.<br />
<br />
1-sobre color_cycle es algo muy impresionante que solo modifique donde estan las olas sin tocar los demas sprites,tienes que explicarme un poco sobre las funciones que se usan y sobre todo el archivo sqx,aqui tenemos palabras clave como "first,count,dir,delay",estas palabras no se para que sirven y como se usan.<br />
<br />
2-sobre column_offset ya me pierdo,tenemos demasiadas cosas.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>num_columns = int(WIDTH / 8 + 2)<br />
columns = (c_int * num_columns)()<br />
foreground.set_column_offset(columns)</code></div></div><br />
Que es esto.sobre todo para que sirve c_int,lo quite y no funcionaba el ejemplo,luego tenemos esto.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>for n in range(num_columns):<br />
columns[n] = int(sin(radians(x_world * 4 + n * 7)) * ((abs(sin(radians(x_world / 4)) * 12)) + 4))<br />
foreground.set_position(x_world, 0)<br />
background.set_position(x_world / 4, 0)<br />
x_world += 2</code></div></div><br />
Aqui ya me exploto el cerebro,podrias hacer un ejemplo mas sencillo para entender esto.Por cierto,en este ejemplo empieza con poca intensidad y va en aumento la ondulacion,hay alguna manera de que la ondulacion siempre tenga el mismo ritmo.]]></description>
			<content:encoded><![CDATA[He estado trasteando con los ejemplos de color_cycle y column_offset.<br />
<br />
1-sobre color_cycle es algo muy impresionante que solo modifique donde estan las olas sin tocar los demas sprites,tienes que explicarme un poco sobre las funciones que se usan y sobre todo el archivo sqx,aqui tenemos palabras clave como "first,count,dir,delay",estas palabras no se para que sirven y como se usan.<br />
<br />
2-sobre column_offset ya me pierdo,tenemos demasiadas cosas.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>num_columns = int(WIDTH / 8 + 2)<br />
columns = (c_int * num_columns)()<br />
foreground.set_column_offset(columns)</code></div></div><br />
Que es esto.sobre todo para que sirve c_int,lo quite y no funcionaba el ejemplo,luego tenemos esto.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>for n in range(num_columns):<br />
columns[n] = int(sin(radians(x_world * 4 + n * 7)) * ((abs(sin(radians(x_world / 4)) * 12)) + 4))<br />
foreground.set_position(x_world, 0)<br />
background.set_position(x_world / 4, 0)<br />
x_world += 2</code></div></div><br />
Aqui ya me exploto el cerebro,podrias hacer un ejemplo mas sencillo para entender esto.Por cierto,en este ejemplo empieza con poca intensidad y va en aumento la ondulacion,hay alguna manera de que la ondulacion siempre tenga el mismo ritmo.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[como crear un sistema para manejar niveles]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=521</link>
			<pubDate>Sat, 28 Mar 2020 16:45:37 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=521</guid>
			<description><![CDATA[Ya tengo la primera prueba para manejar dos niveles y no ha salido muy bien,tengo dos funciones y en cada una meto los objetos para cada nivel y luego tengo unos condicionales para decirle que nivel mostrar primero.En el bucle del juego le digo que si pulsa el boton A que elimine los objetos y pase al nivel 2,pero se queda un fondo sin eliminar y no pasa al siguiente nivel,no se muy bien como solucionar esto.<br />
<br />
Te paso el archivo.<br />
<a href="https://drive.google.com/file/d/1Z8iYzUeMbNp7wp0lf1wD8BO20u4_MAYC/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1Z8iYzUe...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Ya tengo la primera prueba para manejar dos niveles y no ha salido muy bien,tengo dos funciones y en cada una meto los objetos para cada nivel y luego tengo unos condicionales para decirle que nivel mostrar primero.En el bucle del juego le digo que si pulsa el boton A que elimine los objetos y pase al nivel 2,pero se queda un fondo sin eliminar y no pasa al siguiente nivel,no se muy bien como solucionar esto.<br />
<br />
Te paso el archivo.<br />
<a href="https://drive.google.com/file/d/1Z8iYzUeMbNp7wp0lf1wD8BO20u4_MAYC/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1Z8iYzUe...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[como crear sistema de colisiones]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=520</link>
			<pubDate>Fri, 27 Mar 2020 15:05:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=520</guid>
			<description><![CDATA[Hola otra vez. <img src="http://tilengine.org/forum/images/smilies/biggrin.png" alt="Biggrin" title="Biggrin" class="smilie smilie_56" /> <br />
<br />
Creo otro tema para no mezclar cosas.He creado otro ejemplo para hacer las pruebas de las colisiones y tengo la clase jugador y otras dos clase para los enemigos.Tambien tengo dos archivos ,una para la colision con distancia y otro para colision con rectangulos que de momento no he introducido nada.<br />
<br />
En el ejemplo de distancia el jugador tiene el metodo distancia para usarlo en cualquier metodo y tengo creado dos metodos para la colision con el enemigo 1 y otro para el enemigo 2,el problema que tengo es que cuando estoy usando los dos metodos solo funciona el ultimo,por eso en el metodo colision enemigo 1 tengo un if con dos or y ahi me funciona bien pero solo tengo dos enemigos distintos,si tuviera 20 enemigos de distintas clases tendria que crear 20 or enlazados.<br />
<br />
El archivo sobre colision con rectangulos pues de momento no tiene nada porque tienes que aclararme dos cosas,la primera ya te lo he preguntado en el otro tema,pero te lo pregunto otra vez.¿Como obtengo el ancho y el largo de sprite?.<br />
<br />
La otra cosa que no me queda clara es algo de la pagina genbeta que me pasates,en la teoria sobre colisiones hay una variable llamada "P" que representa un punto 2d(x,y) ,luego si miras el metodo collide de la clase rect,esta tiene self.p.x y self.p.y.Si la variable "P" ya tiene la "X" y la "Y",de donde saca el self.p.y y self.p.x.<br />
<br />
Te dejo el archivo para que lo mires cuando puedas,y corrijas lo que te paresca.<br />
<a href="https://drive.google.com/file/d/1WaHUMVds3EGfT_BaIlO3z-7FphJErWii/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1WaHUMVd...sp=sharing</a>]]></description>
			<content:encoded><![CDATA[Hola otra vez. <img src="http://tilengine.org/forum/images/smilies/biggrin.png" alt="Biggrin" title="Biggrin" class="smilie smilie_56" /> <br />
<br />
Creo otro tema para no mezclar cosas.He creado otro ejemplo para hacer las pruebas de las colisiones y tengo la clase jugador y otras dos clase para los enemigos.Tambien tengo dos archivos ,una para la colision con distancia y otro para colision con rectangulos que de momento no he introducido nada.<br />
<br />
En el ejemplo de distancia el jugador tiene el metodo distancia para usarlo en cualquier metodo y tengo creado dos metodos para la colision con el enemigo 1 y otro para el enemigo 2,el problema que tengo es que cuando estoy usando los dos metodos solo funciona el ultimo,por eso en el metodo colision enemigo 1 tengo un if con dos or y ahi me funciona bien pero solo tengo dos enemigos distintos,si tuviera 20 enemigos de distintas clases tendria que crear 20 or enlazados.<br />
<br />
El archivo sobre colision con rectangulos pues de momento no tiene nada porque tienes que aclararme dos cosas,la primera ya te lo he preguntado en el otro tema,pero te lo pregunto otra vez.¿Como obtengo el ancho y el largo de sprite?.<br />
<br />
La otra cosa que no me queda clara es algo de la pagina genbeta que me pasates,en la teoria sobre colisiones hay una variable llamada "P" que representa un punto 2d(x,y) ,luego si miras el metodo collide de la clase rect,esta tiene self.p.x y self.p.y.Si la variable "P" ya tiene la "X" y la "Y",de donde saca el self.p.y y self.p.x.<br />
<br />
Te dejo el archivo para que lo mires cuando puedas,y corrijas lo que te paresca.<br />
<a href="https://drive.google.com/file/d/1WaHUMVds3EGfT_BaIlO3z-7FphJErWii/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1WaHUMVd...sp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[como se puede crear un disparo]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=503</link>
			<pubDate>Mon, 23 Mar 2020 16:22:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=503</guid>
			<description><![CDATA[Estaba mirando el ejemplo de naves de c para saber como realizar un disparo y la verdad es que no he entendido nada del codigo.Lo he hecho a mi manera pero no he conseguido nada,simplemente aparece el disparo al pulsar un boton pero este no se mueve y solo se crea el numero que hay puesto en el create.<br />
<br />
Te voy a poner el codigo para que me digas que estoy haciendo mal.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>import tilengine<br />
import random<br />
#inicio-------------------------------------------------------------<br />
engine = tilengine.Engine.create(640,480,2,64,4)<br />
ventana = tilengine.Window.create()<br />
ventana.disable_crt_effect()<br />
engine.set_background_color(tilengine.Color(120,215,242))<br />
#jugador------------------------------------------------------------<br />
class Jugador(object):<br />
   def __init__(self):<br />
       self.x = 320<br />
       self.y = 420<br />
       self.velocidad = 5<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(2,2)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       self.disparo_jugador = DisparoJugador(self.x,self.y)<br />
       <br />
   def update(self):<br />
       self.mover()<br />
       self.colision()<br />
       self.disparar()<br />
   <br />
   def mover(self):<br />
       if(ventana.get_input(tilengine.Input.LEFT) and self.x &gt; 0):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           engine.sprites[self.sprite_id].set_flags(tilengine.Flags.FLIPX)<br />
           self.x -= self.velocidad<br />
       elif(ventana.get_input(tilengine.Input.RIGHT) and self.x &lt; 608):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           engine.sprites[self.sprite_id].set_flags(0)<br />
           self.x += self.velocidad<br />
       if(ventana.get_input(tilengine.Input.UP) and self.y &gt; 16):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           self.y -= self.velocidad<br />
       elif(ventana.get_input(tilengine.Input.DOWN) and self.y &lt; 430):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           self.y += self.velocidad<br />
   <br />
   def colision(self):<br />
       if(engine.sprites[enemigo.sprite_id].check_collision()):<br />
           engine.sprites[self.sprite_id].set_scaling(1,1)<br />
       else:<br />
           engine.sprites[self.sprite_id].set_scaling(2,2)<br />
           <br />
   def disparar(self):<br />
       if(ventana.get_input(tilengine.Input.A)):<br />
           self.disparo_jugador = DisparoJugador(self.x,self.y)<br />
           self.disparo_jugador.update()<br />
   <br />
#enemigo------------------------------------------------------------<br />
class Enemigo(object):<br />
   def __init__(self):<br />
       random.seed()<br />
       self.x = random.randint(32,608)<br />
       self.y = random.randrange(32,129)<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero2")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(2,2)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       <br />
   def update(self):<br />
       pass<br />
<br />
#disparo jugador-----------------------------------------------------<br />
class DisparoJugador(object):<br />
   def __init__(self,x,y):<br />
       self.x = x<br />
       self.y = y<br />
       self.velocidad = 2<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero2")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_picture(25)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(1,1)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       <br />
   def update(self):<br />
       self.mover()<br />
       self.eliminar()<br />
   <br />
   def mover(self):<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       self.y -= self.velocidad<br />
       <br />
   def eliminar(self):<br />
       if(self.y &lt; 32):<br />
           engine.sprites[self.sprite_id].disable()<br />
<br />
#instanciar objetos--------------------------------------------------<br />
jugador = Jugador()<br />
enemigo = Enemigo()<br />
<br />
#bucle---------------------------------------------------------------<br />
while(ventana.process()):<br />
   jugador.update()<br />
   <br />
   ventana.draw_frame()</code></div></div><br />
Por cierto,hay alguna manera de colocar los frames por segundo que yo quiera,parece que tilengine va a 60 fps y yo suelo usar en otros engine 30 fps para ganar rendimiento.]]></description>
			<content:encoded><![CDATA[Estaba mirando el ejemplo de naves de c para saber como realizar un disparo y la verdad es que no he entendido nada del codigo.Lo he hecho a mi manera pero no he conseguido nada,simplemente aparece el disparo al pulsar un boton pero este no se mueve y solo se crea el numero que hay puesto en el create.<br />
<br />
Te voy a poner el codigo para que me digas que estoy haciendo mal.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>import tilengine<br />
import random<br />
#inicio-------------------------------------------------------------<br />
engine = tilengine.Engine.create(640,480,2,64,4)<br />
ventana = tilengine.Window.create()<br />
ventana.disable_crt_effect()<br />
engine.set_background_color(tilengine.Color(120,215,242))<br />
#jugador------------------------------------------------------------<br />
class Jugador(object):<br />
   def __init__(self):<br />
       self.x = 320<br />
       self.y = 420<br />
       self.velocidad = 5<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(2,2)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       self.disparo_jugador = DisparoJugador(self.x,self.y)<br />
       <br />
   def update(self):<br />
       self.mover()<br />
       self.colision()<br />
       self.disparar()<br />
   <br />
   def mover(self):<br />
       if(ventana.get_input(tilengine.Input.LEFT) and self.x &gt; 0):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           engine.sprites[self.sprite_id].set_flags(tilengine.Flags.FLIPX)<br />
           self.x -= self.velocidad<br />
       elif(ventana.get_input(tilengine.Input.RIGHT) and self.x &lt; 608):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           engine.sprites[self.sprite_id].set_flags(0)<br />
           self.x += self.velocidad<br />
       if(ventana.get_input(tilengine.Input.UP) and self.y &gt; 16):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           self.y -= self.velocidad<br />
       elif(ventana.get_input(tilengine.Input.DOWN) and self.y &lt; 430):<br />
           engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
           self.y += self.velocidad<br />
   <br />
   def colision(self):<br />
       if(engine.sprites[enemigo.sprite_id].check_collision()):<br />
           engine.sprites[self.sprite_id].set_scaling(1,1)<br />
       else:<br />
           engine.sprites[self.sprite_id].set_scaling(2,2)<br />
           <br />
   def disparar(self):<br />
       if(ventana.get_input(tilengine.Input.A)):<br />
           self.disparo_jugador = DisparoJugador(self.x,self.y)<br />
           self.disparo_jugador.update()<br />
   <br />
#enemigo------------------------------------------------------------<br />
class Enemigo(object):<br />
   def __init__(self):<br />
       random.seed()<br />
       self.x = random.randint(32,608)<br />
       self.y = random.randrange(32,129)<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero2")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(2,2)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       <br />
   def update(self):<br />
       pass<br />
<br />
#disparo jugador-----------------------------------------------------<br />
class DisparoJugador(object):<br />
   def __init__(self,x,y):<br />
       self.x = x<br />
       self.y = y<br />
       self.velocidad = 2<br />
       #obtener el sprite para poder crear muchos sprites<br />
       self.sprite_id = engine.get_available_sprite()<br />
       self.imagen = tilengine.Spriteset.fromfile("hero2")<br />
       engine.sprites[self.sprite_id].setup(self.imagen)<br />
       engine.sprites[self.sprite_id].set_picture(25)<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       engine.sprites[self.sprite_id].set_scaling(1,1)<br />
       engine.sprites[self.sprite_id].enable_collision(True)<br />
       <br />
   def update(self):<br />
       self.mover()<br />
       self.eliminar()<br />
   <br />
   def mover(self):<br />
       engine.sprites[self.sprite_id].set_position(self.x,self.y)<br />
       self.y -= self.velocidad<br />
       <br />
   def eliminar(self):<br />
       if(self.y &lt; 32):<br />
           engine.sprites[self.sprite_id].disable()<br />
<br />
#instanciar objetos--------------------------------------------------<br />
jugador = Jugador()<br />
enemigo = Enemigo()<br />
<br />
#bucle---------------------------------------------------------------<br />
while(ventana.process()):<br />
   jugador.update()<br />
   <br />
   ventana.draw_frame()</code></div></div><br />
Por cierto,hay alguna manera de colocar los frames por segundo que yo quiera,parece que tilengine va a 60 fps y yo suelo usar en otros engine 30 fps para ganar rendimiento.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[nuevas caracteristicas de la version 2.4]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=502</link>
			<pubDate>Sun, 22 Mar 2020 17:18:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=502</guid>
			<description><![CDATA[Estuve leyendo las nuevas caracteristicas de la version 2.4 y me parecieron interesantes,pero al entrar en facebook no me deja ver nada si no estoy registrado,y el ejemplo del bosque de c pues no me quedo muy claro y como tengo que pasarlo a python pues ya me pierdo.<br />
<br />
Podrias explicarme o hacer un pequeño ejemplo con esas nuevas carasteristicas para aplicarlo en python.]]></description>
			<content:encoded><![CDATA[Estuve leyendo las nuevas caracteristicas de la version 2.4 y me parecieron interesantes,pero al entrar en facebook no me deja ver nada si no estoy registrado,y el ejemplo del bosque de c pues no me quedo muy claro y como tengo que pasarlo a python pues ya me pierdo.<br />
<br />
Podrias explicarme o hacer un pequeño ejemplo con esas nuevas carasteristicas para aplicarlo en python.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[como crear mas de un objeto]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=501</link>
			<pubDate>Sat, 21 Mar 2020 19:02:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=501</guid>
			<description><![CDATA[Hola Megamarc,espero que tu y tu familiia esteis bien con lo que esta pasando.<br />
<br />
Estaba otra vez con otro intento de hacer algo con tilengine haber si por fin consigo algo y al crear una clase la llame 3 veces para que se creen tres objetos pero solo sale uno y no entiendo que es lo que pasa,tal vez habra que usar listas y guardar los objetos hay pero no se como.<br />
<br />
Te agradeceria que me pusieras un pequeño ejemplo de como crear tres objetos con la misma clase,te pongo un ejemplo.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class jugador(object):<br />
  def __init__(self,x,y):<br />
      self.x = x<br />
      self.y = y<br />
      self.graficos = Spriteset.fromfile("hero")<br />
      motor.sprites[0].setup(self.graficos)<br />
      motor.sprites[0].set_position(self.x,self.y)<br />
      self.animacionPack = SequencePack.fromfile("hero.sqx")<br />
      self.animacionParado = self.animacionPack.sequences["seq_idle"]<br />
      motor.animations[0].set_sprite_animation(0,self.animacionParado,0)<br />
  def update(self):<br />
      if ventana.get_input(Input.RIGHT):<br />
          motor.sprites[0].set_position(self.x,self.y)<br />
          self.x += 2<br />
          motor.sprites[0].set_flags(0)<br />
      elif ventana.get_input(Input.LEFT):<br />
          motor.sprites[0].set_position(self.x,self.y)<br />
          self.x -= 2<br />
          motor.sprites[0].set_flags(Flags.FLIPX)<br />
      if ventana.get_input(Input.BUTTON1):<br />
          motor.sprites[0].disable()<br />
<br />
jugador(60,160)<br />
jugador(160,260)<br />
jugador(260,360)</code></div></div>]]></description>
			<content:encoded><![CDATA[Hola Megamarc,espero que tu y tu familiia esteis bien con lo que esta pasando.<br />
<br />
Estaba otra vez con otro intento de hacer algo con tilengine haber si por fin consigo algo y al crear una clase la llame 3 veces para que se creen tres objetos pero solo sale uno y no entiendo que es lo que pasa,tal vez habra que usar listas y guardar los objetos hay pero no se como.<br />
<br />
Te agradeceria que me pusieras un pequeño ejemplo de como crear tres objetos con la misma clase,te pongo un ejemplo.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class jugador(object):<br />
  def __init__(self,x,y):<br />
      self.x = x<br />
      self.y = y<br />
      self.graficos = Spriteset.fromfile("hero")<br />
      motor.sprites[0].setup(self.graficos)<br />
      motor.sprites[0].set_position(self.x,self.y)<br />
      self.animacionPack = SequencePack.fromfile("hero.sqx")<br />
      self.animacionParado = self.animacionPack.sequences["seq_idle"]<br />
      motor.animations[0].set_sprite_animation(0,self.animacionParado,0)<br />
  def update(self):<br />
      if ventana.get_input(Input.RIGHT):<br />
          motor.sprites[0].set_position(self.x,self.y)<br />
          self.x += 2<br />
          motor.sprites[0].set_flags(0)<br />
      elif ventana.get_input(Input.LEFT):<br />
          motor.sprites[0].set_position(self.x,self.y)<br />
          self.x -= 2<br />
          motor.sprites[0].set_flags(Flags.FLIPX)<br />
      if ventana.get_input(Input.BUTTON1):<br />
          motor.sprites[0].disable()<br />
<br />
jugador(60,160)<br />
jugador(160,260)<br />
jugador(260,360)</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CsTilengine: problema con usar tilemap propios]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=331</link>
			<pubDate>Wed, 19 Jun 2019 13:27:44 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=354">davidgd72k</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=331</guid>
			<description><![CDATA[Mi problema es que cuando intento usar un tilemap hecho por mí (que su extensión es .tmx), al principio lo compila sin problemas, todo bien ahí. Ahora cuando lo ejecuto me sale que hay un error con el tilemap (Invalid Tileset reference).<br />
<br />
Al parecer el error es del recurso en sí (el tilemap hecho por mí), ya que si uso un .tmx (ademas de otros archivos relacionados con este como su .png y su .tsx) de la carpeta samples de Tilengine (en concreto de la versión de C) no da error y lo muestra correctamente en pantalla.<br />
<br />
El .tmx esta hecho con la ultima versión que tengo del Tiled (según el programa la 0.18.0) y el .png es de 8 bits de color creado y convertido con el Paint.net, luego reajustada su paleta de colores con GraphicsGale (manteniendo en teoría su profundidad de color).<br />
<br />
Por cierto el Tiled que tengo no me genera el .tsx, ¿hay alguna forma de que lo genere o lo puedo hacer yo mismo sin problema?<br />
<br />
De antemano, gracias.  <img src="http://tilengine.org/forum/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_60" /> <br />
<br />
P.D.: el tilemap es del ejemplo de Sonic del Tilengine para C.]]></description>
			<content:encoded><![CDATA[Mi problema es que cuando intento usar un tilemap hecho por mí (que su extensión es .tmx), al principio lo compila sin problemas, todo bien ahí. Ahora cuando lo ejecuto me sale que hay un error con el tilemap (Invalid Tileset reference).<br />
<br />
Al parecer el error es del recurso en sí (el tilemap hecho por mí), ya que si uso un .tmx (ademas de otros archivos relacionados con este como su .png y su .tsx) de la carpeta samples de Tilengine (en concreto de la versión de C) no da error y lo muestra correctamente en pantalla.<br />
<br />
El .tmx esta hecho con la ultima versión que tengo del Tiled (según el programa la 0.18.0) y el .png es de 8 bits de color creado y convertido con el Paint.net, luego reajustada su paleta de colores con GraphicsGale (manteniendo en teoría su profundidad de color).<br />
<br />
Por cierto el Tiled que tengo no me genera el .tsx, ¿hay alguna forma de que lo genere o lo puedo hacer yo mismo sin problema?<br />
<br />
De antemano, gracias.  <img src="http://tilengine.org/forum/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_60" /> <br />
<br />
P.D.: el tilemap es del ejemplo de Sonic del Tilengine para C.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[rotacion y color]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=252</link>
			<pubDate>Wed, 27 Feb 2019 16:41:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=252</guid>
			<description><![CDATA[Quiero rotar el sprite y cambiar su color,pero no encuentro ninguna funcion,dime que funcion se encarga de esto en la version de python.]]></description>
			<content:encoded><![CDATA[Quiero rotar el sprite y cambiar su color,pero no encuentro ninguna funcion,dime que funcion se encarga de esto en la version de python.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[colision y destrucion de objetos]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=225</link>
			<pubDate>Tue, 06 Nov 2018 15:57:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=225</guid>
			<description><![CDATA[Hola,no he encontrado ningun ejemplo de pytilengine que me explique como hacer las colisiones con otros objetos y tampoco hay nada para saber como destruir objetos.<br />
<br />
Podrias ponerme un ejemplo sencillote donde un objeto colisione con otro y se destruya.]]></description>
			<content:encoded><![CDATA[Hola,no he encontrado ningun ejemplo de pytilengine que me explique como hacer las colisiones con otros objetos y tampoco hay nada para saber como destruir objetos.<br />
<br />
Podrias ponerme un ejemplo sencillote donde un objeto colisione con otro y se destruya.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[preguntas sobre tutorial python]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=224</link>
			<pubDate>Sat, 03 Nov 2018 10:36:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=224</guid>
			<description><![CDATA[Hola megamarc,ya termine el turorial y ha estado muy bien,menos la parte final donde no me he enterado de nada,ahora te voy hacer una cuantas preguntas.<br />
<br />
Voy a empezar por dos preguntas.<br />
<br />
La primera es que no he visto que utilizaras las funciones...<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>TLN_Deinit ();<br />
<br />
TLN_DrawFrame (frame);</code></div></div>Tampoco he visto que utilizaras las funciones para descargar los recursos cargados,es que ya no hay que utilizar estas funciones.<br />
<br />
La segunda preguntas es sobre las clases que has usado en el ejemplo,en el tutorial no has usado clases pero en el ejemplo esta todo con clases.<br />
He visto la clase object.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class(object):<br />
<br />
def:update():</code></div></div>He visto tambien que en dentro de esta clase esta la funcion update,y parecia que le podias dar cierta logica al objeto,me gustaria que me explicaras como se crea esta clase y como se utiliza,es decir,quiero que me expliques con todo lujo de detalles todo sobre esta clase especial.]]></description>
			<content:encoded><![CDATA[Hola megamarc,ya termine el turorial y ha estado muy bien,menos la parte final donde no me he enterado de nada,ahora te voy hacer una cuantas preguntas.<br />
<br />
Voy a empezar por dos preguntas.<br />
<br />
La primera es que no he visto que utilizaras las funciones...<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>TLN_Deinit ();<br />
<br />
TLN_DrawFrame (frame);</code></div></div>Tampoco he visto que utilizaras las funciones para descargar los recursos cargados,es que ya no hay que utilizar estas funciones.<br />
<br />
La segunda preguntas es sobre las clases que has usado en el ejemplo,en el tutorial no has usado clases pero en el ejemplo esta todo con clases.<br />
He visto la clase object.<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>class(object):<br />
<br />
def:update():</code></div></div>He visto tambien que en dentro de esta clase esta la funcion update,y parecia que le podias dar cierta logica al objeto,me gustaria que me explicaras como se crea esta clase y como se utiliza,es decir,quiero que me expliques con todo lujo de detalles todo sobre esta clase especial.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ejemplo sencillo]]></title>
			<link>http://tilengine.org/forum/showthread.php?tid=221</link>
			<pubDate>Thu, 01 Nov 2018 11:24:20 +0000</pubDate>
			<dc:creator><![CDATA[<a href="http://tilengine.org/forum/member.php?action=profile&uid=9">Hokuto40</a>]]></dc:creator>
			<guid isPermaLink="false">http://tilengine.org/forum/showthread.php?tid=221</guid>
			<description><![CDATA[Bien,como dije aqui tenemos un ejemplo sencillo de estudiar.<br />
<br />
Entonces!,los ejemplos que yo digo que se deberian de hacer para facilitar el aprendizaje de tilengine,deben de seguir unas pautas fijas.<br />
<br />
No tener mas de 10 variables,no se permite crear mas de una funcion aparte de la funcion main,como python no tiene main,pues codigo que te ahorras,no se permite crear mas de una clase y tampoco mas de un bucle aparte del bucle principal y el maximo de lineas a introducir serian unas 30 para no liar a la gente.<br />
<br />
Con esto podemos estudiar linea por linea y aprender facilmente.Los comentarios no hacen falta,como son pocas lineas pues se puede estudiar una por una y descubrir que hace cada una.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>from tilengine import *<br />
<br />
#iniciar tilengine(resolucion horizontal,resolucion vertical,capas,sprites,animaciones)<br />
engine = Engine.create(640,360,2,64,4)<br />
#iniciar ventana<br />
window = Window.create()<br />
#quitar efecto crt<br />
window.disable_crt_effect()<br />
#color de fondo<br />
engine.set_background_color(Color(120,215,242))<br />
<br />
#cargar fondo de tilemap<br />
tilemap = Tilemap.fromfile("layer_foreground.tmx")<br />
fondo = Tilemap.fromfile("layer_background.tmx")<br />
#mostrar fondo en una capa<br />
engine.layers[0].setup(tilemap)<br />
engine.layers[1].setup(fondo)<br />
#cargamos los sprites<br />
spriteset = Spriteset.fromfile("hero")<br />
#mostramos el sprite<br />
engine.sprites[0].setup(spriteset)<br />
#colocamos el sprite en una posicion de la pantalla<br />
engine.sprites[0].set_position(60,156)<br />
<br />
mover_fondo = 0<br />
#bucle principal<br />
while window.process():<br />
   #mover fondo con teclado<br />
   if window.get_input(Input.RIGHT):<br />
       engine.layers[0].set_position(mover_fondo,0)<br />
       engine.layers[1].set_position(mover_fondo/2,0)<br />
       mover_fondo += 2  <br />
   elif window.get_input(Input.LEFT):<br />
       engine.layers[0].set_position(mover_fondo,0)<br />
       engine.layers[1].set_position(mover_fondo/2,0)<br />
       mover_fondo -= 2</code></div></div><br />
Aqui tenemos un ejemplo que carga un sprite y un fondo y luego mueve el fondo con la teclas,como ves se ven pocas cosas pero se puede aprender facilmente que eso es de lo que se trata,el que quiera codigos complicados pues ya los tiene,lo demas simplemente queremos aprender.<br />
<br />
Entonces cada ejemplo tiene que estar centrado en una cosa solamente,este se centra en mostrar recursos y nada mas,para otros ejemplos como este se puede introducir las animaciones de los sprites solamente,para otra las animaciones de los fondos,para otro profundizar en los input,para otros las colisiones etc..<br />
<br />
Pero siempre poco codigo y centrandose en una cosa solo,nada de mezclar conceptos,aunque aqui yo he mezclado los input con los graficos pero solo era a modo de prueba,espero que con esto haya quedado claro mi vision de como tienen que ser los ejemplos.Chao. <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" />]]></description>
			<content:encoded><![CDATA[Bien,como dije aqui tenemos un ejemplo sencillo de estudiar.<br />
<br />
Entonces!,los ejemplos que yo digo que se deberian de hacer para facilitar el aprendizaje de tilengine,deben de seguir unas pautas fijas.<br />
<br />
No tener mas de 10 variables,no se permite crear mas de una funcion aparte de la funcion main,como python no tiene main,pues codigo que te ahorras,no se permite crear mas de una clase y tampoco mas de un bucle aparte del bucle principal y el maximo de lineas a introducir serian unas 30 para no liar a la gente.<br />
<br />
Con esto podemos estudiar linea por linea y aprender facilmente.Los comentarios no hacen falta,como son pocas lineas pues se puede estudiar una por una y descubrir que hace cada una.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>from tilengine import *<br />
<br />
#iniciar tilengine(resolucion horizontal,resolucion vertical,capas,sprites,animaciones)<br />
engine = Engine.create(640,360,2,64,4)<br />
#iniciar ventana<br />
window = Window.create()<br />
#quitar efecto crt<br />
window.disable_crt_effect()<br />
#color de fondo<br />
engine.set_background_color(Color(120,215,242))<br />
<br />
#cargar fondo de tilemap<br />
tilemap = Tilemap.fromfile("layer_foreground.tmx")<br />
fondo = Tilemap.fromfile("layer_background.tmx")<br />
#mostrar fondo en una capa<br />
engine.layers[0].setup(tilemap)<br />
engine.layers[1].setup(fondo)<br />
#cargamos los sprites<br />
spriteset = Spriteset.fromfile("hero")<br />
#mostramos el sprite<br />
engine.sprites[0].setup(spriteset)<br />
#colocamos el sprite en una posicion de la pantalla<br />
engine.sprites[0].set_position(60,156)<br />
<br />
mover_fondo = 0<br />
#bucle principal<br />
while window.process():<br />
   #mover fondo con teclado<br />
   if window.get_input(Input.RIGHT):<br />
       engine.layers[0].set_position(mover_fondo,0)<br />
       engine.layers[1].set_position(mover_fondo/2,0)<br />
       mover_fondo += 2  <br />
   elif window.get_input(Input.LEFT):<br />
       engine.layers[0].set_position(mover_fondo,0)<br />
       engine.layers[1].set_position(mover_fondo/2,0)<br />
       mover_fondo -= 2</code></div></div><br />
Aqui tenemos un ejemplo que carga un sprite y un fondo y luego mueve el fondo con la teclas,como ves se ven pocas cosas pero se puede aprender facilmente que eso es de lo que se trata,el que quiera codigos complicados pues ya los tiene,lo demas simplemente queremos aprender.<br />
<br />
Entonces cada ejemplo tiene que estar centrado en una cosa solamente,este se centra en mostrar recursos y nada mas,para otros ejemplos como este se puede introducir las animaciones de los sprites solamente,para otra las animaciones de los fondos,para otro profundizar en los input,para otros las colisiones etc..<br />
<br />
Pero siempre poco codigo y centrandose en una cosa solo,nada de mezclar conceptos,aunque aqui yo he mezclado los input con los graficos pero solo era a modo de prueba,espero que con esto haya quedado claro mi vision de como tienen que ser los ejemplos.Chao. <img src="http://tilengine.org/forum/images/smilies/tongue.png" alt="Tongue" title="Tongue" class="smilie smilie_51" />]]></content:encoded>
		</item>
	</channel>
</rss>