Bueno, ultimamente estudio y no he hecho demasiado....
Justo pensar un poco como puedo hacer el tema de cambiar el sprite y he llegado a diferentes conclusiones:
- Las rotaciones es preferible hacerlas guardando dibujos en diferentes posiciones en el archivo de frames, al menos mientra no use openGL ya que tiene que ser bastante caro el rotar la imagen en terminos de CPU (es una operacion bastante cara con SDL y ademas destructiva, no se puede rotar una imagen previamente rotada pq pierde mucha calidad, con lo cual debiera hacer un sistema de 'caches' de objetos rotados para no transformar en cada ciclo la imagen de una nave que viaje en diagonal... mucho lio que como mucho va a tener el rendimiento de meter imagenes rotadas... no merece la pena, tal vez con openGL si pq lo hace la GPU, con lo cual no debo cerrar la puerta, pero ahora no).
- He creado un objeto 'Animacion' que contiene a una fila de frames de una imagen, esto es, la animacion de que la nave gira a derecha, explota... Esto me permite separar la parte de gestionar la animacion de la de gestionar el sprite (colisiones, posicion, etc...). He probado a hacer animaciones de todos los objetos con toda las lineas y funciona... ahora debo sustituirlo en codigo y optimizar el protocolo que utilizo para el motor. Me gusta este cambio. Le da bastante flexibilidad al sprite.
- Ayer hable con angulo senior para que me probea de imagenes, no se si me he colado diciendole ya pq aun no tengo ni el esqueleto bien hecho, pero la verdad es que necesito imagenes de todo tipo para ir probando que todo funciona bien, las mascaras.... Esta bien hablar de esto con gente, te da ideas de cosas que hacer, un cierto feedback, y eso mola... aunque aun tengo muchas mas ideas que tiempo...
En fin.
miércoles, 23 de diciembre de 2009
martes, 15 de diciembre de 2009
Grandes cambios se avecinan
Como me temia, el rotar las imagenes y hacer mascaras no son tareas nada triviales ya que mis frames estan todos en el mismo archivo...
Parece ser que la unica solucion que voy a tener es hacer subsurfaces de cada una de las frames que contienen cada imagen bmp (surface) y tratarlas de ese modo, con lo cual cambiara la el protocolo de mi motor grafico (idea que no me gusta un pelo, pero parece que no hay otra). En vez de tratar subrectangulos de una superficie definidos por x,y,w,h, con lo que solo tenia que usar esas coordenadas, tendre que bregar con subsuperficies definidas por esas coordenadas, esto es: En vez de utilizar coordenadas para coger de un mapa tendre que cortar un mapa en trozos usando esas coordeanadas y usar los trozos....
En un principio no sera muy dificil cambiar, pero voy a tener que hacer un sistema de gestion de todos esos trozos que sea claro y eficaz a la hora de hacer mascaras y rotaciones... me voy a la cama a pensarlo... esto va para largo....
Parece ser que la unica solucion que voy a tener es hacer subsurfaces de cada una de las frames que contienen cada imagen bmp (surface) y tratarlas de ese modo, con lo cual cambiara la el protocolo de mi motor grafico (idea que no me gusta un pelo, pero parece que no hay otra). En vez de tratar subrectangulos de una superficie definidos por x,y,w,h, con lo que solo tenia que usar esas coordenadas, tendre que bregar con subsuperficies definidas por esas coordenadas, esto es: En vez de utilizar coordenadas para coger de un mapa tendre que cortar un mapa en trozos usando esas coordeanadas y usar los trozos....
En un principio no sera muy dificil cambiar, pero voy a tener que hacer un sistema de gestion de todos esos trozos que sea claro y eficaz a la hora de hacer mascaras y rotaciones... me voy a la cama a pensarlo... esto va para largo....
jueves, 10 de diciembre de 2009
Estancamiento ultrasonico
Si, parece que se acerca un periodo de estancamiento por varias razones:
1- He acabado satisfactoriamente el asunto de los sonidos y va ciertamente bien, aunque para evitar un HORRIBLE lag entre el hecho de disparar y que se oiga el disparo he tenido que desinstalar la libreria pulseaudio (por defecto con gnome, parece ser) e instalar la esound. Soluciona completamente el problema de el lag, y creo que solo ocurre en gnome, pero me parece una mala solucion. Tendre que cambiarlo en un futuro usando alguna otra libreria en vez de pygame (estoy penando en pysound). En cualquier caso, de paso, comentar que he hecho otro 'motor' para el sonido, de modo que los sonidos que se tengan que ejecutar lleguen por el mismo medio que los objetos que se deben dibujar. A la sazon lo que he hecho es un lista con todos los sonidos y un motor con una lista del mismo tamaño con booleanos que indican si se debe reproducir el sonido correspondiente en ese ciclo o no. De este modo no se puede, por ejemplo, ejecutar dos veces el mismo sonido en el mismo ciclo, lo cual me parece que no es una limitacion sino de cajon...
2- He vuelto a estudiar!!! ahora los fines de semana (este puente empece) los dedicare a estudiar hasta examenes.
En fin. Entre semna procurare ir haciendo cosillas que no sean demasiado complicadas ni tengan demasiadas implicaciones... aunque en la secuencia logica que tengo para hacer el juego supone saltarme pasos y no estoy demasiado por la labor... se ira viendo...
1- He acabado satisfactoriamente el asunto de los sonidos y va ciertamente bien, aunque para evitar un HORRIBLE lag entre el hecho de disparar y que se oiga el disparo he tenido que desinstalar la libreria pulseaudio (por defecto con gnome, parece ser) e instalar la esound. Soluciona completamente el problema de el lag, y creo que solo ocurre en gnome, pero me parece una mala solucion. Tendre que cambiarlo en un futuro usando alguna otra libreria en vez de pygame (estoy penando en pysound). En cualquier caso, de paso, comentar que he hecho otro 'motor' para el sonido, de modo que los sonidos que se tengan que ejecutar lleguen por el mismo medio que los objetos que se deben dibujar. A la sazon lo que he hecho es un lista con todos los sonidos y un motor con una lista del mismo tamaño con booleanos que indican si se debe reproducir el sonido correspondiente en ese ciclo o no. De este modo no se puede, por ejemplo, ejecutar dos veces el mismo sonido en el mismo ciclo, lo cual me parece que no es una limitacion sino de cajon...
2- He vuelto a estudiar!!! ahora los fines de semana (este puente empece) los dedicare a estudiar hasta examenes.
En fin. Entre semna procurare ir haciendo cosillas que no sean demasiado complicadas ni tengan demasiadas implicaciones... aunque en la secuencia logica que tengo para hacer el juego supone saltarme pasos y no estoy demasiado por la labor... se ira viendo...
viernes, 4 de diciembre de 2009
Y bien...
Hoy tenia evisto continuar donde lo deje ayer:
Habia hecho un refactoring bastante bueno y habia comenzado a meter el tema del sonido, pero me voy a ir a por amaia a basauri asi que tendra que esperar...
Eso si, he aislado COMPLETAMENTE pygame dentro de mi aplicacion, lo cual facilita brutalmente el cambio de pygame por pyglet o pyopengl... Por ahora voy a aparcar ese asunto pq aun no lo necesito y ademas a partir de febrero tengo una asignatura que va sobre openGL...
La familia bien, gracias.
Habia hecho un refactoring bastante bueno y habia comenzado a meter el tema del sonido, pero me voy a ir a por amaia a basauri asi que tendra que esperar...
Eso si, he aislado COMPLETAMENTE pygame dentro de mi aplicacion, lo cual facilita brutalmente el cambio de pygame por pyglet o pyopengl... Por ahora voy a aparcar ese asunto pq aun no lo necesito y ademas a partir de febrero tengo una asignatura que va sobre openGL...
La familia bien, gracias.
miércoles, 2 de diciembre de 2009
Manifiesto “En defensa de los derechos fundamentales en internet”
Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de Internet manifestamos nuestra firme oposición al proyecto, y declaramos que:
- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.
Progresa adecuadamente
Caramba, cuanto tiempo llevo sin actualizar esto....
En fin, he terminado el tema de leer las coordenadas y dimensiones de un archivo de datos y he introducido explosiones que he hecho yo mismo con el gimp, ademas he refactorizado el codigo -algunos cambios de nombres, de lugares y eliminacion de metodos que se habian quedado deprecated-...
Hoy toca empezar a cambiar el motor a pyglet, para probar el rotar sprites tanto en pygame como en pyglet (se supone que tiene que darme mejor rendimiento en pyglet).
Proximamente tendre que ver como trato el tema de rotar los frames, tendre que hacer algo en la clase 'mapa' para controlar que no se roten frames que no sea necesario rotar (si una nave se desplaza en diagonal solo deberia tener que rotarla una vez si no varia su direccion), pero eso seria mas adelante, despues de hacer rotar los sprites de una manera eficiente quiero meter la musica, para finiquitar el motor -la musica tb se reproduce con pygame y pyglet-
Pero eso tal vez mañana, que hoy me duele la cabeza bastante...
En fin, he terminado el tema de leer las coordenadas y dimensiones de un archivo de datos y he introducido explosiones que he hecho yo mismo con el gimp, ademas he refactorizado el codigo -algunos cambios de nombres, de lugares y eliminacion de metodos que se habian quedado deprecated-...
Hoy toca empezar a cambiar el motor a pyglet, para probar el rotar sprites tanto en pygame como en pyglet (se supone que tiene que darme mejor rendimiento en pyglet).
Proximamente tendre que ver como trato el tema de rotar los frames, tendre que hacer algo en la clase 'mapa' para controlar que no se roten frames que no sea necesario rotar (si una nave se desplaza en diagonal solo deberia tener que rotarla una vez si no varia su direccion), pero eso seria mas adelante, despues de hacer rotar los sprites de una manera eficiente quiero meter la musica, para finiquitar el motor -la musica tb se reproduce con pygame y pyglet-
Pero eso tal vez mañana, que hoy me duele la cabeza bastante...
Suscribirse a:
Entradas (Atom)