Skip to main content

pyBta - 0.3

pyBta is my personal playground, where I learn to program small applications and mini games, so own and quite traditional. PyBta not a tool to use and is, rather, a library that allows me to explore and poke about things I do not understand and I want to learn. So not intended as a competitor to other existing libraries but a contribution from someone who simply wants to deliver his idea. pyBta es mi patio de recreo personal, donde aprendo a programar pequeñas aplicaciones y mini juegos, de manera propia y bastante artesanal. PyBta no es una herramienta al uso y es, más bien, una biblioteca que me permite explorar y curiosear sobre las cosas que no entiendo y me apetece aprender. Por eso no pretende ser un competidor para otras bibliotecas existentes pero si un aporte de alguien que simplemente quiere dar a luz su idea.


Jesús Hernández Paredes
(jesushernandezparedes)
pyBta is my personal playground, where I learn to program small applications and mini games, so own and quite traditional. PyBta not a tool to use and is, rather, a library that allows me to explore and poke about things I do not understand and I want to learn. So not intended as a competitor to other existing libraries but a contribution from someone who simply wants to deliver his idea. Features: -Written in pyhon, which is easy to understand language. -Use pygame for drawing tasks, management frame rate, reading events ... -Fully written in Castilian. Name objects, functions, attributes ... -Based on modules. Module controls scene module, module for collision detection, event module ... -With several global objects that facilitate communication between the different modules. BtaMotor himself, the event object, the object scheduler, scene management ... Biblioteca pensada para la creación de pequeñas aplicaciones y juegos. PyBta nace con la idea de crear una biblioteca que, poco a poco, se vaya haciendo sencilla y amena para la gente que quiere diseñar sus ideas pero no tengan grandes conocimientos sobre programación (Es decir, nace para un tipo como yo) Características: -Escrita en pyhon, el cual es un lenguaje fácil de entender. -Usa pygame para las tareas de dibujo, manejo del frame rate, lectura de eventos... -Totalmente escrita en castellano. Nombre de objetos, funciones, atributos... -Basada en módulos. Módulo de controles, módulo de escenas, módulo para la detección de colisiones, módulo de eventos... -Con varios objetos globales que facilitan la comunicación entre los diferentes módulos. El propio BtaMotor, el objeto eventos, el objeto planificador, el gestor de escenas...

Changes

Y aquí vuelvo con pyBta, esta vez en su versión 0.3 (Me va resultando graciosa la idea) En esta versión he decidido concentrarme mucho más en el sistema de eventos que quería implementar en la biblioteca, debido a que el anterior se emborronaba a la hora de querer ir añadiendo nuevos eventos. Para esta idea me he concentrado bastante en aprender varias cosas sobre el manejo de hilos, como funcionan estos en python y como aplicarlos de manera exitosa dentro de pyBta. El primero de estos hilos es el constructor de eventos, el cual se encarga en todo momento de leer y construir una lista de eventos que la biblioteca pueda entender. Después esta lista es invocada por el segundo hilo, llamado, el disparador, que se encarga de leer la lista y enviar cada evento a su manejador correspondiente. Estos manejadores también trabajan de manera independiente y de encontrar una respuesta correcta de algún evento recibido, se encargarán de ejecutarla en otro hilo paralelo. Con todo esto he conseguido desacoplar muchas de las tareas que pyBta debía realizar y también he logrado un sistema de eventos que puede albergar incluso más de lo que yo me esperaba. El modulo de controles también lo he tocado bastante, adaptándolo al nuevo modulo de eventos. También he cambiado bastante el objeto dialogo y a nacido el control formulario. Dentro de este modulo he construido un par de objetos globales. El primero es el objeto foco, el cual se encarga de manera global a todos los controles, de saber cual es el control activo en cada momento. El segundo es el objeto pintor, el cual es el encargado de limpiar la pantalla y dibujar sobre ella los controles necesarios. Otra de guerras abiertas para esta versión a sido empezar a meterme, más seriamente, con el modulo de escenas. Este módulo a sufrido un montón de cambios. Ahora este sistema contiene el objeto gestorDeEscenas. Este objeto global es capaz de gestionar las escenas de un juego de manera mucho más sencilla, permitiendo almacenar, poner en marcha, borrar o eliminar escenas desde cualquier punto del programa sin que las escenas tengan que conocerse entre si. El modulo, en tiempo de ejecución, se sustenta mediante el objeto centralita y el objeto dibujante. Estos objetos funcionan en hilos diferentes y se encargan de desacoplar las tareas de dibujado y actualización lógica de una escena. Con esta idea he conseguido aportar mucha más velocidad a este módulo (Una prueba esta en el ejemplo rambito en acción, el cual soporta muchas mas animaciones en pantalla sin dar la sensación de caída en el fps. Otro de los objetos nuevos para este modulo es el objeto decorado, que se encarga de sustentar el fondo de las escenas de manera sencilla. Tengo pensado habilitar varios tipos de decorados, pero por ahora solo está disponible el BtaDecoradoSimpleImagen. Este objeto ya esta preparado para sustentar el scroll dentro de una escena. También he portado todos los ejemplos de pyBta 0.1 a esta versión y he mejorado bastante los ejemplos ya existentes. Por ejemplo Rambito en accion ya soporta una escena para el menú y otra para el juego y también muestra como unir de manera exitosa escenas y controles para generar los menús de tus juegos de forma simple y elegante. También empiezan a nacer en esta versión el objeto teclado y el objeto cursor, que sirven para leer el estado de estos dos controladores de manera directa. En cosas malas esta el caso de no haber activado para esta versión de pyBta una nueva versión de BtaLoop, pero espero que para la próxima tenga resuelto este problema pues este pequeño programa entra dentro de la idea de biblioteca que yo quería crear. Otros errores creo que está en el objeto encargado de dibujar las escenas el cual se queda colgado de vez en cuando y otro conocido en el sistema de profundidad, para los controles, el cual se vuelve loco si existen demasiados controles en pantalla. Para esta versión no he actualizado la documentación para nada, por lo cual esta se encuentra muy poco actualizada. Se debe tener en cuenta que esta versión a sido programada y testeada bajo un sistema Ubuntu y no se que tal se portara en otros ordenadores o sistemas operativos.

Links

Home Page
http://proyectobta.blogspot.com.es/
Source
https://www.safecreative.org/work/1305195125248-pybta0-3

Releases

pyBta 0.1 — 2 Apr, 2012

pyBta 0.3 — 19 May, 2013

pyBta 0.2 — 26 Jan, 2013

pyBta 0.3.2 — 9 Jun, 2013

pyBta 0.3.3 — 7 Jul, 2013

Pygame.org account Comments

  • Syndwar 2013-02-03 10:17

    I wish there was a translation...

  • Jesús Hernández 2013-02-03 11:28

    It would be great. What happens is that a library is still changing.
    For example, now I am getting to do work reading and executing events on different threads and that is making me change
    pretty code. I'm waiting for more stable versions and to think myself that the translation more calmly.

  • Neccarus 2013-06-10 06:45

    pyBta is my personal playground, where I learn to program small applications and mini games, so own and quite traditional. PyBta not a tool to use and is, rather, a library that allows me to explore and poke about things I do not understand and I want to learn. So not intended as a competitor to other existing libraries but a contribution from someone who simply wants to deliver his idea.

    Google Translate. You're welcome :)

  • Jesús Hernández 2013-06-10 12:17

    Thanks Erik. The truth is I'm not very skilled at the English and the translator translate goolge, as I am doing now, is not very comfortable always in my mind, because I think the translation will go wrong and no one will know about it I try to explain.
    Veras've translated some English to Castilian texts with google and the truth is, that in many cases, the translation left much to be desired.
    Anyway you're right and I promise in future versions closer to English to try to explain a little idea. To start your translation step to the head of the project here in pygame.

    Neccarus 2013-06-10 21:27

    I could always Google Translate and just adjust the grammar and such to make more sense as I can usually tell what someone is trying to say.

    Jesús Hernández 2013-06-11 19:58

    Thank you. The next time you update, I will put up your advice.
    Ask for forgiveness when I enter with intent to understand and did not understand anything.

    Neccarus 2013-06-12 02:37

    There is no need for apologies. We all do our best and shouldn't be burdened with the need for translating languages, and yet there are many languages on this earth... including programming languages :D

    Jesús Hernández 2013-06-13 12:42

    There are lots of programming languages​​, so many that I will never be a programmer. Look that happened since I started, I still remember my wonderful spectrun cassette as a kid, I preferred playing with Basic before waiting to load a program. I played with C, Java, with Visual Basic, Flash action script, python. The truth is, that if I left at the end with the latter was was because I do, mostly as a hobby and python allows you to develop large projects through more easily than other languages​​. I've been chatting just like that.

    Neccarus 2013-06-13 14:59

    I absolutely agree. Python is great for hobby programmers and the likes. I personally would like to take programming to a career level, and right now I am using Python to help me realize the projects I would like to work on in the future.

    Jesús Hernández 2013-06-15 15:35

    My immediate future is to try to introduce a sound module PyBta. I think I'll lean on PyAudio for this task. It was easy to install and all that is easy to install, it will take an extra point for this library, my thought is to create a library that is easy to access, if it works. The following will improve various aspects with scene module and the module crashes, this what I want to make it much easier for the user. And then we do not know, I just have fun with this, this is good and bad at the same time because I worry satisfied just to see my own interests and do not get outside much information about what you should look poque fails or is could improve and really is a shame.