Acerca del PARALLAX y el VIEWPORT!

Aquí puedes proponer ideas para mejorar pilas, ¿que te gustaría ver en pilas?

Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Mié Ago 03, 2011 7:27 pm

Hugo y demas programadores de pilas, el siguiente codigo es una clase simplificada en el lenguaje Ruby donde quiero mostrar basicamente dos funcionalidades de la libreria Chingu (basada en Gosu), las cuales son el VIEWPORT y el PARALLAX. Si quieren saber lo que significan, vean mi post "Algunas dudas! " en la seccion de Consultas y problemas.

El codigo esta bastante facil de entender ya que si se dan cuenta, es bastate similar a python con pygame. Lo comente para mayor comprension (lineas en mayuscula depues de un #). Esta clase lleva mas codigo como el crear el personaje, los enemigos, los eventos de teclado, etc., pero para no enredarse extraje nada mas el codigo referente al viewport y al parallax.
Mi objetivo con esto aportar al menos una idea para seguir mejorando pilas :) . Saludos!

Código: Seleccionar todo
class Level1 < GameState
  #ALGUNAS FUNCIONALIDADES COMO EL VIEWPORT SE DEBEN
  #IMPORTARANTES DE USAR.
  traits :viewport

  #METODO INICIALIZADOR (CONSTRUCTOR):
  def initialize(options = {})
    super
    #ASIGNANDO LOS PARAMETROS AL AREA O VIEWPORT: [x, y, ancho, alto]
    self.viewport.game_area = [0, 0, 1280, 800]
    #CREANDO UN PARALLAX DONDE SE TOMA COMO REFERENCIA LA
    #ESQUINA SUPERIOR IZQUIERDA Y SE DIBUJA DESDE ALLI MISMO (x=0, y=0).
    @parallax = Parallax.new(:x => 0, :y => 0, :rotation_center => :top_left)
    #ADAPTANTE UNA CAPA AL PARALLAX, EN ESTE CASO UN FONDO DEL ESPACIO.
    #NOTAR QUE SE REPITE CONSTANTEMENTE DE
    #FORMA HORIZONTAL (REPEAT_X = TRUE)
    #Y NO SE REPETIRA VERTICALMENTE (REPEAT_Y = FALSE)
    @parallax.add_layer(
      :image => 'space.jpg',
      :repeat_x => true,
      :repeat_y => false,
      :damping => 1
    )
  end

  #METODO ACTUALIZAR:
  def update
    super
    #LA CAMARA SEGUIRA AL PERSONAJE
    self.viewport.center_around(@player)
    #CONFIGURADO DE ACUERDO A UN PLATAFORMAS ESTILO MARIO BROS.
    @parallax.camera_y = self.viewport.y
    @parallax.camera_x += 20
    @parallax.update
    #CUALQUIER OBJETO (EXCEPTO EL JUGADOR) SE DESTRUIRA SI SE
    #SALE DEL VIEWPORT
    game_objects.destroy_if{|game_object|
         self.viewport.outside_game_area?(game_object)
    }
  end

  #METODO DIBUJAR:
  def draw
    @parallax.draw
    super
  end
end
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Mié Ago 03, 2011 8:11 pm

Hey, está interesante la api para manejar scroll. Ahora que lo pienso bien, phack
había realizado una muy buena demo sobre scroll:

viewtopic.php?f=23&t=1020&p=4841&hilit=scroll#p4841

Está en el directorio experimental de pilas, me parece que voy a trabajar en llevar
su demo al directorio principal de pilas que estába muy bien...

Con eso tendriamos paralax scroll en pilas!!
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Mié Ago 03, 2011 9:14 pm

Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Vie Sep 02, 2011 6:33 am

Genial, acabo de ver los avances de pchack del scroll parallax y están bastante bien, sencillo de entender, pero tengo una pregunta ahora: donde esta el directorio experimental de pilas? Xq me e cansado de buscar en /usr/local/lib/python2.7/dist-packages/pilas-0.58-py2.7.egg/pilas (el cual creo que es el directorio principal) y no lo encuentro. :!: :?:

Uso Tuquito (distro de argentina) xq si acaso.
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor kaiser » Vie Sep 02, 2011 12:53 pm

El repositorio experimental de pilas es un repositorio distinto al repositorio estándar de pilas, por lo tanto debes descargarlo y usarlo por separado. Lo mejor es que descargues el repositorio experimental e intentes añadir las funciones que te interesen a tu repositorio local (el que usas para ejecutar pilas).

Un Saludo!
De la API al IDE y del IDE a la API.
Avatar de Usuario
kaiser
 
Mensajes: 121
Registrado: Mié Nov 24, 2010 7:47 pm
Ubicación: Madrid (España)

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Vie Sep 02, 2011 6:36 pm

Hola programx, para acceder al repositorio experimental puedes ejecutar
estos dos comandos:

hg clone http://bitbucket.org/hugoruscitti/pilas
cd pilas/experimental

(el primer comando demora un monton... porque descarga todo el repositorio
completo).

Hay mas informacion de instalacion en el tutorial de la web:

http://www.pilas-engine.com.ar/doc/tuto ... itorio.rst
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Dom Sep 18, 2011 2:23 am

Ok, ya instale todo, descargue los repositorio y entre a la carpeta experimental (use un programa llamado tortoiseHg), vi la api de parallax que hizo Pablo Garrido pero tiene unos defectos, el primero, cuando pongo el parallax en modo automatico, la consola lanza un "float division" que ahi ni idea, el segundo es cuando le colocas una imagen pequeña que no abarque toda la pantalla; en este caso se puede ver que la imagen se repite pero solo en el centro de la pantalla, es decir, solo un pedazo en el centro y no alcanza a ocupar toda la pantalla.

En estos momentos estoy trabajo en una api de parallax para pilas y me esta dando muy buenos resultados. Basicamente consiste en una lista (pilas.grupo.Grupo()) a la que se le añade y elimina constantemente la imagen asignada, con la siguiente logica: si una imagen de la lista toca uno de los bordes de la pantalla (izquierdo, derecho, arriba o abajo, dependiendo del sentido que le demos al parallax) esta se elimina de la lista e inmediatamente se agrega otra al final (o principio) de la lista, creando el efecto parallax.

Cuando la termine la publico a ver que les parece 8)
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Dom Sep 18, 2011 8:38 pm

Hola programx, buenisimo que estés desarrollando algo para pilas, en
cuanto tengas algo para mostrar avisanos...

El ejemplo paralax scroll de pablo funcionaba bien, aunque luego
de los cambios que hice al motor de pilas para usar qt4 tal vez
hallan ocasionado algún error... lo voy a revisar ahora...
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Lun Sep 19, 2011 4:05 am

Bueno aqui vengo con el primer adelanto del scroll parallax que estoy desarrollando, funciona bastante bien aunque solo de forma automatica y puede tomar unicamente los sentidos este y oeste (derecha e izquierda).

Enlace: http://www.mediafire.com/?l4vl7uzfuytbl79

Para trabajar con esta API basta con crear un objeto de la clase Parallax junto con sus parametros para especificar como debe ser el scroll parallax:

Código: Seleccionar todo
parallax1 = Parallax(
    imagen="fondo1.png",
    capa=1,
    velocidad=2,
    sentido="este"
)


Podemos especificar las capas, la 1 va a ser la capa mas al fondo, la 2 la que esta encima de esta y asi sucesivamente. El parametro velocidad es la velocidad de desplazamiento y el sentido es, bueno, todos ya lo saben jeje.

Como se daran cuenta, no desperdicia recursos ya que solo existe lo que se ve, es decir, fondo que sale de la pantalla se elimina y se crea otro en el borde opuesto (lo explique en el mensaje anterior), y cree un for para calcular el numero de imagenes que deben duplicarse para abarcar la pantalla, asi que puede modificarse la resolucion de la pantalla libremente sin que esto afecte al parallax.

Cuando pueda continuo con el desarrollo para conseguir que se puedan eligir cualquiera de los cuatro sentidos (norte, sur, este, oeste) y un modo manual para hacerla funcionar junto con un actor.

Descarguenla y me dicen que les parece 8)

Por cierto hugo, lograste solucionar lo de "float division" en la API de Pablo?.
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Lun Sep 19, 2011 9:23 pm

Hola programx, ví tu ejemplo de scroll y me gustó
mucho, está muy interesante y me funciona bien rápido... excelente.

Por cierto, sabes usar mercurial?, tienes una cuenta en bitbucket?, te
consulto porque me gustaría incluir tu scroll en pilas y si usas
el repositorio es mas fácil integrarlo.

Por cierto, solucioné el problema del scroll. Efectivamente había sido
un bug mio cuando cambié una parte de pilas que gestionaba tareas. Ya
lo resolví...
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Mié Sep 21, 2011 7:09 pm

Que bien que te halla gustado, segui programandolo y ya se puede colocar cualquiera de los cuatro sentidos: norte, sur, este y oeste. Ahora viene lo mas dificil que es enlazarlo con un actor, pero bueno voy paso a paso. Lo que me gustaria hacer tambien es colocar entre los parametros una opcion para que el parallax sea de tipo mosaico o lineal.

En cuanto a lo de mercuarial y bitbucket, de este ultimo se que es una especie de ropositorio en linea o algo asi, con mercurial si se trabajar pero muy basicamente, es decir, se clonar un repositorio (hg clone) que lo aprendi de lo que me explicaste en los mensajes de arriba, verificar el estado de cierto repositorio (hg status) y actualizarlo (hg update, aunque este no me sirve, ya te explico mas abajo xq), mas de hay no tengo conocimientos. Tengo instalado tortoisehg, cloné el repositorio de pilas y ya me cree una cuenta en bitbucket, y ahora? Como hago para integrar el parallax al repositorio de pilas en bitbucket?, no entiendo :?

Y en cuanto al parallax de pablo, intente actualizar el repositorio con hg update pensando que se actualizaria el parallax pero me sigue saliendo el "float division".
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Mié Sep 21, 2011 10:30 pm

Buenas, buenisimo que estás avanzando con los cambios. Con
respecto a mercurial y bitbucket, en la página de pilas
escribí un texto para explicar un poco el concepto:

http://www.pilas-engine.com.ar/doc/tuto ... adores.rst

La idea hacer cambios lo mas fácil posible, y para ello usamos
el concepto de forks y pull request (que son bastante fáciles
de usar con la práctica).

Con respecto al scroll de pablo, ¿probaste ejecutar 'hg pull' antes
de 'hg update'?
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor programx » Jue Sep 22, 2011 1:11 am

Ok voy a leerlo a ver que tal, y bueno primero hice un "hg pull pilas" y me dice:
pulling from pilas
searching for changes
no changes found

es decir, no se encuentran cambios.

y si tecleo "hg update pilas" me dice:
abort: unknown revision 'pilas'!

De todas manera voy a leer esa guia de programando en pilas y te cuento.
Avatar de Usuario
programx
 
Mensajes: 34
Registrado: Mié Ago 03, 2011 4:46 am

Re: Acerca del PARALLAX y el VIEWPORT!

Notapor hugoruscitti » Jue Sep 22, 2011 2:08 pm

m... puede que el problema sea el directorio donde estas parado (o no..., no estoy seguro)

Intenta lo siguiente, ingresa en el directorio principal de pilas, donde esta
el archivo README y los otros. Y luego, ejecuta estos comandos:

Código: Seleccionar todo
hg pull
hg update
hg status


puede que no traiga el cambio por algun tipo de conflicto, pero si
todo sale bien, cuando ejecutes este comando:

Código: Seleccionar todo
hg log -l 3


tendrian que mostrarse los ultimos cambios del repositorio:

Código: Seleccionar todo
changeset:   923:dc568f9cbbf3
tag:         tip
user:        Hugo Ruscitti <hugoruscitti@gmail.com>
date:        Wed Sep 21 01:01:24 2011 -0300
summary:     documentando el nuevo cuerpo fisico poligono.

changeset:   922:99848c628943
user:        Hugo Ruscitti <hugoruscitti@gmail.com>
date:        Tue Sep 20 20:47:55 2011 -0300
summary:     creando bosquejo de figura poligono.

changeset:   921:7ebc5c4746c9
user:        Hugo Ruscitti <hugoruscitti@gmail.com>
date:        Mon Sep 19 18:14:05 2011 -0300
summary:     reparando el ejemplo scroll parallax de pablo garrido.


(el ultimo es el arreglo que te comentaba).
Avatar de Usuario
hugoruscitti
Site Admin
 
Mensajes: 1242
Registrado: Dom Jul 30, 2006 3:57 am
Ubicación: Buenos Aires, Argentina


Volver a Sugerencias e ideas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados